1、第一学期期末考试试卷和答案试卷代码:03115A 授课课时:96课程名称:数据库系统原理 适用对象:本科选课班一、选择题(从下列各题四个答案中选出一个正确答案,每小题1分,共10分)1、在数据库技术发展的几个阶段中,数据独立性最高的是_阶段。A、 数据库系统 B、文件系统 C、人工管理 D、数据项管理2、在SQL的SELECT语句中,与选择运算对应的命令动词是_。A、SELECT B、FROM C、WHERE D、ORDER BY3、在数据库中,下列说法_是不正确的A、数据库避免了一切数据的重复B、若系统是完全可以控制的,则系统可确保更新的一致性C、数据可以共享D、数据库减少了冗余4、在数据库
2、系统中,模式/外模式映像用于解决数据的_A、结构独立性 B、物理独立性C、逻辑独立性 D、分布独立性5、关系代数的5种基本运算是_。A、并、差、选择、投影、自然连接B、并、差、交、选择、投影C、并、差、交、选择、笛卡尔积D、并、差、选择、投影、笛卡尔积6、在SQL语句中,谓词“EXISTS”的含义是_。A、全称量词 B、存在量词 C、自然连接 D、等值连接7、规范化过程主要为克服数据库逻辑结构中的插入异常、删除异常、更新异常以及_的缺陷A、 数据不一致性 B、结构不合理 C、冗余度大 D、数据丢失8、数据库数据的正确性和相容性是数据库的_。A、安全性 B、可维护性 C、完整性 D、并发控制9、
3、数据库三级模式体系结构主要的目标是确保数据库的_。A、数据安全性 B、数据独立性C、最小冗余 D、数据结构规范化10、后援副本的用途是_。A、安全性保障 B、一致性控制 C、故障后的恢复 D、数据的转储二、简答题(回答要点,并简明扼要作解释。每题5分,共20分)1、简述数据库系统从哪些方面来保证数据的完整性。2、简述事务的ACID特性。3、简述并发控制不当带来的数据不一致性问题。4、简述数据库系统从哪些方面来保证数据的安全性。三、编程与关系运算(每题5分,共20分)设有四个关系学生表(学号char(5),姓名varchar(10),姓别char(2),所属系varchar(20))Studen
4、t(sno,sname,sex,dept)课程表(课程号char(3),课程名varchar(20),先修课程char(3),学分tinyint,任课教师char(5))Course(cno,cname,precno,ceredit,tno)教师表(教师号char(5),教师名称varchar(10),姓别char(2))Teacher(tno,tname,sex)选课表(学号char(5)、课程号char(3),成绩tinyint)SC(sno,cno,grade)1、 编写一个触发器,当对学生表进行修改时其性别只能是男和女。2、 编写一个存储过程,依据输入的学号参数,统计该学生的平均分和总
5、分,要求使用游标,不可以使用sum和avg命令。3、 使用关系代数语言查询选修了刘红老师所授的所有课程的同学学号。4、 使用元组演算语言查询同时选修了001和002两门课程号的同学姓名。四、综合设计题(共40分)1、已知:关系模式R(U,F)U=ABCD F=AC,CA, BAC,DAC 求:(1)(AD)F+ ,R的候选码。(5分)(2)求F的最小函数依赖集,并使用算法将模式R无损连接且保持函数依赖分解到3NF。(5分)2、设有关系模式R,U=A,B,C,D,E,F=AD,ED,DB,BCD,CDAB,设有一个分解P=R1(ED),R2(BCD),R3(ACD)判断该分解是否保持函数依赖,并
6、判断此分解是否具有无损连接性。(10分)3、对于关系模式R(D,B,I,S,Q,O),设有两个函数依赖集F和G,其中F=SD,IB, ISQ,BOG= SD,IB, ISQ,BO ,IO 试判断F和G是否等价。(5分)4、数据库设计:设计一个图书馆数据库,此数据库中保存有读者记录,包括读者号、姓名、地址、出生日期、单位。每本图书有书号、书名、作者、出版社。一本书有多个作者。对每本借出的书有借出日期和应还日期。一个读者可以借多本书。要求:1)画出E-R图(5分)2)根据需要可以增加属性,转换为满足3NF的关系模式(5分)3)给出主键约束和外键约束(5分)4)注:关系名和属性名用汉字五、优化与并发
7、(每题5分,共10分)1、设有二个事务T、U,下面的并发操作是否正确,若不正确请使用时间戳方法解决其冲突,设Ts(T)Ts(U)。(5分)TURead(b)Write(b=b-300)Read(b)Write(b=b+300)2、优化中的算法描述:根据排序合并算法描述下列查询操作的实现。(5分)select a.cust_id,b.tot_amt,b.order_date,a.tel_nofrom customer a ,sales bwhere a.cust_id=b.cust_id 第一学期期末考试试卷答案试卷代码:03115 授课课时:96课程名称:数据库系统原理A 适用对象:本科选课班
8、一、选择题(从下列各题四个答案中选出一个正确答案,每小题1分,共10分)1、在数据库技术发展的几个阶段中,数据独立性最高的是_A_阶段。A、数据库系统 B、文件系统 C、人工管理 D、数据项管理2、在SQL的SELECT语句中,与选择运算对应的命令动词是_C_。A、SELECT B、FROM C、WHERE D、ORDER BY3、在数据库中,下列说法_A_是不正确的A、数据库避免了一切数据的重复B、若系统是完全可以控制的,则系统可确保更新是的一致性C、数据可以共享D、数据库减少了冗余4、在数据库系统中,模式/外模式映像用于解决数据的_C_A、结构独立性 B、物理独立性C、逻辑独立性 D、分布
9、独立性5、关系代数的5种基本运算是_D_。A、并、差、选择、投影、自然连接B、并、差、交、选择、投影C、并、差、交、选择、笛卡尔积D、并、差、选择、投影、笛卡尔积6、在SQL语句中,谓词“EXISTS”的含义是_B_。A、全称量词 B、存在量词 C、自然连接 D、等值连接7、规范化过程主要为克服数据库逻辑结构中的插入异常、删除异常、更新异常以及_C_的缺陷A、数据不一致性 B、结构不合理 C、冗余度大 D、数据丢失8、数据库数据的正确性和相容性是数据库的_B_。A、安全性 B、可维护性 C、完整性 D、并发控制9、数据库三级模式体系结构主要的目标是确保数据库的_B_。A、数据安全性 B、数据独
10、立性C、最小冗余 D、数据结构规范化10、后援副本的用途是_C_。A、安全性保障 B、一致性控制 C、故障后的恢复 D、数据的转储评分标准: 每题1分二、简答题(回答要点,并简明扼要作解释。每题5分,共20分)1、简述数据库系统从哪些方面来保证数据的完整性。列级约束:数据类型、宽度、缺省值、检查约束、是否空值、唯一约束主键约束、外键约束、用户自定义约束:主要通过触发器完成评分标准:) 写出列级约束 2分) 写出主键约束 1分) 写出外键约束 1分) 写出用户自定义约束 1分2、简述事务的ACID特性原子性(A):事务中的操作要么全做,要么一个也不做一致性(C):事务执行的结果必须是使数据库从一
11、个一致性状态变到另一个一致性状态隔离性(I):一个事务的执行不能被其它事务干扰持续性(D):一个事务一旦提交,它对数据库中数据的修改应该是永久的评分标准:) 写出原子性 1分) 写出隔离性 1分) 写出一致性 2分) 写出持续性 1分3、简述并发控制不当带来的数据不一致性问题丢失修改:两个事务T1和T2读入同一数据并修改,T2提交的结果破坏了T1的结果,导致T1的修改被丢失不可重复读: 是指事务T1读取数据后,事务T2执行更新操作,使T1无法再现前一次读取结果读“脏”数据: 是指事务T1修改某一数据,并将其写回磁盘,事务T2读取同一数据后,T1由于某种原因被撤销,这时T1已修改过的数据恢复原值
12、,T2读到的数据就与数据库中的数据不一致。则T2读到了“脏”数据,即不正确的数据。产生上述三类数据不一致性的主要原因是并发操作破坏了事务的隔离性。评分标准:) 写出丢失修改 1分) 写出不可重复读 1分) 写出读“脏”数据 2分) 写出主要原因 1分4、简述数据库系统从哪些方面来保证数据的安全性。身份认证:提供用户标识和密码的确认用户操作对象的权限:通过授权机制视图:只显示用户可以作用的属性及记录存储过程:通过存储过程实现对不具有操作权限的数据评分标准:) 写出用户身份认证 2分) 写出用户操作对象的权限 1分) 写出视图 1分) 写出存储过程 1分三、编程与关系运算(每题5分,共20分)设有
13、四个关系学生表(学号char(5),姓名varchar(10),姓别char(2),所属系varchar(20))Student(sno,sname,sex,dept)课程表(课程号char(3),课程名varchar(20),先修课程char(3),学分tinyint,任课教师char(5))Course(cno,cname,precno,ceredit,tno)教师表(教师号char(5),教师名称varchar(10),姓别char(2))Teacher(tno,tname,sex)选课表(学号char(5)、课程号char(3),成绩tinyint)SC(sno,cno,grade)5
14、、 编写一个触发器,当对学生表进行修改时其姓别只能是男和女。create trigger StudentUpdateon Studentfor update asbegin if exists (select * from inserted where sex not in (男,女) rollback end评分标准:) 写出create trigger on Student1分) 写出for update 1分) 写出if exists (select * from inserted where sex not in (男,女) 分) 写出rollback 1分6、 编写一个存储过程,依据
15、输入的学号参数,统计该学生的平均分和总分,要求使用游标,不可以使用sum和avg命令。create procedure SearchSumBySno(sno char(5)asbegin declare sum int,avg numeric(5,1),grade tinyint,count tinyint select sum=0,count=0 declare myCursor cursor for select grade from sc where sno=sno open myCursor fetch myCursor into grade while(fetch_status=0)
16、 begin select sum=sum+grade select count=count+1 fetch myCursor into grade end close myCursor deallocate myCursor if count=0 select 0 总分,0 平均分 else begin select avg=sum/count select sum 总分, avg 平均分 endend评分标准:)定义游标1分) 定义变量1分) 给变量赋值1分) 游标的打开、获取和关闭1分) 循环条件1分7、 使用关系代数语言查询选修了刘红老师所授的所有课程的同学学号。sno,cno(SC)
17、cno(tname=刘红 (Teacher)Course)评分标准:)tname=刘红 (Teacher)1分)与Course表的连接 1分)作除法运算 2分)括号正确1分8、 使用元组演算语言查询同时选修了001和002两门课程号的同学姓名。t|uvw(Student(u)SC(v) SC(w) v2=001w2=002v1=w1 u1=v1 t1=u2)评分标准:)写出存在量词1分)写出自表连接运算v1=w1 u1=v1 2分)写出选取条件v2=001w2=0021分)写出投影运算t1=u2 1分四、综合设计题(共40分)1、已知:关系模式R(U,F)U=ABCD F=AC,CA, BAC
18、,DAC 求:(1)(AD)F+ ,R的候选码。(5分)(2)求F的最小函数依赖集,并使用算法将模式R无损失连接且保持函数依赖分解为3NF。(5分)解:(1)(AD)F+=ADC,候选码:BD(2)最小函数依赖集:Fmin=AC,CA,BA,DA,将模式R无损失连接且保持函数依赖分解为3NF,P=AC,BA,DA,BD。评分标准:(1)(AD)F+=ADC (2分)(2)候选码:BD(3分)(3)F的最小函数依赖集是(2分)(4)P=AC,BA,DA,BD(3分)2、设有关系模式R,U=A,B,C,D,E,F=AD,ED,DB,BCD,CDAB,设有一个分解P=R1(ED),R2(BCD),R
19、3(ACD)判断该分解是否保持函数依赖,并判断此分解是否具有无损连接性。(10分)解 :(1)求出F的最小函数依赖集F=AD,ED,DB,BCD,CDA又因为: F+ =( Fi)+,则R的分解=R1,R2,R3保持函数依赖。所以,该分解能保持函数依赖关系。(5分)(2)又因为:ABCDER1b11a2b13a4a5R2a1a2a3a4b25R3a1a2a3a4b35可以得到没有一行全为a,所以该分解为有损分解。(5分)3、对于关系模式R(D,B,I,S,Q,O),设有两个函数依赖集F和G,其中F=SD,IB, ISQ,BO G= SD,IB, ISQ,BO ,IO 试判断F和G是否等价。(5
20、分)解:因为F G+,G F+ 所以F和G等价。评分标准:1)F G+ (2分)2)G F+ (2分) 3)F和G等价 (1分)4、数据库设计:设计一个图书馆数据库,此数据库中保存有读者记录,包括读者号、姓名、地址、出生日期、单位。每本图书有书号、书名、作者、出版社。一本书有多个作者。对每本借出的书有借出日期和应还日期。一个读者可以借多本书。要求:1)画出E-R图(5分)2)根据需要可以增加属性,转换为满足3NF的关系模式(5分)3)给出主键约束和外键约束(5分)4)关系名和属性名用汉字)画出E-R图读者图书借书读者号读者名地址年龄单位图书号图书名作者出版社借出日期应还日期 m n评分标准:)
21、绘出两个实体2分)绘出一个联系1分)每个实体、联系的属性3分)根据需要可以增加属性,转换为满足3NF的关系模式读者关系(读者号、读者名称、地址、出生日期、单位)图书关系(图书号、图书名、出版社、出版日期)图书-作者关系(图书号、作者名称、作者所在单位)借书主关系(借书号、读者号、借书日期、应还日期)借书明细关系(借书号、图书号)评分标准:每个关系1分)给出主键约束和外键约束读者关系:主键:读者号图书关系:主键:图书号图书-作者关系: 主键:图书号+作者名称外键:图书号借书主关系:主键:借书号借书明细关系:主键:借书号、图书号外键1:借书号,外键2:图书号评分标准:给出主键3分给出外键2分五、优
22、化与并发(每题5分,共10分)1、设有二个事务T、U,下面的并发操作是否正确,若不正确请使用时间戳方法解决其冲突,设Ts(T)Ts(U)。(8分)TURead(b)Write(b=b-300)Read(b)Write(b=b+300)答: 并发操作不正确,可以使用时间戳方法解决其冲突。数据bT事务 U事务读时标写时标操作 00 t10T读b t20 U读bt2t2 U更新b t2t2T更新b(不允许,因t1t2) t2t2 回退T并赋予新时标t3 t3t2T读b t3t3T更新b正确的调度:T事务U事务Read(b)Write(b=b+300)Read(b)Write(b=b-300)评分标准
23、:1)并发操作不正确,可以使用时间戳方法解决其冲突。(1分)2)时标表(3分)3)正确的调度(1分)2、优化中的算法描述:根据排序合并算法描述下列查询操作的实现。(5分)select a.cust_id,b.tot_amt,b.order_date,a.tel_nofrom customer a ,sales bwhere a.cust_id=b.cust_id 解:首先对customer 和sales 按连接属性cust_id排序;取customer表中第一个cust_id,依次扫描sales表中具有相同cust_id的元组,把它们连接起来;当扫描到cust_id不相同的第一个sales元组时,返回customer表扫描它的下一个元组,再扫描sales表中具有相同cust_id的元组,把它们连接起来;重复上述步骤直到customer表扫描完。评分标准:1)写出第步 1分2)写出第步 1分3)写出第步 2分4)写出第步 1分