数据库原理与应用 教学作者林 小 玲第4章习题答案.docx
第4章习题答案一、填空题1 .若X-Y,并且X的任何其子集都不能函数决定Y,则称X-Y为 完全 函数依 赖,否则,若X-Y,并且X的一个真子集也能够函数决定Y,则称X-Y为一部分. 函数依赖。2 .关系数据库中的每个关系最低必须属于一第L 范式,该范式中的每个属性值都是 不可分的数据项的数据项。3 .若关系模式R属于1NF,且它的每个非主属性都.完全依赖于 候选码,则R属 于 2NF。4 .若关系模式R属于1NF,且它的每个非主属性都不一部分依赖和传递依赖一候选码,则R属于3NF。5 .若关系模式R属于1NF,且它的每个属性都不完全函数依赖丁非码的任何一组属性 _候选码,则R属于BCNF。6 .若XYZ成立,则X-Y 和 X-Z 亦成立,称此推导规则为,规则。7 .若X-Y和XZ成立,则 X-YZ亦成立,称此推导规则为 无 规则。8 .设有关系模式R(A,B.C,D,E),其函数依赖集为F=AtB,B->C,DtE,则该关系模 式的候选码为_包_,该关系模式最高属于二范式,若要无损且保持依赖地分解为 第三范式关系模式集,则R的分解A集BC, DE, AD;。9 .设有关系模式R(A,BC,D,E),其函数依赖集为F=ATB,ATC,CDTE,则该关系 模式的候选码为_皿一,该关系模式最高属于范式,若要无损且保持依赖地分解为 第三范式关系模式集,则R的分解o= ABC,CDE,ADL .10 .设有关系模式R(A,B,C,D,E),其函数依赖集为尸=48,八一0口一£,则该关系 模式的候选码为A, D ,该关系模式最高属于第2 范式,若要无损且保持依赖地 分解为第三范式关系模式集,则R的分解。=RI (A式集),R2 (A, D, E) .11 .设有关系模式 R(A, B, CD. E, F, G),其函数依赖集为 FD=AtB, A-C, C->D, C-E, AtF, F-G,则该关系模式的候选码为_ A 该关系模式最高属于第二_范式,若要无 损且保持依赖地分解为第三范式关系模式集,则R的分解=ABCECDE.FG) 。12 .设有 FD集F=ATB,A一C,CTD,CTE,A-G,GH,则fLeMF)=AfD.Af/ 因为 S # - C#,C # f DN,DN f SA /C中存在传递函数依赖:C# f DN/ 因为 C # - CS,CS - DN 铃 /(S*,PN) - DAIE2和(CS, CDATE) - C#均为SP中的函数依赖,是完全函数依赖候选码:关系S: S #关系 C: C #, (CS, CDA' IE)外码:关系S: C#,DN关系 SP: S#,PN2设有一教学管理数据南其属性为学号(S#),课程号(C#),成绩(G),任课教师(TN), 教师所在的系(D)。这些数据有卜.列语义: 学号和课程号分别与其代表的学生和课程一一对应;.一个学生所修的每门课程都有一个成绩; 每门课程只有一位任课教师,但每位教师可以有多门课程;教师中没有重名,每个教师只属于一个系。(1) .试根据卜.述语义确定函数依赖集。(2) .如果用上面所有属性组成一个关系模式,那么该关系模式为何模式?并举例说明在 进行增、删操作时的异常现象。(3) .将其分解为具有依赖保持和无损连接的3NF。解:.F=(S#, C#)-*G, C#-TN, TN-*D)(2) .关系模式为INF。该关系模式的候选关键字为(S#, C#)则非主属性有G、TN和G。又下中有C#TN存在非主属性TN对提选关键字(S#, C#)的部分依赖即:(S#, C#)*TNo异常现象:若新增设一门课程而暂时还没有学生选修时,则因缺少关键字S#值而不能进行插入操 作。若某个教师调离学校要删除其有关信息时,会将不该删除的课程(C8)信息删除。(3) . VF=F, =(S#, C#)fG, C#-*TN, TN-D)A P =R1, R2, R3)其中:R1=(S#, C#, G)R2=(C#, TN)R3=(TN, D)3.如下给出的关系R为第几范式?是否存在操作异常?若存在,则将其分解为高一级范 式。分解完成的高级范式中是否可以避免分解前关系中存在的操作异常?工程号材料号数量开工日期完工日期价格P11142000.200125.550P11262000.200135.500P11312000.2001155.580P21162000.2001211.1250P21412000.20013811.1250解:它为1NF。因为该关系的候选关键字为(工程号,材料号),而非主属性“开工日期”和“完 工口期”部分函数依赖于候选关键字的子集“工程号”,即:P(工程号,材料号)开工日期P(工程号,材料号)1完工日期它不是2NF。它存在操作异常,如果工程项目确定后,若暂时未用到材料,则该工程的数据因缺少关 键字的一部分(材料号)而不能进入到数据库中,出现插入异常。若某工程下马,则删去该工 程的操作也可能丢失材料方面的信息、。将其中的部分函数依赖分解为一个独立的关系,则产生如下所示的两个2NF关系子模 式:R1工程号材料号数量价格P1114250P1126300P11315180P2116250P21418350R2工程号开工日期完工日期P12000. 52001.5P22000. 112001. 12分解后,新工程确定后,尽管还未用到材料,该工程数据可在关系R2中插入。某工程 数据删除时,仅对关系R2操作,也不会丢失材料方面的信息。13 .设 R(A,B,C,D,E)上的 FD 集为 F=AB-A,A-B,Af C,CD-E,D-E,Bf D,B-E, 则F的规范覆盖Fc二A>BC, D-E, B>DL , R的候选码为A , R最高属于一第一一 范式,若要无损且保持依赖地分解为第三范式关系模式集,则R的分解p= ABC, DE, BD)。14 .设关系模式 R(A,B,C,D,E,G)上的 FD 集为 F=D->GCf A,CD-*E,A-B ,则 R 的候选码为CD , R最高属于第一范式,若要无损且保持依赖地分解为第三范式关系 模式集,则R的分解p= DG CA、CDE, AB1 。15 .设有关系模式R(D, E, G),其函数依赖集为F=E-D, DG-E,则该关系模式的 候选码为 PG, EG ,该关系模式最高属于一第二_ 范式。16 .设有关系模式R(A,C,D),其函数依赖集为F=ATCATD,则该关系模式的候 选码为 A ,该关系模式最高属于 BCNF 一 范式。17 .设有关系模式R(A, B, C, D),其函数依赖集为F=AtB, A->C, A->D, BC-A , 则该关系模式的候选码为.A, BC ,该关系模式最高属于_处正_范式。18 .设有关系模式R(A, B, C),其函数依赖集为F=AB-C,C-B ,则该关系模式的 候选码为A,B一,该关系模式最高属于第3_ 范式。19 .设有关系模式R(A, BCD), 其函数依赖集为F=AB-C,C-D,D-A,则该关 系模式的候选码为 AB, BD, BC ,该关系模式最高属于第三 范式。20 .关系模式规范化的目的是:通过关系模式的分解,消除数据冗余 和操作 异常并保持函数依赖O21 .在一个关系R中,若每个数据项都是不可再分割的,那么R 一定属于1NF 。22 .若关系为1NF,且它的每一非主属性都不部分函数依赖于 候选码,则该关系为2NF。23 .要使关系模式属于第二范式,就要消除非主属性部分依赖候补码的情况 。24 .逐步消除数据依赖中不合适的部分是关系规范化的主要方法。25 .若RW3NF,则所有非主属性 既不部分依赖也不传递依赖候补码。二、单项选择题1 .关系数据库中的关系必须满足:每个属性都是 B 0A.长度不变的B.不可分解的 C.互相关联的D.互不相关的2 .若关系模式R(A,B,C,D,E)及其上的FD集F=AtD,BC,EA,则R的候选码为 B oA. ABA. ABB. BEC. CDD. DE3 . 2NF的关系模式 B 。A.可能是INF B. 一定是INF C. 一定是3NF D. 一定是BCNF4 .若关系模式R的属性全是主属性,则R的至少应属于。A. INFB. 2NFC. 3NFD. BCNF5 .消除了部分函数依赖的1NF关系模式必定是。A. INFB. 2NFC. 3NFD. BCNF6 .关系模式的候选码可以有一个或多个,而主码 oA.可以有多个B.可能没有C.只能有一个 D.可以有一个或多个7 .候选码中的属性可以有2 。A.。个或多个 B. 0个C. 1个D. 1个或多个8 .设关系模式R(A.B,C)的分解p= AB.AC ,当R上的FD集时,p为无损分解。A. BC B. CB C. A->C D. CA 9 .设关系模式R(A,B,C)的分解p= AB, AC ,当R上的FD集F= A 时,p为无损 分解且保持函数依赖。A. A-B B. C. B-A D. C-B,B-A 10 .设有关系模式R(S,D,M),其函数依赖集为F=StDQM,则R最高属于B 。A. INFB. 2NFC. 3NFD. BCNF11 .设有关系模式R(A, B,C, D),其函数依赖集为F= AB-C, C-D,则R最高属于 BA. INFB. 2NFC. 3NF D. BCNF12 .当. B 成立时,称X-Y为平凡函数依赖。A. XgYB. YcXC. XPY=(|> D. XCIY。13 .在关系模式R中,函数依赖XtY的语义是_B_。A.在R的某个关系中,若两个元组的X值相等,则丫值也相等。B.在R的每个关系中,若两个元组的X值相等,则丫值也相等。C.在R的某个关系中,Y值等于X值。D.在R的每个关系中,Y值等于X值。14 .如果XY和WYZ成立,则WXZ成立。这条规则称为 C 0A.增广律 B.传递律 C.伪传递律规则D.分解规则15 . XY能够用Armstrong公理推出的充分必要条件是一 B 0A. YcX B. YaX+ C. XcY+ D. X+=Y+16 .函数依赖集F和G等价的含义是一 D 。A.所有能够由F推出的函数依赖都能够由G推出B.所有不能由F推出的函数依赖都不能够由G推出C. F=GD.同时满足A和B17 .下列说法中不正确的是一 D 。A.任何一个二目关系都属于-3NFB.任何一个二目关系都属于4NFC.任何一个二目关系都属于BCNFD.以上说法都不对18 .主属性指的是A.主码中的属性B.不在任何候选码中的属性C.候选码中的属性D.以上说法都不对19 .设有关系模式 R(ABCDEGHIJKLMNOPQ), R 上成立的 FD 集为 F=AG->B, DE-C, CHIJ-AG ,则R的候选码为C .A. AGDIJKLMNOPQB.DECHIJKMNOPQC. DEHIJKLMNOPQD.AECHIJKMNOPQ20.将关系模式R分解为关系数据库模式p的一个缺点是 oA.数据不能集中处理B.一些数据会丢失C.会出现增删改异常D.查询时需要做连接运算三、简述题1 .什么是部分依赖?什么是完全依赖?请举一个生活中的例子。答:完全函数依赖、:在R(U)中,如果X-Y,并且对于X的任何一个真子集X', 都有X,-V>Y,则称Y对X完全函数依赖,记作X-*fYo部分函数依赖:在R(U)中,如果X 一Y,并且对于X的任何一个真子集X',则有X'>Y,则称Y对X部分函数依赖。记作X 一 PY。例如: 职工(工号,H期,姓名,工种,定额,超额)(工号,日期)一1超额(工号,日期)fP姓名2 .简述最小覆盖的计算方法。(1)逐一检查尸中各函数依赖若洋勺人2Ak,k>2,则用X4/|/=1, k来取代X-匕(2)逐一检查尸中各函数依赖尸。/: X-A令G=FX-4,若AwXg+,则从F中去 掉此函数依赖。逐一取出F中各函数依赖FDi: X-A, 设X=B1B2Bm,逐一考查Bi (i=L 2, 一, m),若 Aw (X-Bi ) F+ ,则以 X-Bi 取代 X.简述计算候选码的快速方法。2 .简述判断关系模式所属范式的方法。解:I)求候选码,确定主属性和非主属性;2)看是否有非平凡FD,其左部不含候选码;3)若不存在,则是BCNF;4)否则:若这些FD的右部都是主属性,则是3NF ;5)否则:若候选码都是一属性集,或者任何候选码的任何真子集都不确定非主 属性,则是2NF ;6)则是INFo3 .什么是关系模式规范化?其目的是什么?答:把一个低一级范式的关系模式,通过模式分解转换为若干个高一级范式的关系模式 的集合,这种过程就叫关系模式的规范化,其目的是使得含有不合适的函数依赖的关系模式 引起的各种异常情况通过规范化来改造关系模式,消除其中不合适的数据依赖,以解决插入 异常、删除异常、更新异常和数据冗余问题。4 .什么是无损分解?如何判断个分解是否为无损分解?答:如果分解后的关系可以通过自然连接恢复为原来的关系,那么这种分解就没有丢失 信息,这种分解就称为无损的分解,即具有无损连接性的分解保证不丢失信息。7.给定关系模式R (U)和函数依赖集F,如何将R (U)保持依赖且无损地分解成3NF 关系模式集?解:1)求F的规范覆盖及2)初始化:置P= :3)逐个考察中的每一个FD: X一上如果P中的每个关系模式都不包含XX则将XV加入p中4)考察R的候选码:如果P中的所有关系模式都不包含R的候选码,则将R的某个 候选码加入P中8.设有关系模式R (X,Y,Z), R中属性均不可再分解,若基于函数依赖进行讨论,试根 据给定的函数依赖集E分析R最高属于第几范式。(1) F=XY-Z;(2) F=Y-Z, XZ-Y;(3) F=Y-Z, Y-X,X-YZ答:(1) BCNFo R的候选码为XY, F中只有一个函数依赖,而该函数依赖的左部包含了R的候选码XYo(2) 3NF。R的候选码为XY和X乙R中所有属性都是主属性,不存在非主属性对 候选码的传递依赖。(3)BCNFc R的候选码为X和Y,不存在任何属性对候选码的传递依赖和部分依赖。9.设有关系模式R(职工编号,日期,R营业额,部门名称,部门经理),该模式统计 商店里每个职工的口营业额,以及职工所在部门和经理信息。如果规定:每个职工每天只有 一个营业额;每个职工只在一个部门工作;每个部门只有一个经理。求下列问题:(I)根据上述规定,写出模式R的基本函数依赖和关键字;(2)说明模式R不是2NF的理由,并将其分解为2NF;(3)进而分解为3NFo答:(1) F= 职工编号一部门名称,部门名称一部门经理,职工编号,日期一日营业额 关键字:职工编号,日期(2)由于关系模式R存在部分依赖所以不是2NFR 1 (职工编号,日期,日营业额)R 2 (职工编号,部门名称,部门经理)(3 ) R 1 (职工编号,日期,口营业额)R 2 1 (职工编号,部门名称)R 2 2 (部门名称,部门经理)10.试问下列关系模式最高属于第几范式,并说明理由。(l)R(ABCD), F=AB-C,B-D R(ABCDE), F= AB-CE, E-AB, C-D (2) R(ABC), F=A-B. Bf A,A-C R(ABC), F=A-B,B-A,C-A(3) R(ABCD), F=AC,CD-*B )(6)R(ABCD), F=A-*C, D-*B )答:(1) INF。R的候选码为AB,存在非主属性对候选码的部分依赖。(2 ) 1 NF0 R的候选码为A B和C E ,存在非主属性对候选码部分依赖。(3 ) BCNFo R的候选码为A,不存在任何属性对候选码的传递依赖和部分依赖。(4 ) BCNFo R的候选码为A和C,不存在任何属性对候选码的传递依赖和部分依赖。(5 ) BCNFo R的候选码为A和C D,不存在任何属性对候选码的传递依赖和部分依赖。H.已知关系模式R(ABCD),在R上有3个相应得函数依赖集合及分解:(1)F=B-*C,D-*A , r=BC,AD(2)F=AB-*C,C-*A,C-*D , r=ACD, BC)(3)F=A-B,B-C,C-D , r=AB,ACD回答下列问题:(1)确定R的关键字;(2)是否无损分解?(3)是否保持函数依赖分解?解:(1) R的关键字为BD,具有无损分解R的关键字为B,具有无损分解(2) R的关键字为A12 .分析关系模式:STUDENT(学号,姓名,出生日期,系名,班号,宿舍区),指出其候选关键字,最小依赖集和存在的传递函数依赖。解:经分析有:候选关键字:学号(每个学生只有惟的学号)最小依赖集:学号f姓名,学号f出生口期,学号f班号,系名f宿舍区,班号 f系名存在传递函数依赖:传递学号f系名一宿舍区,有学号宿舍区;班号一系名f宿舍区,有班号宿舍区;学号一班号一系名,有学号一俺生一一系名;13 .设有关系模式R(U, F),其中:U=(A, B, C, D, E, P, F=A-B, C-P, E-A, CE-D求出R的所有候选关键字。解:根据候选关键字的定义:如果函数依赖X-U在R:成立,且不存在任何X,qX, 使得X-U也成立,则称X是R的一个候选关键字。由此可知,候选关键字只可能由A, C, E组成,但有E-A,所以组成候选关键字的属性可能是CE。+计算可知:(CE);ABCDEP,即 CE-U + +而:C =CP, E =ABE.R只有一个候选关键字CE。14 .设有关系模式R(A, B, C, D, E), R的函数依赖集:F=A-D, E-D, D-B, BC-D, CD-A.求R的候选关键字。(1) .将R分解为3NF。解:(1) .设 U=(A, B, C, D, E),由于(CE)+=ABCDE, C'=C, E+=BDEJR的候选关键字是CE。(2) .求出最小依赖集* =(A-*D, E-D, D-B, BC-D, CD-*A 将 R 分解的 3NF: P = AD, DE, BI), BCD, ACD。四、综合题1.建立一个关于系、学生、班级、学会等诸信息的关系数据库。描述学生的属性有: 学号、姓名、出生年月、系名、班号、宿舍区。描述班级的属性有:班号、专业名、系名、 人数、入校年份。描述系的属性有:系名、系号、系办公室地点、人数。描述学会的属性有:学会名、成立年份、地点、人数。有关语义如下:一个系有若干专业,每个专业每年只招一个班,每个班有若干学 生。一个系的学生住在同一宿舍区。每个学生可参加若干学会,每个学会有若干学生。学 生参加某学会有一个人会年份。请给出关系模式,写出每个关系模式的极小函数依赖集,指出是否存在传递函数依 赖,对于函数依赖多属性的情况讨论函数依赖是完全函数依赖,还是部分函数依赖.指出 各关系的候选码、外部码,有没有全码存在?答:关系模式:学生 S(S#,SN, SB ,DN,C#,SA)班级 C (C#, CS, l)N, CNCM, CDATE)系 D(D#,DN, DA, DNUM)学会 P(PN, DATE 1, PA, PNUM)学生-学会 SP(S#, PN, DATE2)其中,s# 一学号,SN 一姓名,SB 一出生年月,SA 一宿舍区,C# 一班号,CS 专业 名,CNUM 一班级人数,CDATE-入校年份,D# 一系号,DN 一系名,DA 一系办公室地 点,DNUM 一系人数,PN 一学会名,DAIE1 一成立年月,PA 地点,PNUM 一学会人 数,DATE2 一入会年份每个关系模式的极小函数依赖集:S : S# - SN,S# 一 SB ,S# - C#, C# - DN, DN - SAC :C# - CS, C# - CNIMC# - CDATE, CS - DN, (Cs , CDATE) - C#/因为每个专业每年只招一个班/D:D# DN, D# DA, D# - DNUM/按照实际情况,系名和系号是一一对应的/P:PN f DATE1, PN - PA, PN -PNUMSP:(S#,PN) - DATE2S中存在传递函数依赖:S# DN, S# 一 SA, C# - SA