自考数据库系统原理(第3章.doc

上传人:laozhun 文档编号:4121983 上传时间:2023-04-06 格式:DOC 页数:29 大小:553.50KB
返回 下载 相关 举报
自考数据库系统原理(第3章.doc_第1页
第1页 / 共29页
自考数据库系统原理(第3章.doc_第2页
第2页 / 共29页
自考数据库系统原理(第3章.doc_第3页
第3页 / 共29页
自考数据库系统原理(第3章.doc_第4页
第4页 / 共29页
自考数据库系统原理(第3章.doc_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《自考数据库系统原理(第3章.doc》由会员分享,可在线阅读,更多相关《自考数据库系统原理(第3章.doc(29页珍藏版)》请在三一办公上搜索。

1、1函数依赖:设有关系模式R(U),X和Y是属性集U的子集,函数依赖(functional dependency,简记为FD)是形为XY的一个命题,只要r是R的当前关系,对r中任意两个元组t和s,都有tX=sX蕴涵tY=sY,那么称FD XY在关系模式R(U)中成立。这里tX表示元组t在属性集X上的值,其余类同。XY读作“X函数决定Y”,或“Y函数依赖于X”。FD是对关系模式R的一切可能的关系r定义的。对于当前关系r的任意两个元组,如果X值相同,则要求Y值也相同,即有一个X值就有一个Y值与之对应,或者说Y值由X值决定。因而这种依赖称为函数依赖。2平凡的函数依赖:对于FD XY,如果YX,那么称X

2、Y是一个“平凡的FD”,否则称为“非平凡的FD”。正如名称所示,平凡的FD并没有实际意义,根据规则A1就可推出。人们感兴趣的是非平凡的FD。只有非平凡的FD才和“真正的”完整性约束条件相关。从规则A4和A5,立即可得到下面的定理。定理3.3 如果A1An是关系模式R的属性集,那么XA1An成立的充分必要条件是XAi(i=1,n)成立。3函数依赖集F的闭包F+(Closure):设F是函数依赖集,被F逻辑蕴涵的函数依赖全体构成的集合,称为函数依赖集F的闭包(Closure),记为F+。即F+= XY | F|=XY。4属性集X的闭包X+:设F是属性集U上的FD集,X是U的子集,那么(相对于F)属

3、性集X的闭包用X+表示,它是一个从F集使用FD推理规则推出的所有满足XA的属性A的集合:X+=属性A | F|=XA 5函数依赖的逻辑蕴含:设F是在关系模式R上成立的函数依赖的集合,XY是一个函数依赖。如果对于R的每个满足F的关系r也满足XY,那么称F逻辑蕴涵XY,记为F|=XY。6函数依赖集的等价:如果关系模式R(U)上的两个函数依赖集F和G,有F+=G+,则称F和G是等价的函数依赖集。7最小依赖集:如果函数依赖集G满足下列三个条件,则称为G是最小依赖集。(1)G中每个FD的右边都是单属性。(2)G中没有冗余的F,即G中不存在这样的函数依赖XY,使得GXY与G等价。(3)G中每个FD的左边没

4、有冗余的属性,即G中不存在这样的函数依赖XY,X有真子集W使得GXYWY与G等价。显然,每个函数依赖集至少存在一个等价的最小依赖集,但并不一定惟一。8无损分解:设R是一个关系模式,F是R上的一个FD集。R分解成数据库模式=R1,R2Rk。如果对R中满足F的每一个关系r,都有r=那么称分解相对于F是“无损连接分解”(Lossless Join Decomposition),简称为“无损分解”,否则称为“损失分解”(Lossy Decomposition)。9泛关系假设:无损分解定义有一个先决条件,即r是R的一个关系。也就是先存在r(泛关系)的情况下,再去谈论分解,这就是关系数据库理论中著名的“泛

5、关系假设”(Univarsal Relation Assumption)。有泛关系假设时,r与(r)之间的联系,可用图3.3表示。从图中可看出(r)有两个性质:(1)r(r)(2)设s=(r),则=riRrs=R1,R2Rk r1,r2,rk图3.3 泛关系假设下关系模式分解的示意图10Chase过程: “追踪”(chase)过程,用于测试一个分解是否是无损分解。追踪过程的算法(无损分解的测试)输入:关系模式R=A1An,F是R上成立的函数依赖集,=R1,Rk是R的一个分解。输出:判断相对于F是否具有无损分解特征。方法:构造一张k行n列的表格,每列对于一个属性Aj(1jn),每行对于一个模式R

6、i(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是无损分解,否则称损失分解。11保持函数依赖:分解的另一

7、个特征是在分解的过程中能否函数依赖集,如果不能保持FD,那么数据的语义就会出现混乱。设F是属性集U上的FD集,Z是U的子集,F在Z上的投影用表示,定义为设=R1,Rk是R的一个分解,F是R上的FD集,如果有,那么称分解保持函数依赖集F。121NF如果关系模式R的每个关系r的属性值都是不可分的原子值,那么称R是第一范式(First Normal Form,简记为1NF)的模式。132NF如果关系模式R是1NF,且每个非主属性完全函数依赖于候选键,那么称R是第二范式(2NF)的模式。143NF如果关系模式R是1NF,且每个非主属性都不传递依赖于R的候选键,那么称R是第三范式(3NF)的模式。15B

8、CNF如果关系模式R是1NF,且每个属性都不传递依赖于R的候选键,那么称R是BCNF。16MVD设U是关系模式R的属性集,X,Y是U的子集,Z=U-X-Y,小写的xyz表示属性集XYZ的值。对于R的关系r,在r中存在元组(x,y1,z1)和(x,y2,z2)时,就也存在元组(x,y2,z1)和(x,y1,z2),那么称多值依赖(Multivalued Dependency,简记为MVD)XY在模式R上成立。17平凡的MVD对于属性集U上的MVD XY,如果YX或XY=U,那么称XY是一个平凡的MVD,否则称XY是一个非平凡的MVD。184NF设D是关系模式R上成立的FD和MVD集合。如果D中每

9、个非平凡的MVD XY的左部X都是R的超键,那么称R是4NF的模式。3.2试解释下面两个“数据冗余”概念:一、文件系统中不可避免的“数据冗余”在数据管理中,数据冗余一直是影响系统性能的大问题。数据冗余是指同一个数据在系统中多次重复出现。在文件系统中,由于文件之间没有联系,引起一个数据在多个文件中出现。二、关系数据库设计中应该尽量避免的“数据冗余”数据库系统克服了文件系统的这种缺陷,但对于数据冗余问题仍然应加以关注。如果一个关系模式设计的不好,仍然会出现像文件系统一样的数据冗余、异常、不一致等问题。3.3关系模式的非形式化设计准则有哪几条?这些准则对数据库设计有什么帮助?在讨论关系模式质量时,有

10、四个非形式化的衡量准则。准则3.1 关系模式的设计应尽可能只包含直接联系的属性,不要包含有间接联系的属性。也就是,每个关系模式应只对应于一个实体类型或一个联系类型。准则3.2 关系模式的设计应尽可能使得相应关系中不出现插入、删除和修改等操作异常现象。如果出现任何异常,则要清楚地加以说明,并确保更新数据库的正确操作。设计成表准则3.3 关系模式的设计应尽可能使得相应关系之中避免放置经常为空的属性。准则3.4 关系模式的设计应尽可能使得关系的等值连接在主键和外键的属性上进行,并且保证连接以后不会生成额外的元组。3.4对函数依赖XY的定义加以扩充,X和Y可以为空属性集,用表示,那么X,Y,的含义是什

11、么?解:根据函数依赖的定义,以上三个表达式的含义为:1. 一个关系模式R(U)中,X,Y是U的子集,r是R的任一具体关系,如果对r的任意两个元组t1、t2,由t1X=t2X必有t1=t2。即X表示空属性函数依赖于X。这是任何关系中都存在的。2. Y表示Y函数依赖于空属性。由此可知该关系中所有元组中Y属性的值均相同。3. 表示空属性函数依赖于空属性。这也是任何关系中都存在的。3.5用A1、A2和A3三条推理规则来证明3.2.3节中的定理3.2(推理规则A4A8)试证明A1(自反性):若YXU,则XY在R上成立。证:设t1和t2是关系R中的任意两个元组。如t1【X】=t2【X】,因YX,则有t1【

12、Y】=t2【Y】,故XY在R上成立。试证明A2(增广性):若XY在R上成立,且ZU,则XZYZ在R上成立。证:设t1和t2是关系R中的任意两个元组。如果t1【XZ】=t2【XZ】,则有如t1【X】=t2【X】,t1【Z】=t2【Z】。已知XY,因此可得t1【Y】=t2【Y】,由上可知如t1【YZ】=t2【YZ】,故XZYZ成立。试证明A3(传递性):若XY和若YZ在R上成立,则XZ在R上成立。证:设t1和t2是关系R中的任意两个元组。根据传递函数依赖条件可知:如t1【X】=t2【X】,则t1【Y】=t2【Y】,如t1【Y】=t2【Y】,则t1【Z】=t2【Z】,由上可得:如t1【X】=t2【X

13、】,则t1【Z】=t2【Z】,即XZ在R上成立。试证明A4(合并性):XY,XZ |=XYZ。证:根据A2增广性,在XY的函数依赖表达式左部和右部分别并上X,得 XX Y。在XZ的函数依赖表达式左部和右部分别并上Y,得 XYYZ。根据A3传递性,由XX Y和XYYZ得XYZ。试证明A5(分解性)XY,ZY |=XZ。证:根据A 1自反性,因为ZY所以YZ成立。已知XY又知,YZ,根据A3,得XZ。试证明A6(伪传递性)XY,WYZ |=WXZ。证:根据A2增广性,在XY的函数依赖表达式左部和右部分别并上W,得WXWY。根据A3传递性,由WXWY 和WYZ得WXZ。试证明A7(复合性)XY,WZ

14、 |=WXYZ。证:根据A2增广性,在XY的函数依赖表达式左部和右部分别并上W,的WXWY。在WZ的函数依赖表达式左部和右部分别并上Y,的WYZY。根据A3传递性,由WXWY和WYZY得WXYZ。试证明A8(复合性)XY,WZ|=X(WY)YZ。证:根据A2增广性,在XY两边用(WY)扩充,得到X(WY)Y(WY),而Y(WY)=WY,因此有X(WY)WY。从已知WZ,根据A2两边用Y扩充,得到WYYZ。在根据A3,从X(WY)WY和WYYZ可得到X(WY)YZ3.6设关系模式R有n个属性,在模式R上可能成立的函数依赖有多少个?其中平凡的FD有多少个?非平凡的FD有多少个?(要考虑所有可能的情

15、况,数学排列组合问题。对于数据库本身而言,本题没多大意义)解:这个问题是排列组合问题。FD形为XY,从n个属性值中选择属性组成X共有:种方法;同理,组成Y也有种方法。因此组成XY形成应该有种方法。即可能成立的FD有个。平凡的FD要求YX,组合XY形式的选择有:即平凡的FD有。因而非平凡的FD有个。3.7已知关系模式R(ABC),F是R上成立的FD集,F=AB,BC,试写出F的闭包F+(有43个)。 A AB AC ABC B BC CAA ABA ACA ABCA BB BCB CCAB ABB ACB ABCB BC BCCAC ABC ACC ABCC BBC BCBCAAB ABAB A

16、CAB ABCABAAC ABAC ACAC ABCACABC ABBC ACBC ABCBCAABC ABABC ACABC ABCABC解:1 先求属性集ABC的子集、A、AB、AC、ABC、B、BC、C2 求以上子集的闭包根据F=AB,BC,得:+=A+=ABC A有: + + + =23=8个B+=BC B有: + + =22=4个C+=C C有: + =21=2个(AB)+=ABC AB有:8个(AC)+=ABC AC有:8个(BC)+=BC AB有:4个(ABC)+=ABC ABC有:8个共43个。 3 求函数依赖根据属性集的闭包,得:根据:+=得:根据:A+=ABC得:A、AA、

17、AB、AC、AAB、AAC、ABC、AABC根据:B+=BC得:B、BB、BC、BBC根据:C+=C得:C、CC根据:AB+=ABC得:AB、ABA、ABB、ABC、ABAB、ABAC、ABBC、ABABC根据:AC+=ABC得:AC、ACA、ACB、ACC、ACAB、ACAC、ACBC、ACABC根据:BC+=BC得:BC、BCB、BCC、BCBC根据:ABC+=ABC得:ABC、ABCA、ABCB、ABCC、ABCAB、ABCAC、ABCBC、ABCABC3.8设关系模式R(ABCD),F是R上成立的FD集,F=AB,CB,则相对于F,试写出关系模式R的关键码。并说明理由。解:由于A、C属

18、性是L类属性,则A、C必为 R 的任一候选码的成员。由于D属性是N类属性,则D必为 R 的任一候选码的成员。到此,初步确定的关键码为ACD。下一步根据F求出ACD的闭包,得ACD+=ABCD。因为ACD+包含了R的全部属性,ACD是 R 的唯一关键键码。3.9设关系模式R(ABCDE),F是R上成立的FD集,F=ABC,CDE,DEB,判断AB是R的候选键吗?ABD呢?请做出解释。解:属性AB如果是候选键,那么AB的闭包必须包含R的全部属性。根据F得AB+=ABC。AB+没有包含R的全部属性,故AB不是R的候选键。属性ABC如果是候选键,那么ABC的闭包必须包含R的全部属性。根据F得ABD+=

19、ABCDE。ABD+包含R的全部属性,故ABD是R的候选键。3.10设关系模式R(ABCD)上FD集为F,并且F=ABC,CD,DA 试从F求出所有非平凡的FD。 试求R的所有候选键 试求R的所有不是候选键的超键。解:要想求出、和,就必须先求出属性集的所有子集及其子集的闭包。1、求属性集ABCD的子集。在属性集ABCD中找出由一个属性组成的子集。A、B、C、D共4个。在属性集ABCD中找出由两个属性组成的子集。共6个。ABCDAABACADBBCBDCCDD在属性集ABCD中找出由三个属性组成的子集。共4个ABCDABABCABDACABCACDADABDACDBCABCBCDBDABDBCD

20、CDACDBCD在属性集ABCD中找出由四个属性组成的子集。ABCD 一个。属性集ABCD的子集:共15个。ABC DABBCCDACBDADBCDABCABDACDABCD2、所有子集的闭包(参照F=ABC,CD,DA)。A+ =AB+ =BC+ =ACDD+=DAAB+ =ABCDBC+ =BCDACD+=CDAAC+ =ACDBD+ =BDACAD+ =ADBCD+=BCDAABC+ =ABCDABD+ =ABDCACD+ =ACDABCD+=ABCD求属性的闭包有两种算法(一是根据推理规则,而是根据闭包的算法)3、求出所有的函数依赖 1)根据 A+=A AA 平凡的函数依赖(1),非平

21、凡的函数依赖(0) 2)根据 B+=B BB 平凡的函数依赖(1),非平凡的函数依赖(0) 3)根据 C+=ACD CA CAC CAD CACD CC CCD CD 平凡的函数依赖(1),非平凡的函数依赖(6) 4)根据 D+=AD DA DD DDA 平凡的函数依赖(1),非平凡的函数依赖(2) 5)根据 AB+=ABCD ABA ABAB ABAC ABADABABC ABABD ABACD ABABCD ABB ABBC ABBD ABBCD ABC ABCD ABD 平凡的函数依赖(3),非平凡的函数依赖(12) 6)根据 BC+=ABCD BCA BCAB BCAC BCAD BC

22、ABC BCABD BCACD BCABCD BCB BCBC BCBD BCBCD BCC BCCD BCD 平凡的函数依赖(3),非平凡的函数依赖(12) 7)根据 CD+=ACD CDA CDAC CDAD CDACD CDC CDCD CDD 平凡的函数依赖(3),非平凡的函数依赖(4) 8)根据 AC+=ACD ACA ACAC ACAD ACACD ACC ACCD ACD 平凡的函数依赖(3),非平凡的函数依赖(4) 9)根据 BD+=ABCD BDA BDAB BDAC BDAD BDABC BDABD BDACD BDABCD BDB BDBC BDBD BDBCD BDC

23、BDCD BDD 平凡的函数依赖(3),非平凡的函数依赖(12)10)根据 AD+=AD ADA ADAD ADD 平凡的函数依赖(3),非平凡的函数依赖(0)11)根据 BCD+=ABCD BCDA BCDAB BCDAC BCDAD BCDABC BCDABD BCDACD BCDABCD BCDB BCDBC BCDBD BCDBCD BCDC BCDCD BCDD 平凡的函数依赖(7),非平凡的函数依赖(8)12)根据 ABC+=ABCD ABCA ABCAB ABCAC ABCAD ABCABC ABCABD ABCACD ABCABCD ABCB ABCBC ABCBD ABCBC

24、D ABCC ABCCD ABCD 平凡的函数依赖(7),非平凡的函数依赖(8)13)根据 ABD+=ABCD ABDA ABDAB ABDAC ABDAD ABDABC ABDABD ABDACD ABDABCD ABDB ABDBC ABDBD ABDBCD ABDC ABDCD ABDD 平凡的函数依赖(7),非平凡的函数依赖(8)14)根据 ACD+=ACD ACDA ACDAC ACDAD ACDACD ACDCACDCD ACDD 平凡的函数依赖(7),非平凡的函数依赖(0)15)根据 ABCD+=ABCD ABCDA ABCDAB ABCDAC ABCDAD ABCDABC AB

25、CDABD ABCDACD ABCDABCD ABCDB ABCDBC ABCDBD ABCDBCD ABCDC ABCDCD ABCDD 平凡的函数依赖(15),非平凡的函数依赖(0) 从已知的F可求出非平凡的FD有76个。譬如,左边是C的FD有6个:CA,CD,CAD,CAC,CCD,CACD。 左边是D的FD有2个:DA,DAD。 左边是AB的FD有12个:ABC, ABD, ABCD, ABAC,。感兴趣的读者可以自行把这76个FD写齐。 1)根据 A+=A平凡的函数依赖( 1),非平凡的函数依赖( 0) 2)根据 B+=B平凡的函数依赖( 1),非平凡的函数依赖( 0) 3)根据 C

26、+=ACD平凡的函数依赖( 1),非平凡的函数依赖( 6) 4)根据 D+=AD平凡的函数依赖( 1),非平凡的函数依赖( 2) 5)根据 AB+=ABCD平凡的函数依赖( 3),非平凡的函数依赖(12) 6)根据 BC+=ABCD平凡的函数依赖( 3),非平凡的函数依赖(12) 7)根据 CD+=ACD平凡的函数依赖( 3),非平凡的函数依赖( 4) 8)根据 AC+=ACD平凡的函数依赖( 3),非平凡的函数依赖( 4) 9)根据 BD+=ABCD平凡的函数依赖( 3),非平凡的函数依赖(12)10)根据 AD+=AD平凡的函数依赖( 3),非平凡的函数依赖( 0)11)根据 BCD+=A

27、BCD平凡的函数依赖( 7),非平凡的函数依赖( 8)12)根据 ABC+=ABCD平凡的函数依赖( 7),非平凡的函数依赖( 8)13)根据 ABD+=ABCD平凡的函数依赖( 7),非平凡的函数依赖( 8)14)根据 ACD+=ACD平凡的函数依赖( 7),非平凡的函数依赖( 0)15)根据 ABCD+=ABCD平凡的函数依赖(15),非平凡的函数依赖( 0) -共计 (65) 共计(76) 候选键是能函数决定所有属性的不含多余属性的属性集。根据这个概念可求出R 的候选键有三个:AB、BC和BD。 R的所有不是候选键的超键有四个:ABC、ABD、BCD和ABCD。3.11如果下列推理规则成

28、立,则用推理规则A1A8证明之;否则举出一个关系实例说明规则不成立。WY,XZ|=WXYXY,XW,WYZ|=XZXYZ,YW|=XWZXZ,YZ|=XYXY,XYZ|=XZXY,ZW|=XZYWXYZ,ZX|=ZYXY,YZ|=XYZXYZ,ZW|=XW解:WY,XZ|=WXY根据推理规则A2(增广性)在FD WY两边同时并上X,得 WXXY。已知WY,又因WWX,故WXY成立。XY,XW,WYZ|=XZ根据FD的分解/合并规则,XY,XW可合并成XYW,再根据推理规则A3(传递性),XYW,WYZ可得XZXYZ,YW|=XWZ根据推理规则A2(增广性)在FD YW两边同时并上X,得YXXW

29、。因为XYZ,YXXW,Z和XW没有包含或被包含的关系。故XYZ,YW|=XWZ不成立。例R(WXYZ),F=XYZ,YW,从以下函数依赖的图形化表示可以看出,不成立。R(W X Y Z)XZ,YZ|=XY因为FD XZ,YZ,X和Y没有包含或被包含的关系。故上式不成立。XY,XYZ|=XZ根据推理规则A2(增广性)在FD XY两边同时并上X,得XXXY。再根据推理规则A3(传递性),XXXY,XYZ,得XZXY,ZW|=XZYW根据推理规则A2(增广性)在FD XY两边同时并上Z,得XZYZ。根据推理规则A2(增广性)在FD ZW两边同时并上Y,得YZYW。再根据推理规则A3(传递性),XZ

30、YZ,YZYW,得XZYWXYZ,ZX|=ZY因为FD XZ,YZ,X和Y没有包含或被包含的关系。故上式不成立。XY,YZ|=XYZ根据推理规则A3(传递性)XY,YZ,得XZ。根据FD的分解/合并规则,XY,XZ可合并成XYZ。XYZ,ZW|=XW根据推理规则A3(传递性)XYZ,ZW,得XYW。故上式不成立。3.12 考虑以下两个FD集:F=AC,ACD,EAD,EH和G=ACD,EAH。试检查它们是否等价(应说出理由)。对F:A+=ACD,C+=C,D+=D,E+=EADCH=ACDEH,H+=H,AC+=ACD(AC+=A+C+ABC)。对G:A+=ACD,C+=C,D+=D,E+=E

31、AHCD=ACDEH,H+=H,AC+=ACD(AC+=A+C+ABC)。故F与G等价。理由:F和G相等,意味着F中每一个FD都可以从G推导出来,并且G中每一个FD也都可以从F推导出来。同例:R(ABCDE),F1=AB,ABC,DAC,DE与F2=ABC,DAE等价?对F1:A+ABC,B+B,C+C,D+ABCDE,E+E,(AB)+ABC(AB+=A+B+=ABC)。对F2:A+ABC,B+B,C+C,D+ABCDE,E+E,(AB)+ABC(AB+=A+B+=ABC)。故F1与F2等价。3.13设关系模式R(ABCD)上FD集为F,并且F=AB,BC 试写出属性集BD的闭包(BD)+。

32、 试写出所有左部是B的函数依赖(即形为“B?”)解: 有两种解法1)用推理规则 从已知的F,FD BC,根据A2(增广性),在两边同并上BD得BBDCBD 优化后,可推出BDBCD,所以(BD)+=BCD。2)用属性集的算法 1初始化,设X为所求属性集的闭包,X(0)=BD。 2计算X(1),在F中扫描各个FD,找左部为BD或BD子集的FD,找到一个FD BC左边属性在X(0)中,而右边属性不在X(0)中,就把C和X(0)加到X(1) 中。然后再F中做上标记。因X(1)U,算法继续。 X(1)= X(0)C=BDC=BCD F=AB,BC 3计算X(2),在F中扫描没做处理标记的FD,找左部为

33、BCD或BCD子集的FD, 没找到,X(1)= X(0)。算法终止。 由算法得:(BD)+= X(1)=BCD 首先计算B的闭包1 初始化,设X为所求属性B的闭包,X(0)=B。2 计算X(1),在F中扫描各个FD,找左边为B的FD,找到一个FD BC左边属性在X(0)中,右边属性不在X(0)中,就把C和X(0)加到X(1) 中。然后再F中做上标记。因X(1)U,算法继续。 X(1)= X(0)C=BC=BC F=AB,BC3 计算X(2),在F中扫描没做处理标记的FD,找左部为BC或BC子集的FD,没找到,X(1)= X(0)。算法终止。有算法得:(B)+= X(1)=BC由于B+BC=BC

34、,因此左部是B的FD有四个:B,BB,BC,BBC。3.14设关系模式R(ABCDE)上FD集为F,并且F=ABC,CDE,BD,EA。 试求R的候选键。 试求B+的值。解: R的候选键有A、E、CD和BC最有把握的求法是:1) 求出关系属性集的所有子集。2) 求所有子集的闭包。3) 在所有子集的闭包中查找那些包含所有属性集的闭包,那些不含多余属性的属性集闭包就是我们要找的候选键。1)求属性集ABCDE的子集。 在属性集ABCDE中找出由一个属性组成的子集。A、B、C、D、E,共5个。 在属性集ABCDE中找出由两个属性组成的子集。共10个。ABCDEAABACADAEBBCBDBECCDCE

35、DDEE在属性集ABCDE中找出由三个属性组成的子集。共10个。ABCDEABABCABDABEACABCACDACEADABDACDADEAEABEACEADEBCABCBCDBCEBDABDBCDBDEBEABEBCEBDECDACDBCDCDECEACEBCECDEDEADEBDECDE在属性集ABCDE中找出由四个属性组成的子集。共5个。ABCDEABCABCDABCEABDABCDABDEABEABCEABDEACDABCDACDEACEABCEACDEADEABDEACDEBCDABCDBCDEBCEABCEBCDEBDEABDEBCDECDEACDEBCDE在属性集ABCDE中找

36、出由五个属性组成的子集。ABCDE,共1个。至此,共找出 5+10+10+5+1=31个子集。它们是:A、B、C、D、EAB、AC、AD、AE、BC、BD、BE、CD、CE、DEABC、ABD、ABE、ACD、ACE、ADE、BCD、BCE、BDE、CDEABCD、ABCE、ABDE、ACDE、BCDEABCDE2)求U=ABCDE所有子集的闭包(参照F=ABC,CDE,BD,EA)。ABC+=ABCDEABD+=ABDCE=ABCDEABE+=ABECD=ABCDEACD+=ACDBE=ABCDEACE+=ACEBD=ABCDEADE+=ADEBC=ABCDEBCD+=BCDEA=ABCDE

37、BCE+=BCEDA=ABCDEBDE+=BDEAC=ABCDECDE+=CDEAB=ABCDEABCD+=ABCDEABCE+=ABCED=ABCDEABDE+=ABDEC=ABCDEACDE+=ACDEB=ABCDEBCDE+=BCDEA=ABCDEABCDE+=ABCDEA+=ABCDEB+=BDC+=CD+=DE+=EABCD=ABCDEAB+=ABDAC+=ACBDE=ABCDEAD+=ADBCE=ABCDEAE+=AEBCD=ABCDEBC+=BCDEA=ABCDEBD+=BDBE+=BEDAC=ABCDECD+=CDEAB=ABCDECE+=CEABD=ABCDEDE+=DEAB

38、C=ABCDE根据候选键的定义A+=ABCDE是候选键所有包含A的属性子集,闭包内容为ABCDE的都是超键。E+=ABCDE是候选键所有包含E的属性子集,闭包内容为ABCDE的都是超键。BC+=ABCDE是候选键所有包含BC的属性子集,闭包内容为ABCDE的都是超键。CD+=ABCDE是候选键所有包含CD的属性子集,闭包内容为ABCDE的都是超键。 B+=BD。1) 初始化,设X为所求属性B的闭包,X(0)=B2) 计算X(1),在F中扫描各个FD,找左边为B的FD。找到一个FD BD左边属性在X(0)中,而右边属性不在X(0)中,就把D和X(0)加的X(1)中,然后在F中做上标记。因X(1)U,算法继续。 X(1)= X(0)D=BD=BD3) 计算X(1),在F中扫描没有做过处理标记的FD,找左边为BD或BD子集的FD,没有找到,X(1)= X(0)。算法终止。有算法得:(B)+= X(1)=BD3.15 设有关系模式R(ABC),其关系r如图3.1所示。 试判断下列三个FD在关系r中是否成立?ABBCABA 根据关系r,你能断定哪些FD在关系模式R上不成立?ABC123423

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号