关系数据理论是指导数据库设计的基础,关系数据库设计是数据库语义学的问题。要保证构造的关系既能准确地反映现实世界,又有利于应用和具体的操作。关系数据库设计的目标是生成一组合适的、性能良好的关系模式,以减少系统中信息存储的冗余度,但又可以方便地获取信息。
1.函数依赖
数据依赖是通过一个关系中属性间值的相等与否体现出来的数据间的相互关系,是现实世界属性间联系和约束的抽象,是数据内在的性质,是语义的体现。函数依赖则是一种最重要、最基本的数据依赖。
2.多值依赖
若关系模式R(U)中,X、Y、Z是U的子集,并且Z=U-X-Y。当且仅当对R(U)的任何一个关系r,给定一对(x,z)值,有一组Y的值,这组值只由x值决定而与z值无关,则称“Y多值依赖于X”或“X多值决定Y”成立。记为:X—>—>Y。
3.规范化
关系数据库设计的方法之一就是设计满足适当范式的模式,通常可以通过判断分解后的模式到达到几范式来评价模式规范化的程度。范式有:1NF、2NF、3NF、BCNF、4NF和5NF,其中1NF级别最低。这几种范式之间1NF ⊇2NF ⊇3NF ⊇BCNF ⊇4NF ⊇5NF成立。
通过分解,可以将一个低一级范式的关系模式转换成若干个高一级范式的关系模式,这种过程叫做规范化。下面将给出1NF到4NF的定义。
1)1NF
若关系模式R的每一个分量都是不可再分的数据项,则关系模式R属于第一范式。记为R∈1NF。
2)2NF
若关系模式R∈1NF,且每一个非主属性完全依赖于码,则关系模式R∈2NF。换句话说,当1NF消除了非主属性对码的部分函数依赖,则称为2NF。
3)3NF
若关系模式R(U,F)中不存在这样的码X,属性组Y及非主属性Z(Z⊈Y)使得X—>Y,(Y↛X)Y—>Z成立,则关系模式R∈3NF。
即当2NF消除了非主属性对码的传递函数依赖,则称为3NF。
4)BCNF(Boyce Codd Normal Form,巴克斯范式)
关系模式R∈1NF,若X—>Y且Y⊈X时,X必含有码,则关系模式R∈BCNF。也就是说,当3NF消除了主属性对码的部分函数依赖和传递函数依赖,则称为BCNF。
结论:一个满足BCNF的关系模式,应有如下性质:
(1)所有非主属性对每一个码都是完全函数依赖;
(2)所有非主属性对每一个不包含它的码,也是完全函数依赖;
(3)没有任何属性完全函数依赖于非码的任何一组属性。
例如,设R(Pno,Pname,Mname)的属性分别表是零件号、零件名和厂商名,如果约定,每种零件号只有一个零件名,但不同的零件号可以有相同的零件名;每种零件可以有多个厂商生产,但每家厂商生产的零件应有不同的零件名。这样我们可以得到一组函数依赖:
Pno—>Pname,(Pname,Manme)—>Pno
由于该关系模式R中的候选码为(Pname,Mname)或(Pno,Mname),因而关系模式R的属性都是主属性,不存在非主属性对码的传递依赖,所以R是3NF的。但是,主属性Pname传递依赖于码(Pname,Mname),因此R不是BCNF的。当一种零件由多个生产厂家生产时,零件名与零件号间的联系将多次重复,带来冗余和操作异常现象。若将R分解成:
R1(Pno,Pname)和R2(Pno,Mname)就可以解决上述问题,并且分解后的关系模式R1、R2都属于BCNF。
5)4NF
关系模式R∈1NF,若对于R的每个非平凡多值依赖X—>—>Y且Y⊈X时,X必含有码,则关系模式R(U,F)∈4NF.
4NF是限制关系模式的属性间不允许有非平凡且非函数依赖的多值依赖。
注意:若果只考虑函数依赖,关系模式最高的规范化程度是BCNF;如果考虑多值依赖,关系模式最高的规范化程度是4NF。
标签:关系,BCNF,依赖,理论,1NF,模式,关系数据库,设计,属性 From: https://blog.csdn.net/huaqianzkh/article/details/136991889