《数据库课件第6章关系数据理论.ppt》由会员分享,可在线阅读,更多相关《数据库课件第6章关系数据理论.ppt(95页珍藏版)》请在三一办公上搜索。
1、4.关系模式的规范化,2.范式的定义和分类,3.关系模式所属范式类型的判别,本次课内容,1.关系模式中的函数依赖,例:学校数据库的语义:一个系有若干学生,一个学生只属于一个系,学号唯一,姓名可能重名;一个系只有一名系主任,系名不重复,系主任可能重名;一个学生可以选修多门课程,每门课程有若干学生选修;每个学生所学的每门课程都有一个成绩,课程号唯一,课程名不排除相同情况。,根据语义,有如下函数依赖:,学生(学号,姓名,系名,系主任,课程号,课程名,分数),假设某个人根据上述语义设计了如下关系模式:,学号姓名,学号系名,系名系主任,(学号,课程号)分数,课程号课程名,学生(学号,姓名,系名,系主任,
2、课程号,课程名,分数),关系模式R(U),U 是R的属性集合,X、Y、Z是U的子集,X是X的任意真子集。1.完全函数依赖:X Y,X Y,则 X Y。,关系模式R(U),U 是R的属性集合,X、Y、Z是U的子集,X是X的任意真子集。2.部分函数依赖:X Y,存在一个 X Y,X P Y。,关系模式R(U),U 是R的属性集合,X、Y、Z是U的子集,X是X的任意真子集。3.传递函数依赖:XY,YZ,且Y X,Y X,则XZ,称Z传递函数依赖于X。,1.范式,范式(Normal Form,NF):关系模式的规范形式。是符合某一种级别的关系模式的集合。,规范化目的:逐渐消除异常,减少冗余。,规范化方
3、法:一般采用分解的办法,将低级别范式向高级别范式转化,使关系的语义单纯化。,规范化:将一个给定的关系模式转化为某种级别范式的过程称为关系模式的规范化过程,简称规范化。,2.规范化,定义:如果一个关系模式R的所有属性都是不可分的基本数据项,则称该关系模式为第一范式关系模式,记作R1NF。,(1)第一范式(1NF),以函数依赖为基础的范式种类:第一范式、第二范式、第三范式和BCNF范式。,3.以函数依赖为基础的范式,非第一范式的关系转换为1NF关系:将复合属性变为简单属性即可。,学 生,学生(学号,姓名,系名,系主任,课程号,课程名,分数),a.插入情况:若要插入一个没选课的学生,能插入吗?,X,
4、结论:存在插入异常,b.删除情况:,如某学生只选了一门课,如果要删除学生的该门选课,则会出现什么后果?,结论:存在删除异常,c.冗余情况:,结论:冗余度大,d.更新情况:如果某学生要转系,要修改那些数据?,可见:满足1NF是不够的,它可能出现插入、删除和更新异常,冗余度也大。原因:因为可能存在“部分函数依赖”与“传递函数依赖”。,2NF实质:不存在非主属性“部分函数依赖”于码的情况。,定义 若关系模式R1NF,并且每一个非主属性都完全函数依赖于R的码,则称该关系模式为第二范式关系模式则记作R2NF,(2)第二范式(2NF),示例:,学生(学号,姓名,系,系主任,课程号,课程名,分数),1NF关
5、系向2NF的转换:消除其中的部分函数依赖,一般是将一个关系模式分解成多个2NF的关系模式。即:将部分函数依赖于码的非主属性及其决定属性移出,另成一关系,使其满足2NF。,(1)学生信息(学号,姓名,系名,系主任),(2)修课(学号,课程号,分数),(3)课程(课程号,课程名),上述“学生”关系模式分解成如下三个关系模式:,异常情况分析:,学生,修课,课程,b.删除情况:如某学生只选了一门课,如果要删除学生的该门选课,则会出现什么后果?,a.插入情况:若要插入一个没选课的学生,能插入吗?,c.冗余情况:,d.更新情况:如果某学生要转系,要修改那些数据?,能,学生、系的信息仍可保留,减少了,但仍存
6、在,只需修改一次但如果要更换系主任,则要修改多条记录,2NF判断:语义:一个国家可参加多项比赛,一个比赛项目有多个国家参加,关系模式如下:比赛(国家名称,参赛项目名称,项目得分,总分),2NF关系可能的异常:仍可能存在插入异常、删除异常、更新异常和冗余。因为,还可能存在非主属性对码的“传递函数依赖”。,3NF的得来:3NF是从1NF消除非主属性对码的部分函数依赖和从2NF消除非主属性对码的传递函数依赖而得到的关系模式。,定义:若关系模式R是2NF,而且它的任何一个“非主属性”都不传递函数依赖于R的码,则称该关系模式为第三范式关系模式,记作3NF。,(3)第三范式(3NF),学生(学号,姓名,系
7、名,系主任),示例:,(1)学生信息(学号,姓名,系名,系主任),(2)修课(学号,课程号,分数),(3)课程(课程号,课程名),上述三个关系模式中,存在非主属性对码的传递函数依赖的关系模式是:,2NF关系向3NF的转换:消除传递函数依赖,将2NF关系分解成多个3NF关系模式。,(1)学号(学号,姓名,系名),(2)系(系名,系主任),例题分析:1、工人(工号,姓名,工种,定额,车间,车间主任)若有如下函数依赖:,工号姓名,工号工种,工种定额,工号车间,车间车间主任,2.比赛(球队,比赛场次,得分)函数依赖情况:3.假设一个帐号一天只能取一次款,那么关系模式:取款(日期,帐号,取款金额,取款身
8、份证号),其中的函数依赖有:,3NF异常示例:每一教师只教一门课,每门课有若干教师,某一学生选定了某门课,就对应一个固定的教师。,(学号,课程号)教师号,(学号,教师号)课程号,教师号课程号,STC(学号,教师号,课程号),STC,(学号,课程号)教师号,(学号,教师号)课程号,教师号课程号,STC,(学号,课程号)教师号,(学号,教师号)课程号,教师号课程号,a.插入异常分析:插入尚未选课的学生时,能否插入?或 插入没有学生选课的课程时,能否插入?都不能,STC,(学号,课程号)教师号,(学号,教师号)课程号,教师号课程号,b.删除异常分析:如选修某课程的学生全毕业,删除学生则会删除课程的信
9、息。,STC,(学号,课程号)教师号,(学号,教师号)课程号,教师号课程号,c.冗余:每个选修某课程的学生均带有教师的信息,故冗余。,STC,(学号,课程号)教师号,(学号,教师号)课程号,教师号课程号,d.更新异常:如教师所教的课程变更了,则修改某门课程对应的教师信息,则要修改多行。,可见:3NF关系可能的异常仍可能存在插入异常、删除异常、更新异常和冗余。因为,还可能存在“主属性”“部分函数依赖”于码。,定义:若关系模式R是1NF,如果对于R的每个函数依赖XY,X必为候选码,则R为BCNF范式(Boyce-Codd Normal Form,BCNF)。,每个BCNF范式具有的三个性质:a.所
10、有非主属性都完全函数依赖于每个候选码;b.所有主属性都完全函数依赖于每个不包含它的候选 码;c.没有任何属性完全函数依赖于非码的任何一组属性。,提出:由Boyce和Codd提出,故称BCNF范式。亦被认为是增强的第三范式,有时也归入第三范式。,(4)BCNF范式,说明:,由于BCNF的每一个非平凡函数依赖的决定因素必为候选码,故不会出现3NF中决定因素可能不是候选码的情况。3NF不一定是BCNF,而BCNF一定是3NF。不过,属于3NF而非BCNF的关系模式不多,即使有,对数据库设计者来说,所引起的更新异常也不太重要。,3NF和BCNF常常都是数据库设计者所追求的关系范式。有些文献有时统称它们
11、为第三范式,只要不引起误解。如果一个关系数据库的所有关系模式都属于BCNF,那么,在函数依赖范畴内,它已达到了最高的规范化程度(但不是最完美的范式),在一定程度上已消除了插入和删除的异常。,3NF关系向BCNF的转换:消除那些决定因素不是候选码的函数依赖,即可将3NF关系分解成多个BCNF关系模式。,ST(学号,教师号),示例:,TC(教师号,课程号),关系模式STC(学号,教师号,课程号)可分解为下列两个关系模式:,范式级别与异常问题之关系:一般,级别越低,出现异 地常的程度越高,范式不一定越高就越好,设计中一般达到3NF或BCNF即可。,范式之间存在的关系:,关系模式中的范式:1NF、2N
12、F、3NF、BCNF、4NF和5NF。,6.2.7 多值依赖与第四范式(4NF),例:学校中某一门课程由多个教师讲授,他们使用相同的一套参考书。每个教师可讲授多门课,每种参考书可以供多门课使用。关系模式Teaching(课程,教师,参考书),表6.3,用二维表表示Teaching,TeachingBCNF:Teaching具有唯一候选码(课程,教师,参考书),即全码Teaching模式中存在的问题(1)数据冗余度大:有多少名任课教师,参考书就要存储多少次,Teaching,(2)插入操作复杂:当某一课程增加一名任课教师时,该课程有多少本参照书,就必须插入多少个元组例如物理课增加一名教师刘关,需
13、要插入三个元组:(物理,刘关,普通物理学)(物理,刘关,光学原理)(物理,刘关,物理习题集),Teaching,t,s,v,w,(3)删除操作复杂:某一门课要去掉一本参考书,该课程有多少名教师,就必须删除多少个元组(4)修改操作复杂:某一门课要修改一本参考书,该课程有多少名教师,就必须修改多少个元组 产生原因存在多值依赖,一、多值依赖,定义5.10 设R(U)是一个属性集U上的一个关系模式,X、Y和Z是U的子集,并且ZUXY,多值依赖 XY成立当且仅当对R的任一关系r,r在(X,Z)上的每个值对应一组Y的值,这组值仅仅决定于X值而与Z值无关 例 Teaching(课程,教师,参考书)对于课程(
14、X)和参考书(Z)的每一个值,教师(Y)有一组值与之对应,这组值与参考书(Z)无关,只与课程(X)有关,在R(U)的任一关系r中,如果存在元组t,s 使得tX=sX,那么就必然存在元组 w,v r,(w,v可以与s,t相同),使得wX=vX=tX,而wY=tY,wZ=sZ,vY=sY,vZ=tZ(即交换s,t元组的Y值所得的两个新元组必在r中),则Y多值依赖于X,记为XY。这里,X,Y是U的子集,Z=U-X-Y。t x y1 z2 s x y2 z1 w x y1 z1 v x y2 z2,平凡多值依赖和非平凡的多值依赖若XY,而Z,则称 XY为平凡的多值依赖否则称XY为非平凡的多值依赖,多值
15、依赖的性质,(1)多值依赖具有对称性 若XY,则XZ,其中ZUXY 多值依赖的对称性可以用完全二分图直观地表示出来。(2)多值依赖具有传递性 若XY,YZ,则XZ-Y,多值依赖的对称性,多值依赖的对称性,(3)函数依赖是多值依赖的特殊情况。若XY,则XY。(4)若XY,XZ,则XY Z(或表示为YZ)。(5)若XY,XZ,则XYZ。(6)若XY,XZ,则XY-Z,XZ-Y。,多值依赖与函数依赖的区别,(1)有效性多值依赖的有效性与属性集的范围有关若XY在U上成立,则在W(X Y W U)上一定成立;反之则不然,即XY在W(W U)上成立,在U上并不一定成立多值依赖的定义中不仅涉及属性组 X和
16、Y,而且涉及U中其余属性Z。一般地,在R(U)上若有XY在W(W U)上成立,则称XY为R(U)的嵌入型多值依赖,只要在R(U)的任何一个关系r中,元组在X和Y上的值满足函数依赖定义,则函数依赖XY在任何属性集W(X Y W U)上成立。,(2)若函数依赖XY在R(U)上成立,则对于任何Y Y均有XY 成立多值依赖XY若在R(U)上成立,不能断言对于任何Y Y有XY 成立,二、第四范式(4NF),定义5.10 关系模式R1NF,如果对于R的每个非平凡多值依赖XY(Y X),X都含有候选码,则R4NF。(XY)如果R 4NF,则R BCNF 不允许有非平凡且非函数依赖的多值依赖 允许的是函数依赖
17、(是非平凡多值依赖),例:关系模式:Teaching(课程,教师,参考书)4NF 存在非平凡的多值依赖课程教师,且课程不是候选码用投影分解法把Teaching分解为如下两个关系模式:CT(课程,教师)4NF CB(课程,参考书)4NF 课程教师,课程参考书 是平凡多值依赖,三、关系模式的规范化 1.规范化步骤,规范化的实质:概念的单一化。即:一个关系只描述一个概念、一个实体或实体间的一种联系,若多于一个概念就应将其它概念分离出去。,规范化基本步骤:,问题提出:在关系模式的规范化处理过程中,不仅要知道一个给定的函数依赖集合,还要知道由给定的函数依赖集合所蕴涵(或推导出)的所有函数依赖的集合。为此
18、,需要一个有效而完备的公理系统,Armstrong公理系统即是这样的一个系统。,2.Armstrong公理系统,蕴含定义:设F是R上的函数依赖集合,XY是R的一个函数依赖。如果R的任何一个关系实例r,XY都成立,则称F逻辑蕴含(Imply)XY。,Armstrong公理:为从已知的函数依赖推导出其他的函数依赖,Armstrong提出了一套推理规则,称为Armstrong公理(Armstrongs Axioms)。,(2)增广律(Augmentation):若XY,ZU,则XZYZ。,(1)自反律(Reflexivity):若YXU,则XY。,(3)传递律(Transitivity):若XY和Y
19、Z,则XZ。,定理.6.1:Armstrong公理是正确的,即:如F成立,则由F根据Armstrong公理所推导的函数依赖总是成立的。,公理包含如下三条推理规则:,根据上述三条推理规则可以得到下面有用的三条推理规则:,(2)伪传递规则(Pseudo Transitivity):如果XY,YWZ,则XWZ。,(1)合并规则(Union):如果XY,XZ,则XYZ。,(3)分解规则(Decomposition):如果XY,ZY,则XZ。或:如XYZ,则XY,XZ。,根据合并规则和分解规则,可得如下:引理6.1:XA1 A2Ak成立的充分必要条件是XAi成立(i=l,2,k)。定义6.12:函数依赖
20、集F的闭包:在关系模式R中为F所逻辑蕴含的函数依赖的全体叫作F的闭包,记为F+。定义6.13:属性集X关于函数依赖集F的闭包:设F为属性集U上的一组函数依赖,X U,XF+=A|XA能由F根据Armstrong公理导出,XF+称为属性集X关于函数依赖集F 的闭包。引理6.2:设F为属性集U上的一组函数依赖,X,Y U,XY能由F 根据Armstrong公理导出的充分必要条件是Y XF+。,闭包的用途:将判定XY是否能由F根据Armstrong公理导出的问题,就转化为求出XF+,判定Y是否为XF+的子集的问题。Armstrong公理系统的有效性与完备性有效性(正确性):由F出发根据Armstro
21、ng公理推导出的每个函数依赖一定在F+中。完备性:F+中的每一个函数依赖,必定可以由F出发根据Armstrong公理推导出来。,求属性集X(XU)关于U上函数依赖集F 的闭包XF+的算法:输入:X,F 输出:XF+令X(0)=X,i=0。求B,B=A|(V)(W)(VWFV X(i)AW)。X(i+1)=BX(i)。判断X(i+1)=X(i)吗?若相等或X(i)=U,则X(i)就是XF+,算法终止;否则i=i+1,返回第2步。,例1已知关系模式R,其中U=A,B,C,D,E,F=ABC,BD,CE,ECB,ACB,求(AB)F+。设X(0)=AB;计算X(1):逐一的扫描F集合中各个函数依赖,
22、找左部为A、B或AB的函数依赖,有ABC,BD,于是X(1)=ABCD=ABCD。因为X(0)X(1),所以再找出左部为ABCD子集的那些函数依赖,又得到CE,ACB,于是X(2)=X(1)BE=ABCDE。因为X(2)=U,算法终止。所以(AB)F+=ABCDE。,根据闭包可以求关系模式的候选码:如已知关系模式R(ABCDEG)上FD集F=DG,CA,CDE,AB,S(ABCD)上FD集F=BC,ACB,利用闭包概念可以分别求它们的候选码。(D)F+,(C)F+,(CD)F+,(A)F+(B)F+,(AC)F+,函数依赖集的等价定义:若G+=F+,则函数依赖集F覆盖G(F是G的覆盖或G是F的
23、覆盖),或F与G等价。充要条件:F+=G+的充分必要条件是F G+和G F+。证:必要性显然,只证充分性。若FG+,则XF+XG+。任取XYF+,则有YXF+XG+,所以XY(G+)+=G+。即F+G+。同理可证G+F+,所以F+=G+。判断方法:要判定F G+,只须逐一对F中的函数依赖XY,考察Y是否属于XG+就行了。,最小依赖集:如果函数依赖集F满足下列条件,则称F为一个极小函数依赖集,亦称为最小依赖集或最小覆盖。F中任一函数依赖的右部仅含有一个属性。F中不存在这样的函数依赖XA,使得F与FXA等价。F中不存在这样的函数依赖XA,X有真子集Z使得FXAZA与F等价。,例:设关系模式S中,U
24、=Sno,Sdept,Mname,Cno,Grade,设F=SnoSdept,SdeptMname,(Sno,Cno)Grade,F=SnoSdept,SnoMname,SdeptMname,(Sno,Cno)Grade,(Sno,Sdept)Sdept,则F是最小覆盖,而F 不是。因为:FSnoMname与F等价;F(Sno,Sdept)Sdept也与F等价;F(Sno,Sdept)SdeptSnoSdept也与F等价。,求F最小依赖集Fm的过程使每一函数依赖右边单属性化:逐一检查F中各函数依赖FDi:XY,若Y=A1A2Ak,则以 XAj|j=1,2,k 取代XY。去掉多余的函数依赖:逐一
25、检查F中各函数依赖FDi:XA,令G=FXA,若AXG+,则从F中去掉此函数依赖。因F与G=FXA等价的充要条件是AXG+,故F变换前后等价。去掉每一函数依赖左边多余的属性:逐一取出F中各函数依赖FDi:XA,设X=B1B2Bm,逐一考查Bi(i=l,2,m),若A(X-Bi)F+,则以X-Bi 取代X。由于F与FXAZA等价的充要条件是AZF+,其中Z=X Bi,故F变换前后等价。最后剩下的F就是最小依赖集Fm。,例:F=AB,BA,BC,AC,CA,则Fm1、Fm2都是F的最小依赖集:Fm1=AB,BC,CA Fm2=AB,BA,AC,CA F的最小依赖集Fm不一定是唯一的,它与对各函数依
26、赖FDi及XA中X各属性的处理顺序有关。,例:学生(学号,姓名,系名,系主任,课程号,课程名,分数),F=学号姓名,课程号课程名,系名系主任,学号系主任,学号系名,(学号,课程号)分数,1、使每一函数依赖右边单属性化:逐一检查F中各函数依赖FDi:XY,若Y=A1A2Ak,则以 XAj|j=1,2,k 取代XY。2、去掉多余的函数依赖:去掉:学号姓名G1=课程号课程名,系名系主任,学号系主任 学号系名,(学号,课程号)分数,求(学号)G1+,检查“姓名”是否属于该闭包。如果是则去掉该函数依赖。同理检查其他四个函数依赖。,去掉:课程号课程名 G2=学号姓名,系名系主任,学号系主任 学号系名,(学
27、号,课程号)分数去掉:系名系主任G3=学号姓名,课程号课程名,学号系名,学号系主任,(学号,课程号)分数去掉:学号系主任G4=学号姓名,课程号课程名,学号系名,系名系主任,(学号,课程号)分数 因学号在G4上的闭包包含系主任,所以函数依赖学号系主任可以去掉。去掉:学号系名G5=学号姓名,课程号课程名,系名系主任,(学号,课程号)分数,去掉:(学号,课程号)分数G6=学号姓名,课程号课程名,系名系主任,学号系名。G7=学号姓名,课程号课程名,系名系主任,学号系名,(学号,课程号)分数3、去掉每一函数依赖左边多余的属性(学号,课程号)分数,分别检查“学号”、“课程号”在G7上的闭包是否包含“分数”
28、,由于不包含,所以G7为最小函数依赖集,6.4 模式的分解把低一级的关系模式分解为若干个高一级的关系模式的方法并不是唯一的只有能够保证分解后的关系模式与原关系模式等价,分解方法才有意义1.分解具有无损连接性2.分解要保持函数依赖3.分解既要保持函数依赖,又要具有无损连接性,定义:关系模式R的一个分解:=R1,R2,Rn U=U1U2Un,且不存在 Ui Uj,Fi 为 F在 Ui 上的投影定义:函数依赖集合XY|XY F+XY Ui 的一个覆盖 Fi 叫作 F 在属性 Ui 上的投影,示例:关系模式SDL(Sno,Sdept,Mname)F=Sno Sdept,Sdept Mname对关系模式
29、SDL(Sno,Sdept,Mname)分解第一种分解:R1(Sno),R2(Sdept),R3(Mname)第二种分解:R1(Sno,Sdept),R2(Sno,Mname)第三种分解:R1(Sno,Sdept),R2(Sdept,Mname),关系模式R的一个分解=R1,R2,Rn若R与R1、R2、Rn自然连接的结果相等,则称关系模式R的这个分解具有无损连接性(Lossless join)具有无损连接性的分解保证不丢失信息无损连接性不一定能解决插入异常、删除异常、修改复杂、数据冗余等问题算法 6.2 判别一个分解的无损连接性 P189,例设有关系模式Student(U,F),其中U=Sno
30、,Sdept,Sloc,Cno,Grade,F=SnoSdept,SdeptSloc,(Sno,Cno)Grade,显然Student1NF,它存在冗余度大、插入异常、删除异常、更新异常问题。根据给定的函数依赖集F,求出其最小集为F=F。采用投影方法,将关系模式Student分解为三个关系模式:SCG(U1,F1)、SD(U2,F2)、DL(U3,F3),其中:U1=Sno,Cno,Grade,F1=(Sno,Cno)Grade,U2=Sno,Sdept,F2=SnoSdept,U3=Sdept,Sloc,F3=SdeptSloc考察该分解是否具有无损连接性:具有。,定义6.19 保持函数依赖
31、 P190示例1:对关系模式SDL(Sno,Sdept,Sloc)保持函数依赖的分解示例2:对关系模式R(A,B,C,D),F=ABC,CA,CD,=ACD,BC,判断分解是否保持函数依赖。(否?)示例3:对关系模式R(ABCD),F=ABC,CAD,=ABC,AD,判断分解是否保持函数依赖。(是?),模式分解的算法关于模式分解的几个重要事实若要求分解保持函数依赖,则模式分离总可以达到3NF,但不一定能达到BCNF。若要求分解既保持函数依赖,又具有无损连接性,则模式分离总可以达到3NF,但不一定能达到BCNF。若要求分解具有无损连接性,则模式一定可达到4NF。如果一个分解具有无损连接性,则它能
32、够保证不丢失信息。如果一个分解保持函数依赖,则分解前后两个模式的函数依赖集的闭包是等价的。分解具有无损连接性和分解保持函数依赖是两个互相独立的标准。具有无损连接性的分解不一定能够保持函数依赖。同样,保持函数依赖的分解也不一定具有无损连接性。,算法6.3(合成法):R转换为3NF的保持函数依赖的分解。P191求F的最小集F。若F中有一函数依赖XA,且XA=U,则输出=R。若R中某些属性与F中所有函数依赖的左右部均无关,则将它们构成关系模式,并从R中将它们分离出去。对于F中的每一个XiAi,都构成一个关系模式Ri=XiAi。分解结束,输出。例设有关系模式Student,其中:U=Sno,Sdept
33、,Sloc,Cno,Grade,F=SnoSdept,SdeptSloc,(Sno,Cno)Grade,则Student保持函数依赖的一个分解为:=SCG(Sno,Cno,Grade),SD(Sno,Sdept),DL(Sdept,Sloc),算法6.4:R转换为3NF既有无损连接又保持函数依赖的分解。例设有关系模式Student,其中:U=Sno,Sdept,Sloc,Cno,Grade,F=SnoSdept,SdeptSloc,(Sno,Cno)Grade,则Student保持函数依赖的一个分解为:=SCG(Sno,Cno,Grade),SD(Sno,Sdept),DL(Sdept,Slo
34、c)它具有无损连接性。,算法6.5:R转换为BCNF的无损连接分解。1.令=R。2.若中所有模式都是BCNF,分解结束,输出。3.若中有一关系模式S不是BCNF,则S中必能找到一 个函数依赖XA,X不是S的候选码且A不属于X,设 S1=XA,S2=S-A,用分解S1,S2代替S,转2。4.分解结束,输出。,例设有关系模式Student,其中:U=Sno,Sdept,Sloc,Cno,Grade,F=SnoSdept,SdeptSloc,(Sno,Cno)Grade,考虑SdeptSloc不满足BCNF(因Sdept不包含候选码(Sno,Cno),将Sno,Sdept,Sloc,Cno,Grad
35、e分解为Sdept,Sloc和Sno,Sdept,Cno,Grade,前者的最小覆盖是SdeptSloc,已是BCNF;后者的最小覆盖是SnoSdept,(Sno,Cno)Grade,需进一步分解成Sno,Sdept和Sno,Cno,Grade,均达到BCNF。故分解为=(Sno,Sdept),(Sdept,Sloc),(Sno,Cno,Grade),算法6.6:R转换为达到4NF的无损连接分解。,4.关系模式的分解要求和指标,关系模式分解的一般要求:关系模式经分解后,应与原来的关系等价。等价是指两者对数据的使用者来说是等价的,即:对分解前后的数据,做同样内容的查询,会产生同样的结果。,作业:
36、一、有关系模式R(C,S,T,R,G),其函数依赖集 F=CT,STR,TRC,SCG。(1)给出R的所有候选键。(2)判断R属于第几范式,并解释你的看法。(3)给出R的达到BCNF的无损连接分解。在你给出的分 解中,丢失了哪些函数依赖?,二、有两个关系R和S如下:R(学号,课程号,成绩),S(任课教师号,课程号,课程名)说明:表R中,每个学生只能选修S表中的一门课,一门课可被多个学生选修。S 表中假设一个教师可担任一门课程,任课教师号不重复,而每一门课程至多只有一个教师担任,课程号唯一确定一门课。问:列出R、S表中的函数依赖情况?S表中的候选关键字是什么?R、S所属最高范式等级及理由。,无损连接分解:对关系模式R(U,F)的进行分解=R1(U1,F1),R2(U2,F2),Rk(Uk,Fk),其中U=A1,A2,An,Fi=XiAli,若对于R的任一满足F的关系r,都有 r=U1(R1)U2(R2)Uk(Rk),则该分解为无损连接分解,能保证不丢失信息。设=R1,R2是R的一个分解,F是R上的函数依赖集,具有无损连接性的充要条件是:(R1R2)(R1R2)F+或(R1R2)(R2R1)F+例:设关系模式R(ABC)分解成=AB,BC,若R上的FD集F=BA,则该分解是无损连接分解;若FD集F=AB,则该分解不是无损连接分解。验证是否为无损连接分解的方法:追踪法。,