首页 > 编程知识 正文

mysql中bcnf数据库 BC范式BCNF,mysql数据库范式

时间:2023-05-06 11:49:45 阅读:194916 作者:1654

BC范式(BCNF)

关系模式R∈1NF,若X→Y且Y  X时X必包含码,则R ∈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)

C∈3NF

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∈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是平凡多值依赖

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

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

基本思想:逐步消除数据依赖中不合适的部分

实质:概念的单一化

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

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。