第9章 关系泛化理论
目录
1 问题的提出
1.1 概念回顾
-
关系:笛卡尔积的一个子集
-
关系模式:用来定义关系R(U)
-
关系实例:关系中所有元组
-
关系数据库:基于关系模型的数据库,利用关系来描述现实世界
-
关系数据库的模式:定义这组关系的关系模式的全体
1.2 数据依赖
-
数据依赖:一个关系内属性与属性之间的约束关系
-
通过属性值之间的依赖关系提现这种约束关系
-
类型:
-
函数依赖FD:Sno函数决定Sname 和 Sdept,Sname= f (Sno), Sdept = f (Sno)
-
多值依赖MVD
-
1.3 关系模式
-
R<U,F>
-
U:属性名集合
-
F:属性间依赖关系
-
1.4 数据依赖对关系模式影响
2 函数依赖
2.1 函数依赖
X 函数确定 Y,或 Y 函数依赖于X,记为 X→Y(X和Y为属性集合,而不一定是一个属性)
2.2 平凡函数依赖与非平凡函数依赖
-
非平凡函数依赖:(自己决定别人)
(Sno, Cno) → Score
-
平凡函数依赖:(自己决定自己)
(Sno, Cno) → Sno
(Sno, Cno) → Cno
2.3 完全函数依赖与部分函数依赖
如果依赖函数是单射,那么就是完全函数依赖,否则为部分函数依赖
2.4 传递函数依赖
X→Y,Y→Z,那么Z传递函数依赖于X
2.5 码
-
候选码:设有关系模式R<U, F>,F是R的函数依赖集,K是U的一个子集。若U对K完全函数依赖,则称K是R的候选码(Candidate Key),简称码。
-
主码:若候选码有多个,那么其中一个为主码
-
外码:X是另一个关系模式S的码
3 数据依赖的公理系统
3.1 定义
F的闭包是由F锁蕴含所有函数依赖的集合,记为 F + F^+ F+
3.2 Armstrong公理系统
-
自反律:若 Y ⊆ X ⊆ U Y\subseteq X\subseteq U Y⊆X⊆U,则X→Y为F所蕴涵。
-
增光律:若 X → Y ∈ F X→Y\in F X→Y∈F,则 X Z → Y Z ∈ F XZ→YZ\in F XZ→YZ∈F
-
传递律:若X→Y,Y→Z,则X→Z
-
合并规则:若X→Y,Y→Z,则X→YZ
-
分解规则:若X→YZ,则X→Y,X→Z
-
伪传递规则:若X→Y,YW→Z,则 XW→Z。
3.3 最小函数依赖集
最小依赖集Fmin满足以下属性
-
每个函数依赖的右部都是单个属性
-
去掉任何一个函数依赖都不与Fmin 等价(也就是缺一不可)
-
F的任何一个函数依赖都不能被其他的函数依赖所取代
4 关系模式的分解
-
关系F在属性集Ui的投影(把F中不是Ui的里面的去掉)
-
分解后的关系模式与原关系模式等价,分解方法才有意义
-
其实就是一个大表分解成好几个小表
-
p = { R1<U1,F1>, R2<U2,F2> } 是 R<U,F>的一个无损分解的充分必要条件:
- (U1∩U2) → U1 ∈F+ 或 (U1∩U2) → U2 ∈F+
-
无损分解算法(重点)
5 范式及规范化
5.1 第一范式(1NF)
每个属性都是原子的,不可再分,第一范式也叫规范化关系,不满足第一范式的称为非规范化关系
实际上就是不能表中有表!
5.2 第二范式(2NF)
每一个非主属性都依赖于码,则称R为第二范式记作 R ∈ 2 N F R\in 2NF R∈2NF
如下这种就是第二范式
5.3 第三范式(3NF)
不存在非主属性对码的部分函数依赖和传递函数依赖
例如上面第二范式的例子不是第三范式,因为有传递函数依赖
分解为如下两个