第4章+关系数据库的规范化设计

上传人:dfg****19 文档编号:242863132 上传时间:2024-09-10 格式:PPT 页数:61 大小:499.50KB
返回 下载 相关 举报
第4章+关系数据库的规范化设计_第1页
第1页 / 共61页
第4章+关系数据库的规范化设计_第2页
第2页 / 共61页
第4章+关系数据库的规范化设计_第3页
第3页 / 共61页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第,4,章 关系数据库的规范化设计,本章重要概念,(,1,)关系模式的冗余和异常问题。,(,2,),FD,的定义、逻辑蕴涵、闭包、推理规则、与关键码的联系;平凡的,FD,;,属性集,的闭包;推理规则的正确性和完备性;,FD,集的等价;最小依赖集。,(,3,)无损分解的定义、性质、测试;保持依赖集的分解。,(,4,)关系模式的范式:,1,NF,,,2NF,,,3NF,,,BCNF,。,分解成,2,NF,、,3NF,模式集的算法。,(,5,),MVD,、,4NF,、,JD,和,5,NF,的定义。,前言,关系数据库的规范化设计是指面对一个现实问题,如何选择一个比较好的关系模式集合。规范化设计理论主要包括三个方面的内容:数据依赖、范式和模式设计方法。其中数据依赖起着核心的作用。数据依赖研究数据之间的联系,范式是关系模式的标准,模式设计方法是自动化设计的基础。规范化设计理论对关系数据库结构的设计起着重要的作用。,4.1.1,关系模型的外延和内涵,外延就是通常所说的关系、表或当前值,它的基本性质已在第,2,章介绍过。由于用户经常对关系进行插入、删除和修改操作,因此外延是与时间有关的,随着时间的推移在不断变化。,内涵是与时间独立的,是对数据的定义以及数据完整性约束的定义。对数据的定义包括对关系、属性、域的定义和说明。对数据完整性约束的定义涉及面较广,主要包括以下几个方面:,静态约束,涉及到数据之间联系(称为“数据依赖,,data dependences,)、主键和值域的设计。,动态约束,定义各种操作(插入、删除、修改)对关系值的影响。,4.1.2,关系模式的冗余和异常问题(一),例,4.1,TNAME,ADDRESS,C#,CNAME,t1,a1,c1,n1,t1,a1,c2,n2,t1,a1,c3,n3,t2,a2,c4,n4,t2,a2,c5,n2,t3,a3,c6,n4,4.1.2,关系模式的冗余和异常问题(二),数据冗余。如果一个教师教几门课程,那么这个教师的地址就要重复几次存储。,操作异常。由于数据的冗余,在对数据操作时会引起各种异常:,修改异常。譬如教师,t1,教三门课程,在关系中就会有三个元组。如果他的地址变了,这三个元组中的地址都要改变。若有一个元组中的地址未更改,就会造成这个教师的地址不惟一,产生不一致现象。,插入异常。如果一个教师刚调来,尚未分派教学任务,那么要将教师的姓名和地址存储到关系中去时,在属性,C#,和,CNAME,上就没有值(空值)。在数据库技术中空值的语义是非常复杂的,对带空值元组的检索和操作也十分麻烦。,删除异常。如果在图,4.1,中要取消教师,t3,的教学任务,那么就要把这个教师的元组删去,同时也把,t3,的地址信息从表中删去了。这是一种不合适的现象。,4.1.2,关系模式的冗余和异常问题(三),TNAME,ADDRESS,TNAME,C#,CNAME,t1,a1,t1,c1,n1,t2,a2,t1,c2,n2,t3,a3,t1,c3,n3,t2,c4,n4,t2,c5,n2,t3,c6,n4,4.2.1,函数依赖的定义(一),定义,4.1,设有关系模式,R,(,U,),,X,和,Y,是属性集,U,的子集,函数依赖(,functional dependency,,简记为,FD,)是形为,XY,的一个命题,只要,r,是,R,的当前关系,对,r,中任意两个元组,t,和,s,,都有,t,X,=s,X,蕴涵,t,Y,=s,Y,,那么称,FD XY,在关系模式,R,(,U,)中成立。,4.2.1,函数依赖的定义(二),例,4.2,A,B,C,D,A,B,C,D,a1,b1,c1,d1,a1,b1,c1,d1,a1,b1,c2,d2,a1,b2,c2,d2,a2,b2,c3,d3,a2,b2,c3,d3,a3,b1,c4,d4,a3,b2,c4,d4,4.2.1,函数依赖的定义(三),例,4.3,有一个关于学生选课、教师任课的关系模式:,R,(,S#,,,SNAME,,,C#,,,GRADE,,,CNAME,,,TNAME,,,TAGE,),属性分别表示学生学号、姓名、选修课程的课程号、成绩、课程名、任课教师姓名和年龄等意义。,如果规定,每个学号只能有一个学生姓名,每个课程号只能决定一门课程,那么可写成下列,FD,形式:,S#SNAME C#CNAME,每个学生每学一门课程,有一个成绩,那么可写出下列,FD,:,(,S#,,,C#,),GRADE,还可以写出其他一些,FD,:,C#,(,CNAME,,,TNAME,,,TAGE,),TNAMETAGE,4.2.2 FD,的逻辑蕴涵,定义,4.2,设,F,是在关系模式,R,上成立的函数依赖的集合,,XY,是一个函数依赖。如果对于,R,的每个满足,F,的关系,r,也满足,XY,,那么称,F,逻辑蕴涵,XY,,记为,F XY,。,定义,4.3,设,F,是函数依赖集,被,F,逻辑蕴涵的函数依赖全体构成的集合,称为函数依赖集,F,的闭包(,closure,),记为,F+,。即,F+=,XY |,记为,FXY,。 ,4.2.3 FD,的推理规则(一),设,U,是关系模式,R,的属性集,,F,是,R,上成立的只涉及到,U,中属性的函数依赖集。,FD,的推理规则有以下三条:,A1,(自反性,,reflexivity,):若,Y,X,U,,则,XY,在,R,上成立。,A2,(增广性,,augmentation,):若,XY,在,R,上成立,且,Z,U,,则,XZYZ,在,R,上成立。,A3,(传递性,,transitivity,):若,XY,和,YZ,在,R,上成立,则,XZ,在,R,上成立。,4.2.3 FD,的推理规则(二),定理,4.1 FD,推理规则,A1,、,A2,和,A3,是正确的。也就是,如果,XY,是从,F,用推理规则导出,那么,XY,在,F+,中。,定理,4.2 FD,的其他五条推理规则,:,(1) A4,(合并性,,union,):,XY,,,XZ,XYZ,。,(2) A5,(分解性,,decomposition,):,XY,,,Z,Y,XZ,。,(3) A6,(伪传递性):,XY,,,WYZ,WXZ,。,(4) A7,(复合性,,composition,):,XY,,,WZ,XWYZ,。,(5) A8,XY,,,WZ,X,(,W,Y,),YZ,。,4.2.3 FD,的推理规则(三),例,4.5,已知关系模式,R,(,ABC,),,F=,AB,,,BC,,求,F+,。,根据,FD,的推理规则,可推出,F,的,F+,有,43,个,FD,。,譬如,据规则,A1,可推出,A,(,表示空属性集),,AA,,,。据已知的,AB,及规则,A2,可推出,ACBC,,,ABB,,,AAB,,,。据已知条件及规则,A3,可推出,AC,等。作为习题,读者可自行推出这,43,个,FD,。,4.2.3 FD,的推理规则(四),定义,4.4,对于,FD XY,,如果,Y,X,,那么称,XY,是一个“平凡的,FD”,,否则称为“非平凡的,FD”,。,定理,4.3,如果,A1An,是关系模式,R,的属性集,那么,XA1An,成立的充分必要条件是,XAi,(,i=1,,,,,n,)成立。,4.2.4 FD,和关键码的联系,定义,4.5,设关系模式,R,的属性集是,U,,,X,是,U,的一个子集。如果,XU,在,R,上成立,那么称,X,是,R,的一个超键。如果,XU,在,R,上成立,但对于,X,的任一真子集,X1,都有,X1U,不成立,那么称,X,是,R,上的一个候选键。本章的键都是指候选键。,例,4.6,在学生选课、教师任课的关系模式中:,R,(,S#,,,SNAME,,,C#,,,GRADE,,,CNAME,,,TNAME,,,TAGE,),如果规定:每个学生每学一门课只有一个成绩;每个学生只有一个姓名;每个课程号只有一个课程名;每门课程只有一个任课教师。,根据这些规则,可以知道(,S#,,,C#,)能函数决定,R,的全部属性,并且是一个候选键。虽然(,S#,,,SNAME,,,C#,,,TNAME,)也能函数决定,R,的全部属性,但相比之下,只能说是一个超键,而不能说是候选键,因为其中含有多余属性。,4.2.5,属性集的闭包,定义,4.6,设,F,是属性集,U,上的,FD,集,,X,是,U,的子集,那么(相对于,F,)属性集,X,的闭包用,X+,表示,它是一个从,F,集使用,FD,推理规则推出的所有满足,XA,的属性,A,的集合:,X+=, 属性,A | XA,在,F+,中 ,定理,4.4 XY,能用,FD,推理规则推出的充分必要条件是,Y,X+,。,例,4.7,属性集,U,为,ABCD,,,FD,集为,AB,,,BC,,,DB,。则用上述算法,可求出,A+=ABC,,(,AD,),+=ABCD,,(,BD,),+=BCD,,等等。,4.2.5 FD,推理规则的完备性,推理规则的正确性是指“从,FD,集,F,使用推理规则集推出的,FD,必定在,F+,中”,完备性是指“,F+,中的,FD,都能从,F,集使用推理规则集导出”。也就是正确性保证了推出的所有,FD,是正确的,完备性保证了可以推出所有被蕴涵的,FD,。这就保证了推导的有效性和可靠性。,定理,4.5 FD,推理规则,A1,,,A2,,,A3,是完备的。,4.2.6 FD,集的最小依赖集(一),定义,4.7,如果关系模式,R,(,U,)上的两个函数依赖集,F,和,G,,有,F+=G+,,则称,F,和,G,是等价的函数依赖集。,定义,4.8,设,F,是属性集,U,上的,FD,集。如果,Fmin,是,F,的一个最小依赖集,那么,Fmin,应满足下列四个条件:, F+min =F+,;,每个,FD,的右边都是单属性;,Fmin,中没有冗余的,FD,(即,F,中不存在这样的函数依赖,XY,,使得,F,与,F,XY,等价);,每个,FD,的左边没有冗余的属性(即,F,中不存在这样的函数依赖,XY,,,X,有真子集,W,使得,F,XY,WY,与,F,等价)。,4.2.6 FD,集的最小依赖集(二),例,4.8,设,F,是关系模式,R,(,ABC,)的,FD,集,,F=,ABC,,,BC,,,AB,,,ABC,,试求,Fmin,。,先把,F,中的,FD,写成右边是单属性形式:,F=,AB,,,AC,,,BC,,,AB,,,ABC,显然多了一个,AB,,可删去。得,F=,AB,,,AC,,,BC,,,ABC, F,中,AC,可从,AB,和,BC,推出,因此,AC,是冗余的,可删去。得,F=,AB,,,BC,,,ABC, F,中,ABC,可从,AB,和,BC,推出,因此,ABC,也可删去。最后得,F=,AB,,,BC,,即所求的,Fmin,。,4.3.1,模式分解问题 (一),定义,4.9,设有关系模式,R(U),,属性集为,U,,,R1,、,、,Rk,都是,U,的子集,并且有,R1R2,Rk,U,。关系模式,R1,、,、,Rk,的集合用,表示,,=,R1,,,,,Rk,。用,代替,R,的过程称为关系模式的分解。这里,称为,R,的一个分解,也称为数据库模式。,4.3.1,模式分解问题 (二),4.3.2,无损分解(一),例,4.9,4.3.2,无损分解(二),定义,4.10,设,R,是一个关系模式,,F,是,R,上的一个,FD,集。,R,分解成数据库模式,=,R1,,,,,Rk,。如果对,R,中满足,F,的每一个关系,r,,都有,r=R1,(,r,),R2,(,r,), ,Rk,(,r,),那么称分解,相对于,F,是“无损联接分解”(,lossless,join decomposition,),简称为“无损分解”,否则称为“损失分解”(,lossy,decomposition,)。,4.3.2,无损分解(三),定理,4.6,设,=,R1,,,,,Rk,是关系模式,R,的一个分解,,r,是,R,的任一关系,,ri,=,Ri,(,r,)(,1ik,),那么有下列性质:,r,m,(,r,);,若,s= m,(,r,),则,Ri,(,s,),=,ri,;,m,(,m,(,r,),= m,(,r,),这个性质称为幂等性(,idempotent,)。,4.3.2,无损分解(四),4.3.2,无损分解(五),4.3.2,无损分解(六),例,4.10,设关系模式,R,(,ABC,)分解成,=,AB,,,BC,。(,a,)和(,b,)分别是模式,AB,和,BC,上的值,r1,和,r2,,(,c,)是,r1r2,的值。显然,BC,(,r1r2,),r2,。这里,r2,中元组(,b2c2,)就是一个悬挂元组,由于它的存在,使得,r1,和,r2,不存在泛关系,r,。,4.3.3,无损分解的测试方法(一),算法,4.3,无损分解的测试,构造一张,k,行,n,列的表格,每列对应一个属性,Aj,(,1jn,),每行对应一个模式,Ri,(,1ik,)。如果,Aj,在,Ri,中,那么在表格的第,i,行第,j,列处填上符号,aj,,否则填上,bij,。,把表格看成模式,R,的一个关系,反复检查,F,中每个,FD,在表格中是否成立,若不成立,则修改表格中的值。修改方法如下:对于,F,中一个,FD XY,,如果表格中有两行在,X,值上相等,在,Y,值上不相等,那么把这两行在,Y,值上也改成相等的值。如果,Y,值中有一个是,aj,,那么另一个也改成,aj,;如果没有,aj,,那么用其中一个,bij,替换另一个值(尽量把下标,ij,改成较小的数)。一直到表格不能修改为止。(这个过程称为,chase,过程),若修改的最后一张表格中有一行是全,a,,即,a1a2an,,那么称,相对于,F,是无损分解,否则称损失分解。,4.3.3,无损分解的测试方法(二),4.3.3,无损分解的测试方法(三),定理,4.7,设,=,R1,,,R2,是关系模式,R,的一个分解,,F,是,R,上成立的,FD,集,那么分解,相对于,F,是无损分解的充分必要条件是(,R1R2,),(,R1,R2,)或(,R1R2,),(,R2,R1,)。,定理,4.8,如果,FD XY,在模式,R,上成立,且,XY=,,那么,R,分解成,=R,Y,,,XY ,是无损分解。,4.3.4,保持函数依赖的分解(一),定义,4.11,设,F,是属性集,U,上的,FD,集,,Z,是,U,的子集,,F,在,Z,上的投影用,Z,(,F,)表示,定义为,Z,(,F,),=,XY | XYF+,,且,XY,Z,定义,4.12,设,=,R1,,,,,Rk,是,R,的一个分解,,F,是,R,上的,FD,集,如果有,Ri,(,F,),F,,那么称分解,保持函数依赖集,F,。,4.3.4,保持函数依赖的分解(二),WNO,WS,WNO,WG,WNO,WS,WG,W1,8,级,W1,2000,W1,8,级,2000,W2,6,级,W2,1600,W2,6,级,1600,W3,6,级,W3,1400,W3,6,级,1400,(a),关系,r1 (b),关系,r2(c) r1r2,例,4.12,4.3.5,模式分解与模式等价问题(一),本节讨论的关系模式分解的两个特性实际上涉及到两个数据库模式的等价问题,这种等价包括数据等价和依赖等价两个方面。数据等价是指两个数据库实例应表示同样的信息内容,用“无损分解”衡量。如果是无损分解,那么对泛关系反复的投影和联接都不会丢失信息。依赖等价是指两个数据库模式应有相同的依赖集闭包。在依赖集闭包相等情况下,数据的语义是不会出差错的。违反数据等价或依赖等价的分解很难说是一个好的模式设计。,4.3.5,模式分解与模式等价问题(二),例,4.13,设关系模式,R,(,ABC,),,=,AB,,,AC,是,R,的一个分解。试分析分别在,F1=,AB,,,F2=,AC,,,BC,,,F3=,BA,,,F4=,CB,,,BA,情况下,,是否具有无损分解和保持,FD,的分解特性。,相对于,F1=,AB,,分解,是无损分解且保持,FD,的分解。,相对于,F2=,AC,,,BC,,分解,是无损分解,但不保持,FD,集。因为,BC,丢失了。,相对于,F3=,BA,,分解,是损失分解但保持,FD,集的分解。,相对于,F4=,CB,,,BA,,分解,是损失分解且不保持,FD,集的分解,(,丢失了,CB),4.4,关系模式的范式,关系模式的好与坏,用什么标准衡量?这个标准就是模式的范式(,Normal Forms,,简记为,NF,)。范式的种类与数据依赖有着直接的联系,基于,FD,的范式有,1NF,、,2NF,、,3NF,、,BCNF,等多种。,在不提及,FD,时,关系中是不可能有冗余的问题,但是当存在,FD,时,关系中就有可能存在数据冗余问题。,1NF,是关系模式的基础;,2NF,已成为历史,一般不再提及;在数据库设计中最常用的是,3NF,和,BCNF,。为了叙述的方便,我们还是从,1NF,、,2NF,、,3NF,、,BCNF,顺序来介绍。,4.4.1,第一范式(,1NF,),定义,4.13,如果关系模式,R,的每个关系,r,的属性值都是不可分的原子值,那么称,R,是第一范式(,first normal form,,简记为,1NF,)的模式。,满足,1NF,的关系称为规范化的关系,否则称为非规范化的关系。关系数据库研究的关系都是规范化的关系。例如关系模式,R,(,NAME,,,ADDRESS,,,PHONE,),如果一个人有两个电话号码(,PHONE,),那么在关系中至少要出现两个元组,以便存储这两个号码。,1NF,是关系模式应具备的最起码的条件。,4.4.2,第二范式(,2NF,)(一),定义,4.14,对于,FD WA,,如果存在,XW,有,XA,成立,那么称,WA,是局部依赖(,A,局部依赖于,W,);否则称,WA,是完全依赖。完全依赖也称为“左部不可约依赖”。,定义,4.15,如果,A,是关系模式,R,的候选键中属性,那么称,A,是,R,的主属性;否则称,A,是,R,的非主属性。,定义,4.16,如果关系模式,R,是,1NF,,且每个非主属性完全函数依赖于候选键,那么称,R,是第二范式(,2NF,)的模式。如果数据库模式中每个关系模式都是,2NF,,则称数据库模式为,2NF,的数据库模式。,4.4.2,第二范式(,2NF,)(二),例,4.14,设关系模式,R,(,S#,,,C#,,,GRADE,,,TNAME,,,TADDR,)的属性分别表示学生学号、选修课程的编号、成绩、任课教师姓名和教师地址等意义。(,S#,,,C#,)是,R,的候选键。,R,上有两个,FD,:(,S#,,,C#,),(,TNAME,,,TADDR,)和,C#,(,TNAME,,,TADDR,),因此前一个,FD,是局部依赖,,R,不是,2NF,模式。此时,R,的关系就会出现冗余和异常现象。譬如某一门课程有,100,个学生选修,那么在关系中就会存在,100,个元组,因而教师的姓名和地址就会重复,100,次。,如果把,R,分解成,R1,(,C#,,,TNAME,,,TADDR,)和,R2,(,S#,,,C#,,,GRADE,)后,局部依赖(,S#,,,C#,),(,TNAME,,,TADDR,)就消失了。,R1,和,R2,都是,2NF,模式。,4.4.2,第二范式(,2NF,)(三),算法,4.4,分解成,2NF,模式集的算法,设关系模式,R,(,U,),主键是,W,,,R,上还存在,FD XZ,,并且,Z,是非主属性和,XW,,那么,WZ,就是一个局部依赖。此时应把,R,分解成两个模式,R1,(,XZ,),主键是,X,;,R2,(,Y,),其中,Y=U-Z,,主键仍是,W,,外键是,X,(,REFERENCES R1,)。,利用外键和主键的联接可以从,R1,和,R2,重新得到,R,。,如果,R1,和,R2,还不是,2NF,,则重复上述过程,一直到数据库模式中每一个关系模式都是,2NF,为止。,4.4.3,第三范式(,3NF,)(一),定义,4.17,如果,XY,,,YA,,且,YX,和,AY,,那么称,XA,是传递依赖(,A,传递依赖于,X,)。,定义,4.18,如果关系模式,R,是,1NF,,且每个非主属性都不传递依赖于,R,的候选键,那么称,R,是第三范式(,3NF,)的模式。如果数据库模式中每个关系模式都是,3NF,,则称其为,3NF,的数据库模式,4.4.3,第三范式(,3NF,)(二),例,4.15,在例,4.14,中,,R2,是,2NF,模式,而且也已是,3NF,模式。但,R1,(,C#,,,TNAME,,,TADDR,)是,2NF,模式,却不一定是,3NF,模式。如果,R1,中存在函数依赖,C#TNAME,和,TNAMETADDR,,那么,C#TADDR,就是一个传递依赖,即,R1,不是,3NF,模式。此时,R1,的关系中也会出现冗余和异常操作。譬如一个教师开设五门课程,那么关系中就会出现五个元组,教师的地址就会重复五次。,如果把,R2,分解成,R21,(,TNAME,,,TADDR,)和,R22,(,C#,,,TNAME,)后,,C#TADDR,就不会出现在,R21,和,R22,中。这样,R21,和,R22,都是,3NF,模式。,4.4.3,第三范式(,3NF,)(三),算法,4.5,分解成,3NF,模式集的算法,设关系模式,R,(,U,),主键是,W,,,R,上还存在,FD XZ,。并且,Z,是非主属性,,Z,X,,,X,不是候选键,这样,WZ,就是一个传递依赖。此时应把,R,分解成两个模式:,R1,(,XZ,),主键是,X,;,R2,(,Y,),其中,Y=U-Z,,主键仍是,W,,外键是,X,(,REFERENCES R1,)。,利用外键和主键相匹配机制,,R1,和,R2,通过联接可以重新得到,R,。,如果,R1,和,R2,还不是,3NF,,则重复上述过程,一直到数据库模式中每一个关系模式都是,3NF,为止。,4.4.3,第三范式(,3NF,)(四),定理,4.9,如果,R,是,3NF,模式,那么,R,也是,2NF,模式。,定理,4.10,设关系模式,R,,当,R,上每一个,FD XA,满足下列三个条件之一时:,AX,(即,XA,是一个平凡的,FD,);,X,是,R,的超键;,A,是主属性。关系模式,R,就是,3NF,模式。,4.4.3,第三范式(,3NF,)(五),4.4.4 BCNF,(,Boyce,Codd,NF,)(一),4.4.4 BCNF,(,Boyce,Codd,NF,)(二),定义,4.19,如果关系模式,R,是,1NF,,且每个属性都不传递依赖于,R,的候选键,那么称,R,是,BCNF,的模式。如果数据库模式中每个关系模式都是,BCNF,,则称为,BCNF,的数据库模式。,定理,4.11,如果,R,是,BCNF,模式,那么,R,也是,3NF,模式。,定义,4.19,设,F,是关系模式,R,的,FD,集,如果对,F,中每个非平凡的,FD XY,,都有,X,是,R,的超键,那么称,R,是,BCNF,的模式。,4.4.5,分解成,BCNF,模式集的算法,算法,4.6,无损分解成,BCNF,模式集,对于关系模式,R,的分解,(初始时,=R,),如果,中有一个关系模式,Ri,相对于,Ri,(,F,)不是,BCNF,。据定义,4-20,可知,,Ri,中存在一个非平凡,FD XY,,有,X,不包含超键。此时把,Ri,分解成,XY,和,Ri,Y,两个模式。重复上述过程,一直到,中每一个模式都是,BCNF,。,4.4.6,分解成,3NF,模式集的算法,算法,4.7,无损分解且保持依赖地分解成,3NF,模式集,对于关系模式,R,和,R,上成立的,FD,集,F,,先求出,F,的最小依赖集,然后再把最小依赖集中哪些左部相同的,FD,用合并性合并起来。,对最小依赖集中,每个,FD XY,去构成一个模式,XY,。,在构成的模式集中,如果每个模式都不包含,R,的候选键,那么把候选键作为一个模式放入模式集中。,这样得到的模式集是关系模式,R,的一个分解,并且这个分解既是无损分解,又能保持,FD,。,4.4.7,模式设计方法的原则,数据库设计者在进行关系数据库设计时,应作权衡,尽可能使数据库模式保持最好的特性。一般尽可能设计成,BCNF,模式集。如果设计成,BCNF,模式集时达不到保持,FD,的特点,那么只能降低要求,设计成,3NF,模式集,以求达到保持,FD,和无损分解的特点。,模式分解并不单指把泛关系模式分解成数据库模式,也可以把数据库模式转换成另一个数据库模式,分解和转换的关键是要“等价”地分解。一个好的模式设计方法应符合三条原则:表达性、分离性和最小冗余性。,4.5,模式的进一步规范化处理,前面提到的函数依赖揭示了数据之间的一种联系。我们通过对函数依赖的观察、分析,可以消除关系模式中的冗余现象。但是函数依赖还不足以描绘现实世界中数据之间的全部联系,有些联系就要用其他数据依赖来刻画,例如多值依赖或联接依赖,本节就是介绍这两种依赖及其模式应达到的范式标准。,4.5.1,多值依赖的定义,定义,4.20,设,U,是关系模式,R,的属性集,,X,和,Y,是,U,的子集,,Z=RXY,,小写的,xyz,表示属性集,XYZ,的值。对于,R,的关系,r,,在,r,中存在元组(,x,,,y1,,,z1,)和(,x,,,y2,,,z2,)时,就也存在元组(,x,,,y2,,,z1,)和(,x,,,y1,,,z2,),那么称多值依赖(,multivalued,dependency,,简记为,MVD,),XY,在模式,R,上成立。,4.5.2,关于,FD,和,MVD,的推理规则集,A1,(,FD,的自反性):若,Y,X,,则,XY,。,A2,(,FD,的增广性):若,XY,,且,Z,U,,则,XZYZ,。,A3,(,FD,的传递性):若,XY,,,YZ,则,XZ,。,A4,(,MVD,的补规则,,complementation,):若,XY,,则,X(U,XY),。,A5,(,MVD,的增广性):若,XY,,且,V,W,U,,则,WXVY,。,A6,(,MVD,的传递性):若,XY,,,YZ,,则,X(Z,Y),。,A7,(复制性,,replication,):若,XY,,则,XY,。,A8,(接合性,,coalescence rule,):若,XY,,,WZ,,并且,Z,Y,,,WY=,,那么,XZ,。,A9,(,MVD,的并规则):若,XY,,,XZ,,则,XYZ,。,A10,(,MVD,的交规则):若,XY,,,XZ,,则,XYZ,。,A11,(,MVD,的差规则):若,XY,,,XZ,,则,XY,Z,,,XZ,Y,。,A12,(,MVD,的伪传递):若,XY,,,WYZ,,则,WXZ,WY,。,A13,(混合伪传递):若,XY,,,XYZ,,则,XZ,Y,。,4.5.3,第四范式(,4NF,),定义,4.23,设,D,是关系模式,R,上成立的,FD,和,MVD,集合。如果,D,中每个非平凡的,MVD XY,的左部,X,都是,R,的超键,那么称,R,是,4NF,的模式。,4.5.4,嵌入多值依赖,定义,4.24,设关系模式,R,(,U,),,X,和,Y,是属性集,U,的子集,,W,是,U,的真子集,并且,XY,W,。,MVD XY,在模式,R,上不成立,但在模式,W,上成立。那么,XY,在,R,上称为嵌入多值依赖(,Embedded MVD,,简记为,EMVD,),用符号(,XY,),W,表示。,4.5.5,联接依赖和第五范式,定义,4.25,设,U,是关系模式,R,的属性集,,R1,、,、,Rn,是,U,的子集,并满足,U=R1,Rn,,,=,R1,,,,,Rn,是,R,的一个分解。如果对于,R,的每个关系,r,都有,m,(,r,),=r,,那么称联接依赖(,join dependency,,简记为,JD,)在模式,R,上成立,记为 *(,R1,,,,,Rn,)。,定义,4.26,如果 *(,R1,,,,,Rn,)中某个,Ri,就是,R,,那么称这个,JD,是平凡的,JD,。,定义,4.27,如果关系模式,R,的每个,JD,均由,R,的候选键蕴涵,那么称,R,是,5NF,的模式。在有的文献中,,5NF,也称为投影联接范式(,project-join NF,,简记为,PJNF,)。,小 结(一),本章讨论如何设计关系模式问题。关系模式设计得好与坏,直接影响到数据冗余度、数据一致性等问题。要设计好的数据库模式,必须有一定的理论为基础。这就是模式规范化理论。,在数据库中,数据冗余是指同一个数据存储了多次,由数据冗余将会引起各种操作异常。通过把模式分解成若干比较小的关系模式可以消除冗余。,小 结(二),函数依赖,XY,是数据之间最基本的一种联系,在关系中有两个元组,如果,X,值相等那么要求,Y,值也相等。,FD,有一个完备的推理规则集。,关系模式在分解时应保持“等价”,有数据等价和语义等价两种,分别用无损分解和保持依赖两个特征来衡量。前者能保持泛关系在投影联接以后仍能恢复回来,而后者能保证数据在投影或联接中其语义不会发生变化,也就是不会违反,FD,的语义。但无损分解与保持依赖两者之间没有必然的联系。,小 结(三),范式是衡量模式优劣的标准,范式表达了模式中数据依赖之间应满足的联系。如果关系模式,R,是,3NF,,那么,R,上成立的非平凡,FD,都应该左边是超键或右边是非主属性。如果关系模式,R,是,BCNF,,那么,R,上成立的非平凡的,FD,都应该左边是超键。范式的级别越高,其数据冗余和操作异常现象就越少。,小 结(四),分解成,BCNF,模式集的算法能保持无损分解,但不一定能保持,FD,集。而分解成,3NF,模式集的算法既能保持无损分解,又能保持,FD,集。,关系模式的规范化过程实际上是一个“分解”过程:把逻辑上独立的信息放在独立的关系模式中。分解是解决数据冗余的主要方法,也是规范化的一条原则:“关系模式有冗余问题就分解它”。,本章的重点篇幅,(,1,)教材中,P148,的例,4.13,。(无损联接和保持,FD,的例子),(,2,)教材中,P149,的例,4.14,和,P150,的例,4.15,。(分解成,2,NF,和,3,NF,的例子),
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 方案规范


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!