模式分解练习题_第1页
模式分解练习题_第2页
模式分解练习题_第3页
模式分解练习题_第4页
模式分解练习题_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、有关模式分解题目重点放在三范式的分解上,包括分解算法及无损连接性的判断,这类题目的解题步骤一般分为三步:第一步、将已有的函数依赖集转化为最小的函数依赖集(我们已经练习很多,不再多讲)第二步、进行三范式分解(分解算法见书P192算法5.3)第三步、判断分解是否具有无损连接性(分解算法见书P190算法5.2)一、已知关系模式R(U,F),U=(A,B,C,D,E,G);F=ABC,DEG,CA,BEC,BCD,CGBD,ACDB,CEAG;试求最小依赖集,然后采用模式分解算法将其进行规范化处理,规范为三范式,并用算法说明该分解是否具有无损连接性。1、求最小函数依赖集(1)利用分解规则,将F中所有函

2、数依赖变成右边是单个属性的函数依赖,得:F1=ABC,DE,DG,CA,BEC,BCD,CGB,CGD,ACDB,CEA,CEG (2)去掉F1中多余的函数依赖:对ABC,在F1- ABC 中计算(AB)G +=AB CAB,ABC不是多余的函数依赖,不能去掉对DE,在F1- DE 中计算(D)G +=DG EDG,DE不是多余的函数依赖,不能去掉对DG,在F1- DG 中计算(D)G +=DE GDE,DG不是多余的函数依赖,不能去掉对CA,在F1- CA 中计算(C)G +=C AC,CA不是多余的函数依赖,不能去掉对BEC,在F1- BEC 中计算(BE)G +=BE CBE,BEC不是

3、多余的函数依赖,不能去掉对BCD,在F1- BCD 中计算(BC)G +=ABC DABC,BCD不是多余的函数依赖,不能去掉对CGB,在F1- CGB 中计算(CG)G +=ABCDEG BABCDEG,CGB是多余的函数依赖,可以去掉对CGD,在F1- CGD ,CGB 中计算(CG)G +=ACG DACG,CGD不是多余的函数依赖,不能去掉对ACDB,在F1- ACDB,CGB 中计算(ACD)G +=ACDEG BACDEG,ACDB不是多余的函数依赖,不能去掉对CEA,在F1- CEA,CGB 中计算(CE)G +=ABCDEG AABCDEG,CEA是多余的函数依赖,可以去掉对C

4、EG,在F1- CEG ,CGB ,CEA 中计算(CE)G +=ACE GACE,CEG不是多余的函数依赖,不能去掉经上述计算得:F2=ABC,DE,DG,CA,BEC,BCD,CGD,ACDB,CEG (3)去掉F2中函数依赖左部多余的属性:对ABC,在F2中分别计算 对于A,求(B)F +=B,CB,A不是多余的属性,不可以去掉 对于B,求(A)F +=A,CA,B不是多余的属性,不可以去掉对BEC,在F2中分别计算 对于B,求(E)F +=E, CE,B不是多余的属性,不可以去掉 对于E,求(B)F +=B, CB,E不是多余的属性,不可以去掉对BCD,在F2中分别计算 对于B,求(C

5、)F +=AC, DAC,B不是多余的属性,不可以去掉 对于C,求(B)F +=B, CB, C不是多余的属性,不可以去掉对CGD,在F2中分别计算 对于C,求(G)F +=G, DG=(G)+, C不是多余的属性,不可以去掉 对于G,求(C)F +=AC, DAC=(C)+, C不是多余的属性,不可以去掉对ACDB,在F2中分别计算 对于A,求(CD)F +=ABCDEG, BABCDEG =(CD)+, A是多余的属性,可以去掉F2=ABC,DE,DG,CA,BEC,BCD,CGD,CDB,CEG 对CDB,在F2中分别计算 对于C,求(D)+=DEG, BDEG,C不是多余的属性,不可以

6、去掉 对于D,求(C)+=AC, BAC, D不是多余的属性,不可以去掉对CEG,在F2中分别计算 对于C,求(E)+=E, GE=(E)+,C不是多余的属性,不可以去掉 对于E,求(C)+=AC, GAC=(C)+,E不是多余的属性,不可以去掉最终得最小的函数依赖集:Fm=ABC,DE,DG,CA,BEC,BCD,CGD,CDB,CEG 2、规范化处理分解为三范式(1)找在Fm中不出现的属性,没有;(2)在Fm中找XA,XA=U,没有; (3)对Fm按具有相同左部的原则分解为:=ABC, DEG, BCE, BCD, CDG,,CEG 分解为三范式后的结果为:R1(A,B,C)R2(D,E,

7、G)R3(B,C,E)R4(B,C,D)R5(C,D,G)R6(C,E,G)3、判断该分解是否具有无损连接性首先构造初始表,如下图: 属性模式ABCDEGR1(A,B,C)A1A2A3B14B15B16R2(D,E,G)B21B22B23A4A5A6R3(B,C,E)B31A2A3B34A5B36R4(B,C,D)B41A2A3A4B45B46R5(C,D,G)B51B62A3A4B55A6R6(C,E,G)B61B62A3A4B55A6由BCD可以把B14、B34改为A4,由BCE可以把B15、B45改为A5,由DG可以把B16、B36、B46改为A6,此时表中第一行为A1、A2、A3、A4

8、、A5、A6,所以此分解具有无损连接性。 属性模式ABCDEGR1(A,B,C)A1A2A3A4A5A6R2(D,E,G)B21B22B23A4A5A6R3(B,C,E)B31A2A3A4A5A6R4(B,C,D)B41A2A3A4A5A6R5(C,D,G)B51B62A3A4B55A6R6(C,E,G)B61B62A3A4B55A6二已知R, 其中U=(A,B,C,D,E,F,G,H,I,J)满足下列函数依赖:F=ABE,ABEFG,BFI,CJ,CJI,GH,试求最小依赖集,然后采用模式分解算法将其进行规范化处理,规范为三范式,并用算法说明该分解是否具有无损连接性。1、求最小函数依赖集(1

9、)利用分解规则,将F中所有函数依赖变成右边是单个属性的函数依赖,得:F1=ABE,ABEG,ABEF,BF,BI,CJ,CJI,GH (2)去掉F1中多余的函数依赖:对ABE,在F1- ABE 中计算(AB)+=ABFI EABFI,ABE不是多余的函数依赖,不能去掉对ABEG,在F1- ABEG 中计算(ABE)+= ABEFI GABEFI,ABEG不是多余的函数依赖,不能去掉对ABEF,在F1- ABEF 中计算(ABE)+= ABEFGIH FABEFGIH,ABEF是多余的函数依赖,可以去掉对BF,在F1- BF 中计算(B)+=BI FBI,BF不是多余的函数依赖,不能去掉对BI,

10、在F1- BI 中计算(B)+=BF IBF,BI不是多余的函数依赖,不能去掉对CJ,在F1- CJ 中计算(C)+=C FC,CJ不是多余的函数依赖,不能去掉对CJI,在F1- CJI 中计算(CJ)+=CJ ICJ,CJI不是多余的函数依赖,不能去掉对GH,在F1- GH 中计算(G)+=G HG,GH不是多余的函数依赖,不能去掉经上述计算得:F1=ABE,ABEG,BF,BI,CJ,CJI,GH (3)去掉F2中函数依赖左部多余的属性:对ABE,在F2中分别计算 对于A,求(B)+=BFI,EBFI=(B)+,A不是多余的属性,不可以去掉 对于B,求(A)+=A, CA=(A)+,B不是

11、多余的属性,不可以去掉对ABEG,在F2中分别计算 对于A,求(BE)+=BEFI, GBEFI =(BE)+,A不是多余的属性,不可以去掉 对于B,求(AE)+=AE, GAE=(AE)+,B不是多余的属性,不可以去掉 对于E,求(AB)+=ABEFGIH,GABEFGIH,E是多余的属性,可以去掉用ABG取代ABEG对CJI,在F2中分别计算 对于C,求(J)+=J, IJ=(J)+,C不是多余的属性,不可以去掉 对于J,求(C)+=CIJ, ICIJ=(C)+,C是多余属性,可以去掉用CI取代CJI最终得最小的函数依赖集:Fm=ABE,ABG,BF,BI,CJ,CI,GH 2、规范化处理

12、分解为三范式(1)找在Fm中不出现的属性,D没有出现过,将其从U中去掉得:U=(A,B,C,E,F,G,H,I,J);(2)在Fm中找XA,XA=U,没有; (3)对Fm按具有相同左部的原则分解为:=ABEG, BFI, CIJ, GH分解为三范式后的结果为:R1(A,B,E,G)R2(B,F,I)R3(C,I,J)R4(G,H)3、判断该分解是否具有无损连接性首先构造初始表,如下图 属性模式ABCEFGHIJR1(A,B,E,G)A1A2B13A4B15A6B17B18B19R2(B,F,I)B21A2B23B24A5B26B27A8B29R3(C,I,J)B31B32A3B34B35B36

13、B37A8A9R4(G,H)B41B42B43B44B45A6A7B48B49由BF可以把B15改为A5,由BI可以把B18改为A8,由GH可以把B17改为A7,而对于CJ、CI、ABE、ABG,表不改变,所以此分解不具有无损连接性。 属性模式ABCEFGHIJR1(A,B,E,G)A1A2B13A4A5A6A7A8B19R2(B,F,I)B21A2B23B24A5B26B27A8B29R3(C,I,J)B31B32A3B34B35B36B37A8A9R4(G,H)B41B42B43B44B45A6A7B48B49三设一关系模式R, 其中U=c,t,h,r,s,g,q,F=ctq,csg,ht

14、r, hrc,hsr,试求最小依赖集,然后采用模式分解算法将其进行规范化处理,规范为三范式,并用算法说明该分解是否具有无损连接性。1、求最小函数依赖集(1)利用分解规则,将F中所有函数依赖变成右边是单个属性的函数依赖,得:F1=ct, cq, csg,htr, hrc,hsr(2)去掉F1中多余的函数依赖:对ct,在F1- ct 中计算(c)+=cq tcq,ct不是多余的函数依赖,不能去掉对cq,在F1- cq 中计算(c)+=ct qct,cq不是多余的函数依赖,不能去掉对csg,在F1- csg 中计算(cs)+= cstq gcstq,csg不是多余的函数依赖,不能去掉对htr,在F1

15、- htr 中计算(ht)+= ht rht,htr不是多余的函数依赖,不能去掉对hrc,在F1- hrc 中计算(hr)+=hr chr,hrc不是多余的函数依赖,不能去掉对hsr,在F1- hsr 中计算(hs)+=hs rC,hsr不是多余的函数依赖,不能去掉经上述计算得:F2= ct, cq,csg,htr, hrc,hsr (3)去掉F2中函数依赖左部多余的属性:对csg,在F2中分别计算 对于c,求(s)+=s,gs=(s)+,c不是多余的属性,不可以去掉 对于s,求(c)+=ctq, gctq=(c)+,s不是多余的属性,不可以去掉对htr,在F2中分别计算 对于h,求(t)+=

16、t, rt =(t)+,h不是多余的属性,不可以去掉 对于t,求(h)+=h, rh=(h)+,t不是多余的属性,不可以去掉对hrc,在F2中分别计算 对于h,求(r)+=r, cr=(r)+,h不是多余的属性,不可以去掉 对于r,求(h)+=h, ch=(h)+,r不是多余的属性,不可以去掉对hsr,在F2中分别计算 对于h,求(s)+=s, rs=(s)+,h不是多余的属性,不可以去掉 对于s,求(h)+=h, rh=(h)+,s不是多余的属性,不可以去掉最终得最小的函数依赖集:Fm= ct, cq, csg,htr, hrc,hsr 2、规范化处理分解为三范式 (1)找在Fm中不出现的属

17、性,没有(2)在Fm中找XA,XA=U,没有 (3)对Fm按具有相同左部的原则分解为:=ctq, csg, htr, hrc, hsr分解为三范式后的结果为:R1(c,t,q),R2(c,s,g),R3(h,t,r),R4(h,r,c),R5(h,s,r)3、判断该分解是否具有无损连接性首先构造初始表,如下图 属性模式cthrsgqR1(c,t,q)a1a2b13b14b15b16a7R2(c,s,g)a1b22b23b24a5a6b27R3(h,t,r)b31a2a3a4b35b36b37R4(h,r,c)a1b42a3a4b45b46b47R5(h,s,r)b51b52a3a4a5b56b

18、57由hrc可以把b31、b51改为a1,由ct可以把b22、b42、b52改为a2,由cq可以把b27、b27、b47、b57改为a7,由csg可以把b56改为a6,从而表中最后一行为a1、a2、a3、a4、a5、a6 a7,所以此分解具有无损连接性。 属性模式cthrsgqR1(c,t,q)a1a2b13b14b15b16a7R2(c,s,g)a1a2b23b24a5a6a7R3(h,t,r)a1a2a3a4b35b36a7R4(h,r,c)a1a2a3a4b45b46a7R5(h,s,r)a1a2a3a4a5a6a7关于无损分解和保持依赖的判断,是系分和数工考试中每年基本上都会 考的题,

19、而且绝大部分是对一个关系模式分解成两个模式的考察,分解为三个以上模式时无损分解和保持依赖的判断比较复杂,考的可能性不大,因此我们只对“一 个关系模式分解成两个模式”这种类型的题的相关判断做一个总结。以下的论述都基于这样一个前提:R是具有函数依赖集F的关系模式,(R1 ,R2)是R的一个分解。首先我们给出一个看似无关却非常重要的概念:属性集的闭包。令为一属性集。我们称在函数依赖集F下由函数确定的所有属性的集合为F下的闭包,记为+ 。下面给出一个计算+的算法,该算法的输入是函数依赖集F和属性集,输出存储在变量result中。算法一:result:=;while(result发生变化)do for

20、each 函数依赖 in F do begin if result then result:=result; end属性集闭包的计算有以下两个常用用途:判断是否为超码,通过计算+(在F下的闭包),看+ 是否包含了R中的所有属性。若是,则为R的超码。通过检验是否+,来验证函数依赖是否成立。也就是说,用属性闭包计算+,看它是否包含。(请原谅我用符号来表示两个集合之间的包含关系,那个表示包含的符号我找不到,大家知道是什么意思就行了。) 给定关系R(A1,A2,A3,A4)上的函数依赖集F=A1A2,A3A2,A2A3,A2A4,R的候选关键字为_。(37)A. A1 B. A1A3 C. A1A3A

21、4 D. A1A2A3首先我们按照上面的算法计算A1+ 。result=A1,由于A1A2,A1result,所以result=resultA2=A1A2由于A2A3,A2result,所以result=resultA3=A1A2A3由于A2A4,A2result,所以result=resultA3=A1A2A3A4由于A3A2,A3result,所以result=resultA2=A1A2A3A4通过计算我们看到,A1+ =result=A1A2A3A4,所以A1是R的超码,理所当然是R的候选关键字。此题选A 。无损分解的判断。如果R1R2是R1或R2的超码,则R上的分解(R1,R2)是无损

22、分解。这是一个充分条件,当所有的约束都是函数依赖时它才是必要条件(例如多值依赖就是一种非函数依赖的约束),不过这已经足够了。保持依赖的判断。如果F上的每一个函数依赖都在其分解后的某一个关系上成立,则这个分解是保持依赖的(这是一个充分条件)。如果上述判断失败,并不能断言分解不是保持依赖的,还要使用下面的通用方法来做进一步判断。该方法的表述如下:算法二:对F上的每一个使用下面的过程:result:=;while(result发生变化)do for each 分解后的Ri t=(resultRi)+ Ri /(resultRi)+表示resultRi的闭包 result=resultt这里的属性闭包

23、是在函数依赖集F下计算出来的。如果result中包含了的所有属性,则函数依赖。分解是保持依赖的当且仅当上述过程中F的所有依赖都被保持。设关系模式R,其中U=A, B, C, D, E,FABC,CD,BCE,EA,则分解=R1(ABCE),R2(CD)满足 (43) 。(43) A具有无损连接性、保持函数依赖 B不具有无损连接性、保持函数依赖 C具有无损连接性、不保持函数依赖 D不具有无损连接性、不保持函数依赖先做无损链接的判断。R1R2=C,计算C+。Result=C由于CD,Cresult,所以result=resultD=CD可见C是R2的超码,该分解是一个无损分解。再做保持依赖的判断。

24、ABC,BCE, EA都在R1上成立(也就是说每一个函数依赖左右两边的属性都在R1中),CD在R2上成立,因此给分解是保持依赖的。选A。给定关系模式R,U=A, B, C, D, E,FBA,DA,AE,ACB,其候选关键字为 (40),则分解=R1(ABCE),R2(CD)满足 (41) 。(40) AABD BABE CACD DCD(41) A具有无损连接性、保持函数依赖 B不具有无损连接性、保持函数依赖 C具有无损连接性、不保持函数依赖 D不具有无损连接性、不保持函数依赖看见了吧,和前面一题多么的相像!对于第一问,分别计算ABCD四个选项的闭包,(ABD)+ = ABDE (ABE)+

25、 = ABE (ACD)+ = ABCDE (CD)+ = ABCDE 选D。再看第二问。先做无损链接的判断。R1R2=C,计算C+。result=C因此C既不是R1也不是R2的超码,该分解不具有无损分解性。再做保持依赖的判断。BA,AE,ACB在R1上成立,DA在R1和R2上都不成立,因此需做进一步判断。由于BA,AE,ACB都是被保持的(因为它们的元素都在R1中),因此我们要判断的是DA是不是也被保持。对于DA应用算法二:result=D对R1,resultR1=(空集,找不到空集的符号,就用这个表示吧),t=,result=D再对R2,resultR2=D,D+ =ADE ,t=D+ R

26、2=D一个循环后result未发生变化,因此最后result=D,并未包含A,所以DA未被保持,该分解不是保持依赖的。选D。名词解释 (1) 函数依赖:FD(function dependency),设有关系模式R(U),X,Y是U的子集, r是R的任一具体关系,如果对r的任意两个元组t1,t2,由t1X=t2X导致t1Y=t2Y, 则称X函数决定Y,或Y函数依赖于X,记为XY。XY为模式R的一个函数依赖。 (2) 平凡的函数依赖:对于FD XY,如果YX 那么称XY 是一个“平凡的函数依赖”,否则称为“非平凡的FD”。(3) 函数依赖集F的闭包F+: 被逻辑蕴涵的函数依赖的全体构成的集合,称

27、为F的闭包(closure),记为F+。 (5) 函数依赖的逻辑蕴涵:设F是关系模式R的一个函数依赖集,X,Y是R的属性子集, 如果从F中的函数依赖能够推出XY,则称F逻辑蕴涵XY,记为F|=XY。 (6) 依赖集的覆盖和等价:关系模式R(U)上的两个函数依赖集F和G,如果满足F+=G+,则称F和G是等价的。 如果F和G等价,则可称F覆盖G或G覆盖F。 (7) 最小依赖集:如果函数集合F满足以下三个条件:(1)F中每个函数依赖的右部都是单属性; (2)F中的任一函数依赖XA,其F-XA与F是不等价的;(3)F中的任一函数依赖XA,Z为X的子集,(F-XA)ZA与F不等价。则称F为最小函数依赖集

28、合,记为Fmin。 (8) 无损联接:设R是一关系模式,分解成关系模式=R1,R2.,Rk,F是R上的一个函数依赖集。 如果对R中满足F的每一个关系r都有r=R1(r)R2(r).Rk(r)则称这个分解相对于F是无损联接分解。 (10) 保持依赖集:所谓保持依赖就是指关系模式的函数依赖集在分解后仍在数据库中保持不变, 即关系模式R到=R1,R2,.,Rk的分解,使函数依赖集F被F这些Ri上的投影蕴涵。 (11) 1NF:第一范式。如果关系模式R的所有属性的值域中每一个值都是不可再分解的值, 则称R是属于第一范式模式。如果某个数据库模式都是第一范式的,则称该数据库存模式属于第一范式的数据库模式。

29、 第一范式的模式要求属性值不可再分裂成更小部分,即属性项不能是属性组合和组属性组成。 (12) 2NF:第二范式。如果关系模式R为第一范式,并且R中每一个非主属性完全函数依赖于R的某个候选键, 则称是第二范式模式;如果某个数据库模式中每个关系模式都是第二范式的,则称该数据库模式属于第二范式的数据库模式。 (注:如果A是关系模式R的候选键的一个属性,则称A是R的主属性,否则称A是R的非主属性。) (13) 3NF:第三范式。如果关系模式R是第二范式,且每个非主属性都不传递依赖于R的候选键, 则称R是第三范式的模式。如果某个数据库模式中的每个关系模式都是第三范式,则称为3NF的数据库模式。 (14

30、) BCNF:BC范式。如果关系模式R是第一范式,且每个属性都不传递依赖于R的候选键,那么称R是BCNF的模式。 (17) 4NF:第四范式。设R是一个关系模式,D是R上的多值依赖集合。如果D中成立非平凡多值依赖XY时, X必是R的超键,那么称R是第四范式的模式。3.4 对函数依赖XY的定义加以扩充,X和Y可以为空属性集,用表示, 那么X,Y,的含义是什么? 根据函数依赖的定义,以上三个表达式的含义为: (1)一个关系模式R(U)中,X,Y是U的子集,r是R的任一具体关系,如果对r的任意两个元组t1,t2, 由t1X=t2X必有t1=t2。即X表示空属性函数依赖于X。这是任何关系中都存在的。

31、(2)Y表示Y函数依赖于空属性。由此可知该关系中所有元组中Y属性的值均相同。 (3)表示空属性函数依赖于空属性。这也是任何关系中都存在的。 3.6关系模式R有n个属性,在模式R上可能成立的函数依赖有多少个? 其中平凡的函数依赖有多少个?非平凡的函数依赖有多少个? (要考虑所有可能的情况,数学排列组合问题。对于数据库本身而言,本题没多大意义) 所有属性相互依赖时,函数依赖最多。平凡的函数依赖:对于函数依赖XY,如果YX,那么称XY是一个“平凡的函数依赖”。3.7已知关系模式R(ABC),F=AC,BC,求F+。 可以直接通过自反律、增广律、传递律加以推广: F+=,A,B,C,AC,BC,AB,

32、ABA,ABB,ABC,ABBC,ABAB,ABABC,BC,BCC,BCB,BCBC,AC,ACC,ACA,ACAC,ABC,ABCA,ABCB,ABCC,ABCBC,ABCAB,ABCABC4.6 试分析下列分解是否具有无损联接和保持函数依赖的特点: (1)设R(ABC),F1=AB 在R上成立,1=AB,AC。 首先,检查是否具有无损联接特点: 第1种解法-算法4.2: ABCABa1a2b13ACa1b22a3ABCa1a2b13a1a2a3(1) 构造表(2)根据AB进行处理结果第二行全是a行,因此分解是无损联接分解。 第2种解法:(定理4.8) 设 R1=AB,R2=AC R1R2

33、=A R2- R1=B AB,该分解是无损联接分解。 然后,检查分解是否保持函数依赖 R1(F1)=AB,以及按自反率推出的一些函数依赖 R2(F1)=按自反率推出的一些函数依赖 F1被R1(F1)所蕴涵,所以该分解保持函数依赖。 (2)设R(ABC),F2=AC,BC在R上成立,2=AB,AC 首先,检查是否具有无损联接特点: 第1种解法(略) 第2种解法:(定理4.8) 设 R1=AB,R2=AC R1R2=A R2- R1=C AC,该分解是无损联接分解。 然后,检查分解是否保持函数依赖 R1(F2)=按自反率推出的一些函数依赖 R2(F2)=AC,以及按自反率推出的一些函数依赖 F1中

34、的BC没有被蕴涵,所以该分解没有保持函数依赖。 (3)设R(ABC),F3=AB,在R上成立,3=AB,BC. 首先,检查是否具有无损联接特点: 第1种解法: ABCABa1a2b13BCb21a2a3ABCa1a2a3a1b22a3(1) 构造表(2)根据AB进行处理没有一行全是a行。因此这个分解不具有无损联接特性。 第2种解法:(定理4.8) 设 R1=AB,R2=BC R1R2=B R2- R1=C,R1- R2=A BC,BA不在F3中 该分解不具有无损联接特性。然后,检查分解是否保持函数依赖 R1(F3)=AB,以及按自反率推出的一些函数依赖 R2(F3)=按自反率推出的一些函数依赖

35、 F1被R1(F3)所蕴涵,所以该分解保持函数依赖。 (4)设R(ABC),F4=AB,BC在R上成立,4=AC,BC 首先,检查是否具有无损联接特点: 第1种解法(略) 第2种解法:(定理4.8) 设 R1=AC,R2=BC R1(AC)R2(BC)=C R2- R1=B,R1- R2=A CB,CA不在F4中 该分解不具有无损联接特性。 然后,检查分解是否保持函数依赖 R1(F2)=按自反率推出的一些函数依赖 R2(F2)=BC,以及按自反率推出的一些函数依赖 F1中的AB没有被蕴涵,所以该分解没有保持函数依赖。 4.7 设R=ABCD,R上的函数依赖集F=AB,BC,AD,DC,R的一个

36、分解=AB,AC,AD,求:(1)F在的每个模式上的投影。(2)相对于F是无损联接分解吗?(3)保持依赖吗? (1) AB(F)=AB,及按自反律所推导出的一些平凡函数依赖 AC(F)=AC,及按自反律所推导出的一些平凡函数依赖 AD(F)=AD,及按自反律所推导出的一些平凡函数依赖 (2) ABCDABa1a2b13b14ACa1b22a3b24ADa1b32b33a4ABCDa1a2a3a4a1a2a3a4a1a2a3a4(1) 构造表(2)根据AB,BC,AD,DC进行处理每一行都是a,相对于F是无损联接分解。 (3)AB(F)AC(F)AD(F)=AB,AC,AD, 没有满足BC,DC

37、函数依赖, 因此相对于F的这个分解不保持函数依赖。 4.8 设R=ABCD,R上的F=AC,DC,BDA, 试证明=AB,ACD,BCD相对于F不是无损联接分解。 根据算法4.2 ABCDABa1a2b13b14ACDa1b22a3a4BCDb31a2a3a4ABCDa1a2a3b14a1b22a3a4b31a2a3a4(1) 构造表(2)根据AC,DC,BDA进行处理没有一行都是a,所以,相对于F不是无损联接分解。 4.9 设R=ABCD,R上的F=AB,BC,DB,把R分解成BCNF模式集。 (1)若首先把R分解成ACD,BD,试求F在这两个模式上的投影。 (2)ACD和BD是BCNF吗?

38、如果不是,请进一步分解。 (1)ACD(F)=AC BD(F)=DB (2)因为根据BCNF的定义,要求关系模式是第一范式,且每个属性都不传递依赖于R的侯选键。 BCD中(A,D)为候选键,可是(A,D)A, AC,所以它不是BCNF模式。 它可进一步分解为:AC,DC,此时AC,DC均为BCNF模式。 BD是BCNF,因为R2(BD)是第一范式,且每个属性都不传递依赖于D(候选键),所以它是BCNF模式。 4.10 设R=ABCD,=AB,BC,CD。F1=AB,BC;F2=BC,CD; (1)如果F1是R上的函数依赖集,此时是无损联接分解吗?若不是,试举出反例。 (2)如果F2是R上的函数

39、依赖集呢? (1)不是无损联接。可由算法4.2判断或由定理4.8判断。 根据算法4.2 ABCDABa1a2b13b14BCb21a2a3b24CDb31b32a3a4ABCDa1a2a3b14b21a2a3b24b31b32a3a4(1) 构造表(2)根据AB,BC进行处理结果没有出现一行全a的情况,所以它不是无损联接。举例如下: 设模式R的一关系r为(a1b1c1d1),(a2b2c1d2) 则有:r1=AB(r)=(a1b1),(a2b2) r2=BC(r)=(b1c1),(b2c1) r3=CD(r)=(c1d1),(c1d2) 令a=r1r2r3= (a1b1c1d1),(a1b1c

40、1d2),(a2b2c1d1),(a2b2c1d2) ra,所以不是无损联接。 (2)如果F2是R上的函数依赖,则可以判断,是无损联接。判断过程同上。 4.11 设关系模式R(S#,C#,GRADE,TNAME,TADDR),其属性分别表示学生学号、 选修课程的编号,成绩、任课教师地址等意义。如果规定,每个学生每学一门课只有一个成绩; 每门课只有一个教师任教;每个教师只有一个地址(此处不允许教师同名同姓)。 (1)试写出关系模式R基本的函数依赖和候选键。 (2)试把R分解成2NF模式集并说明理由。 (3)试把R分解成3NF模式集,并说明理由。 (1)F=(S#,C#)GRADE,C#TNAME

41、,TNAMETADDR 侯选键是(S#,C#)。 (2)在模式R中,TNAME不完全依赖于键(S#,C#),因此需进行分解,可分解为下列两个关系。 SC=S#,C#,GRADE C=C#,TNAME,TADDR 分解后,SC中,GRADE完全依赖于侯选键(S#,C#),在C中,主属性是C#,TNAME、TADDR均完全依赖于C#。 因此,该分解符合2NF模式。 (3)3NF:若每个关系模式是2NF,则每个非主属性都不传递于R的候选键。 按上述已分好的两个模式,SC中已满足“每个非主属性都不传递于R的候选键”,已是3NF,而在C中, C#TNAME,TNAMETADDR,TADDR传递依赖于C#

42、,因此还需分成两个模式:CT(C#,TNAME), T(TNAME,TADD)。 分解后,总共有SC=S#,C#,GRADE,CT(C#,TNAME), T(TNAME,TADD)三个模式。 该分解符合3NF模式。 1、 关系数据库通过表与表之间的公共属性实现数据之间的联系。这(些)个公共属性是一个表的主码,是另一个表的外码;它们应满足参照完整性约束条件。(T)2、 在SQL Server中,数据存储在一个个的关系表格中,这些关系表格也叫数据表,或基本表。(T)3、 一个关系(relation)就是一个二维表,二维表的表名就是关系名。一个数据库包含一个表。(F)4、 关系中的主码不能取空值,它

43、要求每一关系中的每个元组在组成主码的属性上不能为空值是实体完整性。其中“空值”是指没有值,是不确定的值。(T)5、 规则用来保证输入到列中的数据的实体完整性。规则比检查约束更简明,一个列只能应用一个检查约束,但是却可以应用多个规则。(F)6、 在SQL Server中,登录对象和用户对象是权限管理的两种完全相同的对象。(F)7、 事务日志本身是一个数据库,用来保存所有更新数据库事务的操作。其主要用途是恢复由各种故障造成的数据丢失,将DB恢复到最近某个一致性状态。(T)8、 已经更改了数据库中数据,但还没有完成的事务在恢复过程中,SQL Server从磁盘上读取数据页,重新套用更改,然后再将数据

44、页写回磁盘上。(F)1、 SQL Server是基于客户机/服务器的关系数据库管理系统。(T)2、 在关系中,如果某个属性(或属性组)是另一个关系的主键,称该属性(或属性组)为这个关系的外键(外码)。外键的值可有两种选择:一是来源于所参照关系的主键,二是为空值。(T)3、 缺省对象与缺省约束的作用是不同的,它为插入语句中未指定的数据列提供数值。(F)4、 SQL Server还提供了一种被称为触发器的特殊机制来实现数据库的数据完整性。(T)5、 如果登录名还没有被映射到用户名上,可以用guest用户访问数据库。(T)6、 事务反映现实世界中需要以完整单位提交的一项工作。它是一个逻辑工作单元,不

45、必完整地执行或者全都不执行。(F)7、 从差异备份还原,必须先从完整备份还原,然后还原上次完整备份后的所有差异备份文件,并且还原时必须使用NORECOVERY选项。(T)1、 用DROP语句可以删除数据库。(T)2、 参照关系也称主关系,被参照关系也称从关系,它们是指以外键相关联的两个关系。以其他表的外键为主键的关系称为参照关系;外键所在的关系称为被参照关系或目标关系。(F)3、 触发器的嵌套是指触发器在更改一个表中的内容时,激活了该表的另外一个触发器,而该触发器又以这种方式激活了第三个触发器,依此类推。(T)4、 使用事务日志文件可以恢复非日志事务。(F)5、 事务的永久性意味着在事务完成后

46、,所有的数据保持一致的状态,这保证了数据的完整性。(F)1、 数据库系统提供了对数据进行有效处理的方法。它由四大部分组成:数据库、数据库管理系统、数据库应用程序和数据库管理员。(T)2、 SQL Server的服务管理器允许用户输入SQL语句并且迅速查看这些语句的结果。(F)3、 数据完整性是指数据库中数据在逻辑上的一致性和合理性。通过完整性约束机制,当用户对数据库数据进行操作时,系统可以在一定程序上保证数据的正确性。(T)4、 实现数据完整性有三种方式,即声明数据完整性、实现数据完整性和过程数据完整性。(F)5、 事务的一致性使SQL Server确保事务作为一个不可分割的基本单元来执行。(

47、F)1、 创建数据库的用户并不一定是该数据库的所有者。(F)2、 在SQL Server中,可用两种方式对数据表进行操作:在图形界面上的菜单方式和使用T-SQL语言方式。(T)3、 在关系数据库中,表与表之间的联系是通过公共属性实现的,这(些)个公共属性是一个表的主码,是另一个表的外码,这就是参照完整性。实现它的规则为外码的取值必须是另一个表主码的有效值,或者是“空值”。(T)4、 事务日志记录了系统的各种操作和出错情况,通过观测日志,可以分析系统的缺陷,找出错误的来源。(T)1在关系数据模型中,实体与实体之间的联系统一用二维表表示。Y2同一个关系模型中可以出现值完全相同的两个元组。N3投影操

48、作是对表进行水平方向的分割。N4在一个关系中不可能出现两个完全相同的元组是通过实体完整性规则实现的。Y5建立数据库中的表时,将年龄字段值限制在1825岁之间。这种约束属于参照完整性约束。N6关系模型中有三类完整性约束,并且关系模型必须满足这三类完整性约束条件。N7.“通过输入数据创建表”方式建立的表结构既说明了表中字段的名称,也说明了每个字段的数据类型和字段属性。N8修改表结构在设计视图中完成,编辑表记录只能在数据表视图中完成。Y11. 任何数据类型的字段都可以建立索引以提高数据检索效率。N12数据表的复制既可以在不同数据库间复制,也可以在同一个数据库下复制。Y14一对一的关系可以合并,多对多

49、的关系可拆成两个一对多的关系,因此,表间关系可以都定义为一对多的关系。Y15在定义表间关系时,应设立一些准则,这些准则将有助于维护数据的完整性。参照完整性就是在输入、删除或更新记录时,为维持表之间已经定义的关系而必须遵循的规则。Y16. 我们可以根据表来建立查询,但不可以根据某一个查询来建立新的查询。N17. “SQL”视图用来显示与“设计”视图等效的SQL语句。Y18. 查询的“数据表”视图看起来很像表,它们之间是没有什么差别的。N19. 使用选择查询可以从一个或多个表或查询中检索数据,可以对记录组或全部记录进行求总计、计数等汇总运算。Y20. 建立多表查询的两个表必须有相同的字段,通过这个相同字段建立起两个表之间的关系。Y21. 使用查询“设计”视图中的“条件”行,可以对查询中的全部记录或记录组计算一个或多个字段的统计值。使用“总计”行,可以添加影响计算结果的条件表达式。N25. 执行参数查询时,数据库系统显示所需参数的对话框,由用户输入相

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论