若R∈BCNF
所有非主属性对每一个码都是完全函数依赖
所有的主属性对每一个不包含它的码,也是完全函数依赖
没有任何属性完全函数依赖于非码的任何一组属性
多值依赖
Teaching具有唯一候选码(C,T,B), 即全码, ∈3NF
Teaching没有函数依赖,∈BCNF
平凡多值依赖和非平凡的多值依赖
若X→→Y,而Z=φ,则称 X→→Y为平凡的多值依赖
否则称X→→Y为非平凡的多值依赖
(1)多值依赖具有对称性
若X→→Y,则X→→Z,其中Z=U-X-Y
(2)多值依赖具有传递性
若X→→Y,Y→→Z, 则X→→Z –Y
(3)函数依赖是多值依赖的特殊情况。
若X→Y,则X→→Y。
(4)若X→→Y,X→→Z,则X→→Y∪ Z。
(5)若X→→Y,X→→Z,则X→→Y∩Z。
(6)若X→→Y,X→→Z,则X→→Y-Z,X→→Z -Y。
4NF
规范化小结
关系数据库的规范化理论是数据库逻辑设计的工具
目的:尽量消除
插入、删除异常
修改复杂
数据冗余
基本思想:逐步消除数据依赖中不合适的部分
实质:概念的单一化
关系模式R<U,F>的一个分解 ρ={ R1<U1,F1>,R2<U2,F2>, …,Rn<Un,Fn>}
若R与R1、R2、…、Rn自然连接的结果相等,则称关系
模式R的这个分解ρ具有无损连接性(Lossless join)
具有无损连接性的分解保证不丢失信息
无损连接性不一定能解决插入异常、删除异常、修改复杂、数据冗余等问题
如果一个分解具有无损连接性,则它能够保证不丢失信息。
如果一个分解保持了函数依赖,则它可以减轻或解决各种异常情况。
分解具有无损连接性和分解保持函数依赖是两个互相独立的标准。具有无损连接性的分解不一定能够保持函数依赖。同样,保持函数依赖的分解也不一定具有无损连接性
数据依赖的公理系统
逻辑蕴含
定义6.11 对于满足一组函数依赖 F 的关系模式R <U,F>,其任何一个关系r,若函数依赖X→Y都成立, (即r中任意两元组t,s,若t[X]=s[X],则t[Y]=s[Y]),则称F逻辑蕴含X →Y
定义6.l2 在关系模式R<U,F>中为F所逻辑蕴含的函数依赖的全体叫作 F的闭包,记为F+。
若仅要求分解是无损连接,那么模式分解一定能够达到BCNF
若要求分解既具有无损连接性,又保持函数依赖,则模式分解一定能够达到3NF,但不一定能够达到BCNF
BCNF vs 保持依赖的3NF,通常倾向于选择后者