第1页共8页《数据库系统概论》模拟试卷(四)参考答案一、单项选择题(每小题2分,共30分)第1到第2题基于以下的叙述:有关系模式A(C,T,H,R,S),其中各属性的含义是:属性C代表课程名,属性T代表教师姓名,属性H代表上课时间,属性R代表上课教室,属性S代表学生姓名。根据语义有如下函数依赖集:F={C→T,(H,R)→C,(H,T)→R,(H,S)→R}。1、请问该关系模式A的候选码是()(A)、C(B)、(H,R)(C)、(H,T)(D)、(H,S)2、关系模式A的规范化程度最高达到()(A)、1NF(B)、2NF(C)、3NF(D)、BCNF3、假设有关系R(A,B,C)和关系S(C,D)。与SQL语句:selectA,B,DfromR,SwhereR.C=S.C等价的关系代数表达式是()(A)、σR.C=S.C(πA,B,D(RXS))(B)、πA,B,D(σR.C=S.C(RXS))(C)、σR.C=S.C(πA,B(R)XπD(S))(D)、σR.C=S.C(πD(πA,B(R)XS))4、在数据库应用中,一般一条SQL语句可产生或处理一组记录,而宿主语言,如C语言,一条语句一般一次只能处理一条记录,它们之间的协调可通过哪种技术实现()(A)、指针(B)、游标(C)、数组(D)、栈5、在SQL语言的SELECT语句中,实现投影操作是哪个子句?()(A)、SELECT(B)、FROM(C)、WHERE(D)、GROUPBY6、在具有检查点的故障恢复技术中,下面哪个事务不需要REDO()。(A)、T1(B)、T2(C)、T3(D)、T4第2页共8页7、下列哪一个允许用户定义新关系时,引用其他关系的主码作为外码()(A)、INSERT(B)、DELETE(C)、REFERENCES(D)、SELECT8、如果有两个事务,同时对数据库中同一个数据进行操作,不会引起冲突的操作是()(A)、一个是DELETE,一个是SELECT(B)、一个是UPDATE,一个是SELECT(C)、两个都是UPDATE(D)、两个都是SELECT9、SQL语言中的COMMIT语句的主要作用是()(A)、结束程序(B)、返回系统(C)、提交事务(D)、存储数据10、在E-R模型向关系模型转换时,M:N的联系转换为关系模式时,其候选码是()(A)、M端实体的候选码(B)、N端实体的候选码(C)、M、N端实体的候选码组合(D)、重新选取其他属性11、若用如下的SQL语句创建一个表SC:CREATETABLESC(S#char(6)NOTNULL,C#char(3)NOTNULL,SCOREint,NOTEchar(20));Tc检查点Tf系统故障T1T2T3T4第3页共8页向表SC插入如下记录行时,()可以被插入。(A)、(‘201009’,‘111’,60,NULL)(B)、(200823,101,NULL,‘必修’)(C)、(NULL,‘103’,80,‘必修’)(D)、(‘201132’,NULL,86,NULL)12、在数据库中,数据的物理独立性是指()。(A)、数据库与数据库管理系统的相互独立(B)、用户程序与DBMS的相互独立(C)、用户的应用程序与存储在磁盘上数据库中的数据是相互独立的(D)、应用程序与数据库中数据的逻辑结构相互独立13、下面列出的关于视图的条目中,不.正确的是()。(A)、视图是外模式(B)、视图是虚表(C)、使用视图可以加快查询语句的执行速度(D)、使用视图可以简化查询语句的编写14、假如采用关系数据库系统来实现应用,在数据库设计的()阶段,需要将E-R模型转换为关系数据模型。(A)、概念设计(B)、逻辑设计(C)、物理设计(D)、运行阶段15、设有关系R(书号,书名),如果要检索第3个字母为M,且至少包含4个字母的书名,则SQL查询语句中WHERE子句的条件表达式应写成:Where书名LIKE()。(A)、‘__M_’(B)、‘__M%’(C)、‘__M_%’(D)、‘_%M__’二、简答题(每小题5分,共10分)1、进行数据库系统需求分析时,数据字典的内容和作用是什么?答:数据字典是各类数据描述的集合,通常包括数据项.数据结构.数据流.数据存储和处理过程5个部分。数据字典有助于数据的管理和控制,为设计人员和数据库管理员在数据库设计.实现和运行阶段控制有关数据提供依据。2、什么是事务?怎样保证多个事务并发执行是正确的?答:事务是用户定义的数据操作系列,这些操作作为一个完整的工作单元,第4页共8页一个事务内的所有语句被作为一个整体,要么全部执行,要么全部不执行。多个事务的并发执行是正确的,当且仅当其运行结果与按照某一顺序的串行执行的结果相同。两段锁协议是实现可串行化调度的充分条件。三、综合应用题(60分)1、(21分)已知一个公司的职工-社团数据库有三个基础表:职工:E(Eno,Ename,Age,Sex),属性依次是:职工号,职工名,年龄,性别。社团:C(Cno,Cname,Manager,Address),属性依次是:社团号,社团名,负责人职工号,社团地址参加:EC(Eno,Cno,Date),属性依次是:职工号,社团号,参加社团的日期用关系代数表示下列查询:(1)查找张力所参加社团的社团名和参加日期。πCname,Date(πEno(бEname=’张力’(E))ECC)(2)查找参加了全部社团的职工号和职工名。πEno,Ename(E)(πEno,Cno(EC)÷πCno(C))(3)查找每个社团的社团名,负责人姓名,负责人性别。πCname,Ename,Sex(бEno=Manager(E×C))用SQL语句表示下列查询:(4)查找年龄大于职工平均年龄的职工号,职工名和年龄。SELECTEno,Ename,AgeFROMEWHEREAge(SELECTAVG(Age)FROME)(5)查找参加人数最多的社团号和参加人数。SELECTCno,COUNT(*)AS‘人数’第5页共8页FROMECGROUPBYCnoHAVINGCOUNT(*)=ALL(SELECTCOUNT(*)FROMECGROUPBYCno)(6)查找没有参加任何社团的职工情况。SELECT*FROMEWHEREEnoNOTIN(SELECTEnoFROMEC)(7)查找全体职工都参加的社团号和社团名。SELECTCno,CnameFROMCWHERENOTEXISTS(SELECT*FROMEWHERENOTEXISTS(SELECT*FROMECWHEREC.Cno=EC.CnoANDE.Eno=EC.Eno))2、(4分)设关系R、S、W如图所示:计算关系代数表达式:T=(R∩S)πB,E,D(W)的结果。答:第6页共8页3、(6分)假设有下面两个关系模式:职工(职工号,姓名,年龄,职务,工资,部门号),其中职工号为主码;部门号为外码。部门(部门号,名称,经理名,电话),其中部门号为主码,经理名为外码请用SQL语言定义这两个关系模式,要求在关系模式中完成以下完整性约束条件的定义:(1)定义每个模式的主码;(2)定义参照完整性;职工关系模式中的部门号属性参照部门关系模式中的主码部门号;部门关系模式中的经理名属性参照职工关系模式中的姓名属性。(3)定义职工年龄不超过60岁。答:CREATETABLE职工(职工号CHAR(5)PRIMARYKEY,姓名CHAR(8)NOTNULL,年龄SMALLINT,职务CHAR(10),工资DECIMAL(7,2),部门号CHAR(5),CONSTRAINTCICHECK(年龄<60),CONSTRAINC2FOREIGNKEY(部门号)REFEENCES部门(部门号));CREATTABLE部门(部门号CHAR(5)PRIMARYKEY,名称CHAR(20),经理名CHAR(8),电话CHAR(8),CONSTRAINTC3FOREIGNKEY(经理名)REFERECES职工(姓名));4、(10分)有一个应用系统的数据库包括三个实体集。一个是“商店”实体集,其属性有:商店编号,店名,店址,店经理。一个是“会员”实体集,其属性有:会员编号,会员名,地址。一个是“职工”实体集,其属性有:职工第7页共8页编号,职工名,性别,工资。每家商店有若干职工,但每个职工只能服务于一家商店。每家商店有若干会员,每个会员可以属于多家商店。在商店和职工的联系中应反映出职工参加某商店工作的开始时间,在商店和会员的联系中应反映出会员的加入时间。(1)根据上述语义画出E-R图,在E-R图中需注明实体型的属性、联系的类型。(2)将E-R图转换成关系模式,要求每个关系模式要规范到第三范式,并指出每个关系模式的主键和外键。答:(1)(2)商店模式(商店编号,店名,店址,店经理)主键:商店编号职工模式(职工编号,职工名,性别,工资,商店编号,参加工作时间)主键:职工编号外键:商店编号会员模式(会员编号,会员名,地址)主键:会员编号SM模式(会员编号,商店编号,会员加入时间)主键:(会员编号,商店编号)外键:会员编号;外键:商店编号5、(10分)设有三个事务T1、T2、T3,所包含的操作为:T1:A=A+2;T2:A=A*2;T3:A=A*A;设A的初始值为1,请回答下列问题:(1)假定这三个事务允许并发执行,则有多少种可能的正确结果,请一一列出。(2)若这三个事务都遵守两段锁协议,给出一个不产生死锁的可串行化调度。答:(1)总共有6种可能的正确结果:第8页共8页T1T2T3:36;T1T3T2:18;T2T1T3:16;T2T3T1:6;T3T1T2:6;T3T2T1:4(2)T1T2T3Xlock(A)Xlock(A)Xlock(A)Read(A=1)等待等待A=A+2等待等待Wrtie(A=3)等待等待COMMIT等待等待Unlock(A)等待等待Read(A=3)等待A=A*2等待Write(A=6)等待COMMIT等待Unlock(A)等待Read(A=6)A=A*AWrite(A=36)COMMITUnlock(A)6、(9分)请回答以下问题:(1)、在关系数据理论中,1NF、2NF、3NF分别对关系模式有何要求?(2)、若已知关系模式SL(SNO,SDEPT,SLOC),其中SNO为主码,函数依赖有:SNO→SDEPT,SDEPT→SLOC,请判断SL是否满足3NF?为什么?(1)1NF要求关系模式中的每个属性都是不可再分;2NF要求关系模式中的每个非主属性完全函数依赖于码;3NF要求关系模式中的每个非主属性既不部分依赖于码也不传递依赖于码。(2)SL不满足3NF,它属于2NF。因为SNO→SDEPT,SDEPT→SLOC,而SDEPT→SNO,所以SLOC传递函数依赖于SNO。1-5:DBBBA6-10:ACDCC11-15:ACCBC