02-关系模型
基础概念
域:具有相同数据类型的值的集合。(取值范围)
笛卡尔积
笛卡尔积:给定一组域D1,D2,⋯,Dn,它们的笛卡尔积是{(d1,d2,⋯,dn)∣di∈Di}
元组:笛卡尔积中的元素
分量:每个元素(d1,d2,⋯,dn)中的di
基数:元组的个数,∣∏i=1nDi∣=∏i=1n∣Di∣
笛卡尔积的表示方法:二维表,行是元组,列是域
关系
关系:∏i=1nDi的子集,叫做在域D1,D2,⋯,Dn上的关系,表示为R(D1,D2,⋯,Dn)
R:关系名
n:关系的度,n元关系
元组:关系中的每个元素,用t表示
也可用二维表表示
属性:每一列的名字
码
候选码 Candidate Key:唯一标识元组的属性集,且其任意真子集都不能唯一标识元组
主码:选定多个候选码中的一个
主属性:主码中的属性
外码:表中的属性,引用另一表的主码
关系的类别
基本关系:实际存在的表,实际储存数据的逻辑表示
查询表:查询结果对应的表
视图表:由基本表或其他视图表导出的表,是虚表,不对应实际储存的数据
基本关系的性质
列是同质的:每一列中的分量来自同一个域
不同的列可以出自同一个域:不同列的定义域可能相同
行、列的顺序无关紧要
任何两个元组的候选码不能相同
分量必须取原子值:每一个分量都是不可再分的数据项
关系模式
对关系的描述,静态的、稳定的
关系是动态的
定义:R(U,D,DOM,F)
R:关系名
U:属性名
D:属性的域
DOM:属性向域的映像集合
F:属性间的数据依赖关系
可简记为 R(U) 或 R(A1,A2,⋯,An),Ai 是属性名
关系数据库
所有关系的集合构成关系数据库
关系数据库的型: 关系数据库模式,是对关系数据库的描述
关系数据库的值: 关系模式在某一时刻对应的关系的集合,通常称为关系数据库
关系的完整性
实体完整性:主属性非空(不存在、无意义的数据)
参照完整性:当关系R1的外码引用关系R2的主码时,R1的每个元组的外码值必须是R2的某个元组的主码值或空值
用户定义完整性:用户自定义的完整性约束
关系操作 & 关系代数
集合运算
并:R∪S={t∣t∈R∨t∈S},R 和 S 的属性、目数必须相同
交:R∩S={t∣t∈R∧t∈S},R 和 S 的属性、目数必须相同
差:R−S={t∣t∈R∧t∈/S},R 和 S 的属性、目数必须相同
笛卡尔积
R:n目关系,k1个属性
S:m目关系,k2个属性
R×S:n+m目关系,k1∗k2个属性
R×S={t1t2⌢∣t1∈R∧t2∈S}
t1t2⌢:t1 和 t2 的连接
关系运算
选择(行的运算):σF(R)={t∣t∈R∧F(t)},F 是布尔表达式(返回真或假),筛选满足 F 的元组
投影(列的运算):ΠA(R)={t[A]∣t∈R},A 是属性名,筛选 A 对应的列
可能会导致行的减少:列删除后可能会产生重复的元组
连接:RAθB⋈S={trts⌢∣tr∈R∧ts∈S∧(tr[A]θts[B])}
在笛卡尔积后,选择符合条件,即tr[A]θts[B]为真的元组
等值连接:θ 是等于号,比较两个属性的值是否相等(不合并相同属性列)
自然连接:特殊的等值连接,合并R 和 S 的相同属性列
悬浮元组 Dangling tuple:在自然连接中,R 中某些元组有可能在S中不存在公共属性上值相等的元组,导致R 中的元组被舍弃
外连接:保留悬浮元组,空值填充
NULL左/右外连接:只保留左/右表的悬浮元组,悬浮元组中右/左表独有的属性置为
NULL
除(行和列的运算):R÷S={tr[X]∣tr∈R∧ΠY(S)⊆YX},A 和 B 是属性名
R有属性X和Y,S有属性Y,Z,YR和YS的域相同
找出满足所有Y的X(X的象集能够包含πY(S))
x在R中的象集:Yx={t[Y]∣∃t∈R,t[X]=x}
最后更新于