收藏 分销(赏)

数据库-第四章(无多值依赖).ppt

上传人:s4****5z 文档编号:14187854 上传时间:2026-07-07 格式:PPT 页数:88 大小:236.50KB 下载积分:10 金币
下载 相关 举报
数据库-第四章(无多值依赖).ppt_第1页
第1页 / 共88页
数据库-第四章(无多值依赖).ppt_第2页
第2页 / 共88页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,数据库系统原理教程,Database Systems,第四章 关系数据库设计理论,4.1 数据依赖,4.2 范式,4.3 关系模式的规范化,数据库的概念模型可以转换为关系模型,但是这样得到的关系模型,或用其他方法得到的关系模型,经常会存在一系列更新异常问题。利用关系数据库的规范化理论,通过规范化使得到的关系模式符合一定的范式,可以不同程度地解决更新异常问题,从而得到一组更优的关系模式。,4.1 数据依赖,4.1.1 关系模式中的数据依赖,关系模式对关系的刻划,R(,U,D,DOM,F,),说明:,R,关系名,U,组成该关系的属性名集合,D,U,中属性所来自的域,DOM,属性向域的映像集合,F,属性间数据的依赖关系集合,描述关系的元组语义,限定组成关系的各个元组必须满足的,完整性约束,条件,属性取值范围的限定,属性值间相互关联,数据依赖,一个关系模型包括:,外延,内涵,两个方面的内容,外延,关系、表或当前值,;,插入、删除和修改,;,外延与,时间有关,随时间推移在不断变化,内涵,对数据的定义以及数据完整性约束的定义,。,数据的定义:,对关系、属性、域的定义和说明,;,数据完整性约束定义:,静态约束,:,涉及数据之间联系(数据依赖)、主,建和值域的设计,;,动态约束,:,定义各种操作(插入、删除、修改),对关系值的影响。内涵称为关系模式。,对一个现实问题,它有一个属性集,U,,,其中,每个属性,A,i,对应一个值域,不同属性可以有相同的值域。现实问题的所有属性组成的关系模式记为,R(,U,)。,关系,r,是关系模式,R(,U,),的,当前值,是元组的集合。,实际应用中,往往,R(,U,),和,r,不是恰当的形式,而必须用一个关系模式的集合,R,1,R,2,R,k,代替,R(,U,),,其中每个,R,i,的属性是,U,的子集。,有时用,R,i,表示其属性集,有,R,1,R,2,R,k,=U,;,称为数据库模式,对数据库的每一个关系模式,R,i,赋予一个当前值,就得到数据库实例。,本章讨论如何把关系模式分解成规范的、较优的数据库模式。,关系是关系模式在某一时刻的状态或内容,关系模式,静态的、稳定的,关系,动态的,必须满足,关系模式中数据依赖关系,F,中,指定的,完整性约束条件,R(,U,F,),关系模式简化为三元组,当且仅当,U,上的一个关系,r,满足,F,时,,r,称为关系模式,R(,U,F,),的一个关系,关系模式的冗余和异常问题,数据管理中,,数据冗余,一直是影响系统性能的大问题。,数据冗余:同一个数据在系统中多次重复出现。,文件系统中,文件之间没有联系,引起一个数据在多个文件中出现;,数据库系统设计的不好仍然出现数据冗余、异常、不一致等问题。,设有一个关系模式,R(,Sno,Cno,Cname,Tname,),,分别表示学号、课程号、课程名称和任课教师姓名。,例,Sno,Cno,Cname,Tname,S2,C4,PASCAL,WANG,S4,C4,PASCAL,WANG,S6,C4,PASCAL,WANG,S6,C2,ADA,SUN,S4,C2,ADA,SUN,S8,C6,BASIC,ZHAO,数据冗余:,一门课程有多个学生选修,则课程名称和教,师名称多次重复出现,更新异常,:,C4,课的任课教师修改要修改3个元组,易产,生不一致,插入异常,:安排新课程(,C8,DELPHI,CHEN),无学生,选修时,则表中属性,Sno,上出现空值,删除异常,:删除,S8,学生选课元组,则将课程名和教师名,一起删除,解决办法:分解,R(,Sno,Cno,Cname,Tname,),,R1(,Sno,Cno,),R2(,Cno,Cname,Tname,),,Cno,Cname,Tname,C4,PASCAL,WANG,C2,ADA,SUN,C6,BASIC,ZHAO,Sno,Cno,S2,C4,S4,C4,S6,C4,S6,C2,S4,C2,S8,C6,上述分解是否是最佳分解?,什么样的关系模式分解是最优的?,标准是什么?,如何实现?,4.1.2 数据依赖对关系模式的影响,数据依赖,函数依赖,(,functional dependency),多值依赖,(,multialueddependenc,),数据依赖针对关系模式,而不是特定的实例,数据依赖是通过一个关系中属性间值的相对与否体现出来的数据间的相互关系,是现实世界属性间联系的抽象,是数据内在的性质,是语义的体现。,数据库技术中,把数据之间存在的联系称为“数据依赖”。函数依赖是基本的一种依赖,是,关键码,概念的推广。,数据库中,,属性值之间会发生联系,。如每个学生只有一个姓名,没门课程有一个任课教师,每个学生选修一门课程只有一个成绩等等。这类联系称为,函数依赖,。,定义4.1:,设,R(U),是属性集,U,上的关系模式。,X,Y,是,U,的子集。若对于,R(U),的任意一个可能的关系,r,r,中不可能存在两个元组,t,和,s,,它们在,X,上的属性值相等,而在,Y,上的属性值不等,也即,对这任意两个元组,t,和,s,,都有若,tX=sX,则,tY=sY,,则称,X,函数确定,Y,或,Y,函数依赖于,X,,,记作,X,Y。,4.1.3 有关概念,1.函数依赖(,FD),这里,tX,表示元组,t,在属性集,X,上的值,其余类同。,FD,是对,关系模式,R,的,一切可能的关系,r,定义的。对于当前关系,r,的,任意两个元组,如果,X,值相同,要求,Y,值也相同,即有一个,X,值就有一个,Y,值与之对应,或者说,Y,值由,X,值决定。这种依赖称为函数依赖。,R(,Sno,Sname,Cno,Grade,Cname,Tname,Tage,),,,分别表示学号、姓名、课程号、成绩、课程名称、任课教师姓名和年龄。,例,设有一个关系模式,规定:每个学号只能有一个学生姓名,每个课程号只能决定一门课程,则写出如下,FD:,Sno,Sname,、,Cno,Cname,每个学生每学一门课程,有一个成绩,则,FD:,(,Sno,Cno,)Grade,其它,FD:,C,no,(,Cname,、,Tname,Tage,)、,Tname,Tage,例:,R(,Sno,Sdept,Mname,Cname,Grade),一个系有若干学生,但一个学生只属于一个系,一个系只有一名主任,一个学生可以选修多门课程,每门课程可以有多名学生选修,每个学生所学每门课程都有一个成绩,F=,Sno,Sdept,Sdept,Mname,(,Sno Cname,)Grade,Sno,Cname,Sdept,Mname,Grade,数据冗余太大,更新异常,插入异常,删除异常,R(ABCD),,,在关系,R,中,属性值间有这样的联系:,A,值与,B,值有,一对多联系,,即每个,A,值有,多个,B,值,与之联系,而每个,B,值,只有一个,A,值,与之联系;,C,值与,D,值是,一对一联系,,即每个,C,值,只有一个,D,值,与之联系,每个,D,值,只有一个,C,值与之联系。试写出相应的函数依赖。,例,设有一个关系模式,BA,D C、CD,超码:,在关系,R,中,能惟一标识元组的属性或属性集。,超码的概念不足以帮助我们达到目的,因为超码中可能包含一些无关紧要的属性。,如果,K,是一个超码,那么,K,的任意超集也是超码。,若超码,K,的任意真子集都不能成为超码,这种最小超码称为,候选码,。,回忆超码的概念:,设,R(U),是属性集,U,上的关系模式。,X,是,U,的子集。若,X,U,在,R,上成立,那么称,X,是,R,的一个,超码,。若,X,U,在,R,上成立,但对于,X,的任一真子集,X,1,都有,X,1,U,不成立,那么称,X,是,R,的一个,候选码,。,函数依赖,(,FD),和关键码的联系,R(,Sno,Sname,Cno,Grade,Cname,Tname,Tage,),例,规定:,每个学生每学一门课程,只有一个成绩,,,每个学号只能有一个学生姓名,,,每个课程号有一个课程名,,,每门课只有一个任课教师,则写出如下,FD:,(,Sno,Cno,)Grade,Sno,Sname,、,Cno,Cname,C,no,(,Tname,Tage,),(,Sno,Cno,),Sno,Cno,Sname,Tname,函数依赖是用命题形式定义的,所以函数依赖之间存在着逻辑蕴涵的关系。,若,A,B,和,B,C,在,R,上成立,那么,A,C,在,R,上成立吗?,这样的问题就是,FD,之间的逻辑蕴涵问题。,FD,的逻辑蕴含,Armstrong,公理,设,F,是在关系模式,R(U),上成立的函数依赖集,,X,Y,是,U,的子集。如果从,F,推导出,X,Y,也在,R(U),上成立,那么称,F,逻辑蕴涵,X,Y,,,记做,F|,X,Y,。,函数依赖集,F,的闭包(,closure),是,F,所逻辑蕴涵的所有的函数依赖的集合,记为,F,+,,,即,F,+,X,Y,|,F|=,X,Y,假设,A、B、C,和,D,是关系模式,R,的四个属性组,,Armstrong,公理包括如下三条推理规则:,自反律(,reflexivity):,若,A,B,,则,A,B。,例如,,A:(sex,birthdate,);B:(sex),则:(,sex,birthdate,),(sex),证明:,自反律(,reflexivity):,若,A,B,,则,A,B。,不可能在一个关系中两个元组在,A,上相等,而在,A,的某个子集,B,上不相等。,增广律(,augmentation):,若,A,B,在,R,上成立,则对任意的属性组,C,且,CU,AC,BC,在,R,上成立。,例如:,empID,empName,(,empID,sex)(,empName,sex),(,empID,sex,birthdate,)(,empName,sex,birthdate,),证明:,增广律(,augmentation):,若,A,B,在,R,上成立,则对任意的属性组,C,且,CU,AC,BC,在,R,上成立。,假设:,R,的某个关系,r,中存在两个元组,t,和,s,违反,AC,BC,即,tAC=sAC,则,tBCsBC;,从,tBCsBC,中,可知,tBsB,或,tCsC。,如果,tCsC,则与假设的,tAC=sAC,矛盾;,如果,tBsB,则与已知的,A,B,矛盾;,所以,假设不成立,从而推出命题成立。,传递律(,transitivity):,若,A,B,和,B,C,在,R,上,成立,则,A,C,在,R,上,成立。,例如:,empID,branchID,,,branchID,branchName,则,empID,branchName,证明:,传递律(,transitivity):,若,A,B,和,B,C,在,R,上,成立,则,A,C,在,R,上,成立。,假设:,R,的某个关系,r,中存在两个元组,t,和,s,违反,A,C,即,tA=sA,则,tCsC;,如果:,tBsB,则与已知的,B,C,矛盾;,如果,tBsB,则与已知的,A,B,矛盾;,所以,假设不成立,从而推出命题成立。,合并律(,union):,若,A,B,和,A,C,成立,,则,A,BC,成立。,例如:,empID,empName,empID,sex,则:,empID,empName,sex,引申的另外三条规则:,伪传递律(,pseudo transitivity):,若,A,B,和,BD,C,成立,则,AD,C,成立,证明:由增广律,因为,A,B,,故,AD,BD,成立,由于,BD,C,,由传递律,,AD,C,必成立。,例如,关系模式,TCourse,(,SNo,CNo,TNo,score),中各属性分别代表学号、课程编号、教师号以及成绩,假设每个教师只教一门课。则存在函数依赖:,TNo,CNo,(,CNo,SNo,)score,由伪传递规则可得:,(,TNo,SNo,)score,分解律(,decomposition):,若,A,BC,成立,则,A,B,和,A,C,成立。,例如:,empID,empName,sex,则:,empID,empName,empID,sex,几点说明:,函数依赖不是指关系模式,R,的某个或某些关系实例满足的约束条件,而是指,R,的,所有关系实例均要满足的约束条件,。,语义范畴概念,数据库设计者可以对现实世界作强制的规定,若,X,Y,,,则,X,叫,决定属性集,(,determinant),。,若,X,Y,,,Y,X,,,则记作,XY,。,若,Y,不函数依赖于,X,,,则记作,X,Y,2.平凡函数依赖与非平凡函数依赖,定义4.:,在关系模式,R(U),中,对于,U,的,子集,X,和,Y,,如果,X,Y,,但,Y,X,则称,X,Y,是,非平凡函数依赖,。,若,X,Y,,但,Y,X,则称,X,Y,是,平凡的函数依赖,。,3.完全函数依赖与部分函数依赖,定义4.3:,在,R(U),中,如果,X,Y,,,并且对于,X,的任何一个真子集,X,都有,X,Y,,,则称,Y,对,X,完全函数依赖,,记作,X,f,Y,若,X,Y,,,但,Y,不完全函数依赖于,X,,则称,Y,对,X,部分函数依赖,,记作,:,X,p,Y,。,4.传递函数依赖,定义4.4:,在,R(U),中,如果,X,Y,YZ,,且,Y,X,Z,Y,Y,X,,则 称,Z,传递函数依赖于,X,。,例如:,Student(,Sno,Sname,Ssex,Sage,Sdept,),有:,Sno,Ssex Sno,Sage,Sno,Sname,Ssex,Sage,例如,:,SC(,Sno,Cno,Grade),有:,Sno,Grade,Cno,Grade,(,Sno,Cno,)Grade,例如,:,Std(,Sno,Sdept,Mname,),有:,Sno,Sdept Sdept,Mname,Sno,Mname,传递,5.码,定义4.5:,设,K,为,R,中的属性或属性组合,若,K,f,U,,,则,K,为,R,的,候选码(,CK),,,若候选码多于一个,则选定其中的一个作为,主码(,PK),。,主属性,:包含在任何一个候选码中的属性。,非主(码)属性,:不包含在任何一个码中的属性。,全码(,All-key),:,整个属性组是码。,定义4.6:,关系模式,R,中的属性或属性组,X,并非,R,的码,但,X,是另一个关系模式的码,则称,X,是,R,的外码(,FK),。,设,F,是属性集,U,上的,FD,集。如果,F,min,是,F,的一个最小函数依赖集,那么应满足下述四个条件:,F,min,F,每个,FD,的右边都是单属性,每个,FD,左边没有冗余属性,F,min,中,没有冗余的,FD,FD,的最小函数依赖集:,设,F,是关系模式,R(ABC),的,FD,集,,F=A BC,BC,AB,ABC,,求,F,min,例,1、,先把,F,中的,FD,写成右边是单属性形式:,F=,A B,A C,,BC,AB,ABC,F=A C,BC,AB,ABC,2、,A C,冗余去掉,F=BC,AB,ABC,ABC,可以从,BC,推出,因此删除,最后得到:,F,min,=BC,AB,4.2,范式,什么是好的数据库设计,体现客观世界的信息,无过度的冗余,无插入异常,无更新复杂,无删除异常,title,year,length,filmType,studioName,starName,Star Wars,1977,124,color,Fox,Carrie Fisher,Star Wars,1977,124,color,Fox,Mark,Hamill,Star Wars,1977,124,color,Fox,Harrison Ford,Mighty Ducks,1991,104,color,Disney,Emilio,Estevez,Waynes World,1991,95,color,Paramount,Dana,Carvey,Waynes World,1992,95,color,Paramount,Mike Meyers,冗余!,更新复杂!,删除异常!,异常的原因,数据依赖的约束,解决方法,数据库设计的,规范化,分解,模式分解问题,无损分解,保持函数依赖的分解,模式分解问题,设有关系模式,R(U),R1,R2,,,Rk,都是,R,的子集(关系模式看成属性的集合),,UR1,Rk,。,关系模式,R1,R2,,,Rk,的,集合用,表示。,R1,R2,,,Rk,。,用,代替,R,的过程称为关系模式的分解。这里,称为,R,的一个分解,,也,称为数据库模式。,将关系模式,R,分解成,的目的是为了消除数据冗余和消除操作异常现象,那么分解后,和,r,是否表示同一个数据库呢?,如果它们表示的内容不同,那么分解就没有意义了。,泛关系模式,R,数据库模式,R1,,,Rk,数据库实例(数据库),r1,,,rk,泛关系,r,(1)分解后,和,r,是否等价,是否表示同一个数据库用,“,无损分解,”,特性表示;,(2)在模式,R,上有一个,FD,集,F,,在,的每一个模式,Ri,上有一个,FD,集,Fi,,,那么,F1,,,,Fk,与,F,是否等价,用,“,保持依赖,”,特性表示。,从如下角度考虑分解分解:,无损分解,例:设关系模式,R(A,B,C),分解成,AB,AC,r A B C,1 1 1,1 2 1,r1 A B,1 1,1 2,r2 A C,1 1,关系模式,R,上的一个关系,r,r1,r2,是,r,在,AB,和,AC,上的投影。显然,r1 r2r,可以看到,,r,投影、联接以后仍然能恢复成,r,,即未丢失信息,这样的分解叫,“,无损分解,”,。,无损分解,例:设关系模式,R(A,B,C),分解成,AB,AC,r A B C,1 1 4,1 2 3,r1 A B,1 1,1 2,r2 A C,1 4,1 3,关系模式,R,上的一个关系,r,r1,r2,是,r,在,AB,和,AC,上的投影。显然,r1 r2r,可以看到,,r,投影、联接以后比原来,r,的元组还多,丢失原来的信息,这样的分解叫,“,损失分解,”,。,无损分解,分解与函数依赖有关。,如果对于,R,是一个关系模式,,F,是,R,上的一个,FD,集。,R,分解成数据库模式,R1,,,Rk,,,如果对,R,中满足,F,的每一个关系,r,,都有,r=,R1(r),R2(r),Rk,(r),那么称分解,相对于,F,是,“,无损分解,”,,损失称为,“,损失分解,”,。,Ri,(r),表示关系,r,在模式,Ri,属性上的投影。,保持函数依赖的分解,设,F,是,属性集,U,上的,FD,集,Z,是,U,的,子集,,F,在,Z,上,投影用,Z,(F),表示,定义为:,Z,(F)XY|XYF,,XY Z,设,R1,,,Rk,是,R,的一个分解,,F,是,R,上的,FD,集,如果有 ,那么称分解,保持函数依赖集,F。,范式,(,Normal Forms),规范化,一个关系满足某个范式所规定的一系列条件时,它就属于该范式,可以用规范化要求来设计数据库,也可以用来验证设计结果的合理性,用其指导优化过程,1,NF2NF3NFBCNF4NF,第一范式(1,NF),当且仅当一个关系,R,中,每一个元组的每一个属性,只含有一个值时,该关系属于第一范式。,要求属性是原子的,一个关系的每一行的每个分量,即行和列的交叉处的取值必须是原子的,而不是多个独立的取值或多个值复合而成的一个取值,满足此条件的关系模式,R,属于,1,NF,,,记为,R,1NF,。,满足,1,NF,的关系称为规范化的关系,否则称为非规范化的关系。关系数据库研究的关系都是规范化的关系。,1,NF,是关系模式应具备的最起码的条件。,例如:,关系模式,R(name,address,phone),,,如果一个人有多个电话号码,那么在关系中就要出现多个元组,去存储这些电话号码。,例如,:,SLC(,Sno,Sdept,Sloc,Cno,Grade),有:,(,Sno,Cno,)Grade ,Sno,Sdept,(,Sno,Cno,),Sdept,Sno,Sloc,(,Sno,Cno,),Sloc,Sdept,Sloc,f,p,p,Grade,Sno,Cno,Sdept,Sloc,插入异常,删除异常,数据冗余太大,修改复杂,满足1,NF,,但是存在下述问题:,第二范式(2,NF),对于关系,R,,若,R1NF,,且每一个非主属性完全,函数依赖于码,则,R2NF,。,不能部分依赖于码,sc(,sno,sname,cno,grade),sno,cno,grade,sno,sname,sno,cno,grade,sname,完全依赖,非完全依赖,分解成2,NF,模式集的方法:,设关系模式,R(WXYZ),主码是,WX,R,上还存在,FD XZ,,则存在部分函数依赖(,WX Z),此时应把,R,分解成两个关系模式:,R1(XZ),,主码,X;,R2(WXY),,主码,WX,,外码,X,利用主码和外码可以连接,R1,和,R2,重新得到,R,如果,R1,和,R2,还不是2,NF,,则重复上述过程,一直到数据库模式中每一个关系模式都是2,NF。,例如,:,SC(,Sno,Cno,Grade),SL(,Sno,Sdept,Sloc,),Grade,Sno,Cno,Sdept,Sloc,Sno,插入异常,删除异常,数据冗余太大,修改复杂,例:设关系模式,R(,sno,cno,grade,tname,taddr,),sno,cno,为,候选码,R,上,FD:,(,sno,,,cno,)(,tname,,,taddr,),cno,(,tname,,,taddr,),存在局部函数依赖,非2,NF,分解成2,NF,R1(,cno,,,tname,,,taddr,),R2(,sno,cno,grade),插入异常,删除异常,数据冗余太大,修改复杂,SD(,Sno,Sdept,),DL(,Sdept,Sloc,),Sno,Sdept,Sloc,Sdept,DL,中可以插入无在校生的系信息,某系学生全部毕业,只删除,SD,中相应元组,,DL,中该系信息仍存在,系住处信息只在,DL,中存储一次,调整某系学生住处时,只修改,DL,中相应属性,Sloc,第三范式(,3,NF),对于关系,R,,若,R2NF,,且每个非主属性都不传,递依赖于码,则,R3NF。,主属性可以传递依赖于码,定义4.8:,关系模式,R,中,若不存在这样的码,X,,属性组,Y,及非主属性,Z(Z,Y),使得,X,Y,Y,Z,Y,X,成立,则称,R,3NF,。,STJ(S,T,J),某学生选定某门课,则确定了一个固定的教师,S,T,J,S,T,J,/,学生,课程,教师,TJ,/,每位教师只上一门课,(,S,J),T,(S,T),T,/,每门课有若干位教师,插入异常,删除异常,数据冗余太大,修改复杂,分解成3,NF,模式集的方法:,设关系模式,R(WXY),主码是,W,R,上还存在,FD XY,,则存在传递函数依赖(,W Y),此时应把,R,分解成两个关系模式:,R1(XY),,主码,X;,R2(WX),,主码,W,,外码,X,利用主码和外码可以连接,R1,和,R2,重新得到,R,如果,R1,和,R2,还不是3,NF,,则重复上述过程,一直到数据库模式中每一个关系模式都是3,NF。,部分函数依赖和传递函数依赖是模式产生冗余和异常的两个重要原因。由于3,NF,模式中不存在非主属性对候选键的局部依赖和传递依赖,因此消除了很大一部分存储异常,具有较好的性能。,1,NF、2NF,,由于它们性能上的弱点,一般不宜作为数据库的模式,通常要变换成3,NF,或者更高级的范式,这种变换过程叫“关系的规范化处理”。,ST(S,T),TJ(T,J),S,T,T,J,ST,中可以存储尚未选修课程的学生,,TJ,中可以存储所有开课,但尚未有学生选课的教师,选修某课的学生全部毕业了,只删除,ST,关系中的相应元组,不会影响,TJ,关系中相应教师开设某门课程信息,每个教师开设课程信息只在,TJ,中存储一次,某教师开设的某门课程改名,只修改,TJ,中一个元组即可,例:设关系模式,R1(,cno,tname,taddr,),R,上,FD:,tname,taddr,cno,tname,存在传递函数依赖,非3,NF,分解成3,NF,R11(,cno,,,tname,),R12(,tname,,,taddr,),插入异常,删除异常,数据冗余太大,修改复杂,Boyce/,Codd,范式(,BCNF),对于关系,R,,若,R1NF,,且所有非平凡的函数依赖,,其决定因素是候选码,则,RBCNF。,定义4.9:,关系模式,R,1NF,,若,X,Y,且,Y,X,时,X,必含有码,则,R,BCNF,。,性质:,所有非主属性都完全函数依赖于每个候选码,所有主属性都完全函数依赖于每个不包含它的候选码,没有任何属性完全函数依赖于非码的任何一组属性,Student(,Sno,Sname,Ssex,Sage,Sdept,),Course(,Cno,Cname,Cpno,Ccredit,),SC(,Sno,Cno,Grade),SJP(S,J,P),(S,J)P,每个学生每门课有一定名次,(,J,P)S,每门课,每个名次只有一个学生,分解成,BCNF,模式的方法:,设关系模式,R,的,分解,(,初始,R),,如果,中,有一个关系模式,Ri,相对于,Ri,(F),不是,BCNF,,根据定义1可知,,Ri,中,存在一个非平凡,FD XY,,有,X,不包含超码。此时,把,Ri,分解成,XY,和,Ri,Y,两个模式。重复上述过程,一直到,中,每一个模式都是,BCNF。,上述方法能保正把,R,无损分解成,,,但,不一定能保持,FD。,定义1:,设,F,是关系模式,R,的,FD,集,如果对,F,中每个非平凡的,FD XY,,都有,X,是,R,的超码,则,R,是,BCNF,的模式。,例:设关系模式,R(,Bno,Bname,Author),,,属性表示书号和名、作者;,规定:每个书号只有一个书名,但不同书号可以有相同书名;每本书可以有多个作者合写,但每个作者参与编著的书名应该互不相同。,R,上,FD:,(Author,,Bname,),Bno,Bno,Bname,候选码:,(,Author,,Bname,),或(,Bno,,Author),所有属性都是主属性,,R,为3,NF,由,R,上,FD:,(Author,,Bname,),Bno,Bno,Bname,可知,Bname,传递依赖于候选码,(,Author,,Bname,),R,不是,BCNF。,比如:一本书由多个作者编著,书名与书号信息多次出现,出现冗余。,由,R,分解,:,R1(Author,,Bno,),R2(,Bno,,,Bname,),R1,和,R2,为,BCNF。,但会出现新语义矛盾,如丢失了,(,Author,,Bname,),Bno,最高范式,BCNF,是基于函数依赖的最高范式,但不是数据库模式设计的最高范式,分解成,3,NF,模式集的方法:,(1)对于关系模式,R,和,R,上成立的,FD,集,F,,先求出,F,的最小依赖集,然后再把最小依赖集中那些左部相同的,FD,用合并性合并起来。,(2)对最小依赖集中每个,FD XY,去构成一个模式,XY。,(3),构成的模式集中,如果每个模式都不包含候选码,那么把候选码作为一个模式放入模式集中。,这样得到的模式集是关系,R,的一个分解,并且这个分解既是无损分解由能保持,FD,,且每个模式都是3,NF。,例:,设关系模式,R(ABCDE),R,的,最小依赖集为,AB,CD,R,的候选码:,ACE,根据最小依赖集,可知,AB,CD,,再加入由候选键组成的模式,ACE。,最后得到,AB,CD,ACE,,是3,NF,模式集,且,R,相对于该依赖集是无损分解且保持,FD。,模式设计方法的原则:,关系模式,R,相对于函数依赖集,F,分解成数据库模式,R1,,Rk,,,一般具有3个特性:,(1),是,BCNF,集或3,NF,集;,(2)无损分解,即对于,R,上任何满足,F,的范关系应满足,r=m(r);,(3),保持函数依赖集。,关系模式的规范化,步骤:,1NF,2NF,3NF,BCNF,4NF,5NF,非,规范化关系,非主,属性函数依赖于码,非主,属性完全函数依赖于码,非主,属性既不部分函数依赖于码也不传递依赖于码,所有属性都不部分也不传递依赖于码,所有决定属性集都包含码,所有非平凡的多值依赖都是函数依赖,连接依赖均由候选码所蕴含,关系模式的分解:,SL(,Sno,Sdept,Sloc,),Sno,Sdept,Sdept,Sloc,Sno,Sloc,SN(,Sno,),SD(,Sdept,),SO(,Sloc,),NL(,Sno,Sloc,),DL(,Sdept,Sloc,),NL(,Sno,Sloc,),ND(,Sno,Sdept,),DL(,Sdept,Sloc,),ND(,Sno,Sdept,),范式优化,分解,A,1,A,2,A,n,=B,1,B,2,B,n,C,1,C,2,C,n,分解的要求,无损连接,BCB,或,BCC,保持依赖,范式要求,B,C,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服