华东交通大学2007—2008学年第二学期考试卷数据库系统原理及应用课程课程类别:必(A)卷闭卷参考答案一、单项选择题(每题2分,共20分)1.B2.B3.C4.C5.B6.B7.C8.C9.B10.A二、填空题(每小题1分,共10分)1.三级结构之间存在着两级映象2.2AB和BC3.行列子集4.沿箭头方向存在一个循环5.F+=G+6.可串行性(化)7.ALL8.恢复管理子系统9.死锁10.差三、简答、计算、说明题(共50分)1.答:在层次、网状模型中,数据联系通过直指针实现。在关系模型中,数据联系通过外键和主键相联系实现。(4分)2.答:SELECT语句中使用GROUP子句的先决条件是要有聚合操作。当聚合操作值与其它属性的值无关时,不必使用GROUP子句。例如求男同学的人数。此时聚合值只有一个,因此不必分组。当聚合操作值与其它属性的值有关时,必须使用GROUP子句。例如求每一性别的人数。此时聚合值有两个,与性别有关,因此必须分组。(4分)3.设有关系R和S如下所示,计算R⋈S和R⋈S。(6分)R⋈SR⋈SABCDAR.BR.CBCD6425642425653864252656846535385686844.请用SQL语句写出下列操作:(共20分)(1)假设每个职工可以在多个公司工作,查询在编号为C4和C8公司兼职的职工工号和姓名。(4分)SELECTA.E#,A.ENAMEFROMEMPA,WORKSB,WORKSCWHEREA.E#=B.E#ANDB.E#=C.E#ANDB.C#=‘C4’ANDC.C#=’C8’;(2)假设每个职工可以在多个公司工作,查询每个职工的兼职公司数目和工资总数,按(E#,NUM,SUM_SALARY)显示,分别表示职工工号、公司数目和工资总数。(4分)SELECTE#,COUNT(C#)ASNUM,SUM(SALARY)ASSUN_SALARY3=23=2FROMWORKSGROUPBYE#;(3)设职工工号为E6的职工在多个公司工作,查询至少在E6职工兼职的所有公司工作的职工工号。(6分)SELECTX.E#FROMWORKSXWHERENOTEXISTS(SELECT*FORMWORKSYWHEREE#=‘E6’ANDNOTEXISTS(SELECT*FROMWORKSZWHEREZ.E#=X.E#ANDZ.C#=Y.C#));(4)查询联华公司中低于本公司平均工资的职工工号和姓名。(6分)SELECTA.E#,A.ENAMEFROMEMPA,WORKSB,COMPCWHEREA.E#=B.E#ANDB.C#=C.C#ANDCNAME=‘联华公司’ANDSALARY(SELECTAVG(SALARY)FROMWORKS,COMPWHEREWORKS.C#=CMOMP.C#ANDCNAME=‘联华公司’);5.已知关系模式RU,F,其中:U={A,B,C,D,E,G},F={AB→C,C→A,BC→D,ACD→B,D→EG,BE→C,CG→BD,CE→AG}。计算(CD)F+。(6分)解:令X(0)=CD逐一扫描F集合中的各个函数依赖,找左部为C,D或CD的函数依赖,得:C→A,D→EG∴X(1)=CD∪AEG=ACDEG∵X(0)≠X(1)∴再找出左部为ACDEG子集的那些函数依赖,又得:ACD→B,CG→BD,CE→AG∴X(2)=X(1)∪ADG=ABCDEG∵X(2)已等于全部的属性集合∴(CD)F+=ABCDEG6.考虑以下两个事务,并回答问题。(10分)(1)T1:lock-S(A)read(A)lock-X(B)read(B)ifA=0thenB:=B+1write(B)unlock(A)unlock(B)T2:lock-S(B)read(B)lock-X(A)read(A)ifB=0thenA:=A+1write(A)unlock(B)unlock(A)(2)两个事务的并发执行会产生死锁,例如:T1T2lock-S(A)lock-S(B)read(B)read(A)lock-X(B)lock-X(A)两个事务死锁四、综合题(共20分)1.一个图书借阅管理数据库要求提供下述服务:(1)画出满足需求的E-R图。(8分)(2)将上述E-R图转换为等价的关系模式,并标出主码。(6分)借书人(借书证号,姓名,单位)图书(书号,书名,数量,位置,出版社名)出版社(出版社名,电报,电话,邮编,地址)借阅(借书证号,书号,借书日期,还书日期)2.说明以下等式成立,并说明如何利用它提高某些查询的效率。(6分)将(E1⋈θ(E2-E3))、(E1⋈θE2)、(E1⋈θE3)分别命名为R1、R2和R3。很清楚:若元组t属于R1,它也属于R2;若元组t属于R3,t(E3的属性)将属于E3,因此t不属于R1由以上两点可知:t,tR1t(R2−R3)(1)同理,若元组t属于R2,它也属于R2−R3,那么,t(R2的属性)E2并且t(R2的属性)将属于E3。则,t,t(R2−R3)tR1(2)由(1)、(2)可知原等式成立。原等式右边的连接会产生许多最终要从结果中移出的元组,原等式左边被评估为更有效。借书人图书出版社借阅出版借书证号姓名单位借书日期还书日期书号书名数量位置出版社名电报编号邮编地址电话m1mn