数据库 - BC范式(BCNF)

BC范式(BCNF)

关系模式R<U,F>∈1NF,若X→Y且Y ? X时X必包含码,则R<U,F> ∈BCNF。
这个定义表明,如果非平凡的FD X→Y中X不包含码,那么Y必定传递依赖于候选键,因此R不是BCNF模式。
等价于:每一个决定属性因素都包含码
如果关系模式R是1NF,且每个属性(包括主属性和非主属性)都不传递依赖于R的候选码,那么称R是BCNF的模式。
若R∈BCNF 
所有非主属性对每一个码都是完全函数依赖
所有的主属性对每一个不包含它的码,也是完全函数依赖
没有任何属性完全函数依赖于非码的任何一组属性

R ∈BCNF                R ∈3NF
定理:如果R是BCNF模式,那么R也是3NF模式。
证明:设R是BCNF,但不是3NF,那么R上必存在传递依赖X→Y,Y→A,这里X是R的码,A∈Y, Y→X。显然Y不包含R的码,否则Y→X也成立。因此Y→A违反了BCNF的定义,与假设R是BCNF矛盾。从而定理得证。
[例5] 关系模式C(Cno,Cname,Pcno)
C3NF
C∈BCNF

[例6]  关系模式S(Sno,Sname,Sdept,Sage)
假定S有两个码Sno,Sname
S∈3NF。
S ∈ BCNF
[例7]关系模式SJP(S,J,P)

函数依赖:(S,J)→P;(J,P)→S
(S,J)与(J,P)都可以作为候选码,属性相交
SJP∈3NF,
SJP∈BCNF
[例8]在关系模式STJ(S,T,J)中,S表示学生,T表示教师,J表示课程。
函数依赖:
          (S,J)→T,(S,T)→J,T→J
(S,J)和(S,T)都是候选码

多值依赖

[例9] 学校中某一门课程由多个教师讲授,他们使用相同的一套参考书。每个教员可以讲授多门课程,每种参考书可以供多门课程使用。
Teaching∈BCNF

Teaching具有唯一候选码(C,T,B), 即全码
Teaching模式中存在的问题
(1)数据冗余度大
(2)插入操作复杂
(3) 删除操作复杂
(4) 修改操作复杂

R(U)是一个属性集U上的一个关系模式, X、 Y和Z是U的子集,并且Z=U-X-Y。关系模式R(U)中多值依赖 X→→Y成立,当且仅当对R(U)的任一关系r,给定的一对(x,z)值,有一组Y的值,这组值仅仅决定于x值而与z值无关

例  Teaching(C, T, B

多值依赖的另一个等价的形式化的定义:

  在R(U)的任一关系r中,如果存在元组t,s 使得t[X]=s[X],那么就必然存在元组 w,v? r,(w,v可以与s,t相同),使得w[X]=v[X]=t[X],而w[Y]=t[Y],w[Z]=s[Z],v[Y]=s[Y],v[Z]=t[Z](即交换s,t元组的Y值所得的两个新元组必在r中),则Y多值依赖于X,记为X→→Y。 这里,X,Y是U的子集,Z=U-X-Y。

平凡多值依赖和非平凡的多值依赖
若X→→Y,而Z=φ,则称
X→→Y为平凡的多值依赖
否则称X→→Y为非平凡的多值依赖
[例10]关系模式WSC(W,S,C)
W表示仓库,S表示保管员,C表示商品
假设每个仓库有若干个保管员,有若干种商品
每个保管员保管所在的仓库的所有商品
每种商品被所有保管员保管

多值依赖性质

(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。

多值依赖与函数依赖的区别

(1) 多值依赖的有效性与属性集的范围有关
(2)
若函数依赖X→Y在R(U)上成立,则对于任何Y’ ? Y均有X→Y’ 成立
多值依赖X→→Y若在R(U)上成立,不能断言对于任何Y’ ? Y有X→→Y’ 成立

4NF

关系模式R<U,F>∈1NF,如果对于R的每个非平凡多值依赖X→→Y(Y ? X),X都含有码,则R∈4NF。
如果R ∈ 4NF, 则R ∈ BCNF
不允许有非平凡且非函数依赖的多值依赖
允许的非平凡多值依赖是函数依赖
例: Teaching(C,T,B) ∈ 4NF
    存在非平凡的多值依赖C→→T,且C不是码
用投影分解法把Teaching分解为如下两个关系模式:
                       CT(C, T) ∈ 4NF
                   CB(C, B) ∈ 4NF
     C→→T, C→→B是平凡多值依赖

关系数据库的规范化理论是数据库逻辑设计的工具

目的:尽量消除插入、删除一场,修改复杂,数据冗余

基本思想:逐步消除数据依赖中不合适的部分
实质:概念的单一化

不能说规范化程度越高的关系模式就越好
在设计数据库模式结构时,必须对现实世界的实际情况和用户应用需求作进一步分析,确定一个合适的、能够反映现实世界的模式
上面的规范化步骤可以在其中任何一步终止

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。