基础知识
名词
- 属性:描述事物的若干特征
- 域:每个属性的取值范围对应一个值的集合,称为该属性的域
- 候选码:关系中的某一属性或属性组的值能够唯一表示一个元组,则称该属性或属性组为候选码
- 主码(主键):一个关系有多个候选码,则选定其中一个为主码
- 主属性:包含在任何候选码中的属性成为主属性
- 外码(外键):如果关系模式R中的属性或属性组非该关系的码,但它是其他关系的码,那么该属性集对关系模式R而言是外码
- 全码:关系模型的所有属性组是这个关系模型的候选码,成为全码
笛卡尔积与关系
- 关系中属性的个数叫“元数”,元组的个数称为“基数”
关系的三种类型
- 基本关系(基本表):实际存在的表
- 查询表:查询结果对应的表
- 视图:由基本表导出或者其他视图导出的表,数据库只存放它的定义,也成为虚表
关系数据库模式
- 关系的描述成为关系模式,可形式化为R(U,D,Dom,F)
1)R:关系名称
2)U:属性名集合
3)D:属性的域
4)Dom:属性的映射关系
5)F:依赖关系 - 关系模型中,各列属性必须取相异的名称
完整性约束
- 完整性规则防止的是对数据的意外破环
- 关系的完整性约束共分为三类:实体完整性、参照完整性(也称引用完整性)、用户定义完整性
1)实体完整性:关系中的主属性不能为空
2)参照完整性:外键或者取空值或者等于主键值
3)用户定义完整性:数据需满足应用的语义要求
关系运算
- 并(Union):
1)要求:参与并运算的两张关系表必须具有相同的属性(列名);
2)运算方法:合并两个集合,去掉重复的;
3)表达式:R ∪ S = { i ∣ i ∈ R ∨ i ∈ S } . - 差:
1)要求:参与交运算的两张关系表必须具有相同的属性(列名);
2)运算方法:R减去R和S的交集;
3)表达式:R ∩ S = { i ∣ i ∈ R ∧ i ∈ S } . - 广义笛卡尔积
1)要求:R表和S表可以拥有不同的属性(列)
2)运算方式:域的笛卡尔积 = 域的基数相乘,
3)表达式:R × S = { tr⌒ts| tr∈R ∧ ts∈S } - 投影:
1)要求:所选的属性组A,B必须来源于R表的属性(列名)
2)运算方式:从R表中选择指定的属性组(列)
3)表达式:π A( R ) = { t[A]| t∈R } - 选择:
1)运算方式:从R表中选择行
2)表达式:σF( R ) = { t | t∈R ∧ F(t) = ‘真’ }
σ ₐ˃ₑ(R) :R表中a属性大于B属性的值元组
σ ₁>₄(R) :R表中第一个属性大于第四个属性的元组
σ ₁>'₄'(R):R表中第一个属性大于4的元组
-
交:
-
连接:
1)要求:A、B属性组(列)必须分别为R表和S表中的属性,且具有可比性(如皆为日期属性、数值属性等);
2)运算方法:先使用广义笛卡尔积(见上文)算出R×S,再在R×S中选取符合逻辑表达式F的元组
3)表达式:R ⋈AθBS = { tr ⌒ ts | tr ∈ R ∧ ts ∈ S ∧ tr[A] = ts[B] }
- 等值连接:
1)要求:在满足连接要求的前提下,逻辑表达式F中的 θ“=”;
2)运算方式:先使用广义笛卡尔积(见上文)算出R×S,再选取表R的属性A与表S的属性B值相等的元组- 自然连接
1)要求:R.A = S.A(必须有相同的属性名且域相同才可以进行自然连接)
2)运算方法:再在R×S中选取两表中属性C值 相等 的元组,建立新表,并删除重复的相同属性组,仅保留一组即可- 左外连接=自然连接+左侧表中失配的元组
- 右外连接=自然连接+右侧表中失配的元组
- 全外连接=自然连接+两侧表中失配的元组
失配属性为null
- 除:
1)要求:在满足连接要求的前提下,R表和S表中必须要有相同的属性A(列A);
2)表达式:R ÷ S = { tr[X] | tr∈R ∧ ∏y(S)⊆YX }
3)运算方法:
1.分出X、Y、Z三个属性集
2.列出S对Y属性集的投影
3.找出R中满足x值对应的象集包含了关系S对Y属性集的x值
image.png
image.png
- 聚集函数:输入一个值的集合返回单一值作为结果
网友评论