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