1、 第一学期期末考试试卷和答案 试卷代码: 03115 授课课时: 96 课程名称: 数据库系统原理 A 适用对象: 本科选课班 一、选择题 (从下列各题四个答案中选出一个正确答案,每小题 1 分,共 10 分) 1、在数据库技术发展的几个阶段中,数据独立性最高的是 _A_阶段。 A、数据库系统 B、文件系统 C、人工管理 D、数据项管理 2、在 SQL 的 SELECT 语句中,与选择运算对应的命令动词是 _C_。 A、 SELECT B、 FROM C、 WHERE D、 ORDER BY 3、在数据库中,下列说法 _A_是不正确的 A、数据库避免了一切数据的重复 B、若系统是完全可以控制的
2、,则系统可确保更新是的一致性 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、后援副本的用途是 _C_。 A、安全性保障 B、一致性控制 C、故障后的恢复 D、
4、数据的转储 评分标准: 每题 1分 二、简答题( 回答要点,并简明扼要作解释。 每题 5 分,共 20 分) 1、简述数据库系统从哪些方面来保证数据的完整性。 列级约束:数据类型、宽度、缺省值、检查约束、是否空值、唯一约束 主键约束、 外键约束、 用户自定义约束:主要通过触发器完成 评分标准: ) 写出列级约束 2 分 ) 写出主键约束 1 分 ) 写出外键约束 1 分 ) 写出用户自定义约束 1 分 2、简述 事务的 ACID 特性 原子性( A):事务中的操作要么全做,要么一个也不做 一致性( C):事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态 隔离性( I):一个事务
5、的执行不能被其它事务干扰 持续性( D):一个事务一旦提交,它对数据库中数据的修改应该是永久的 评分标准: ) 写出原子性 1分 ) 写出隔离性 1分 ) 写出一致性 2分 ) 写出持续性 1分 3、简述并发控制不当带来的数据不一致性问题 丢失修改: 两 个事务 T1和 T2读入同一数 据并修改, T2 提交的结果破坏了 T1 的结果,导致 T1的修改被丢失 不可重复读: 是指事务 T1读取数据后,事务 T2 执行更新操作,使 T1 无法再现前一次读取结果 读 “ 脏 ” 数据 : 是指事务 T1 修改某一数据,并将其写回磁盘,事务 T2 读取同一数据后, T1由于某种原因被撤销,这时 T1已
6、修改过的数据恢复原值, T2 读到的数据就与数据库中的数据不一致。则 T2读到了 “ 脏 ” 数据,即不正确的数据。 产生上述三类数据不一致性的主要原因是并发操作破坏了事务的隔离性。 评分标准: ) 写出丢失修改 1分 ) 写出不可重复 读 1分 ) 写出 读 “ 脏 ” 数据 2分 ) 写出 主要原因 1分 4、简述数据库系统从哪些方面来保证数据的安全性。 身份认证:提供用户标识和密码的确认 用户操作对象的权限:通过授权机制 视图:只显示用户可以作用的属性及记录 存储过程:通过存储过程实现对不具有操作权限的数据 评分标准: ) 写出用户身份认证 2 分 ) 写出用户操作对象的权限 1 分 )
7、 写出视图 1 分 ) 写出存储过程 1 分 三、编程与关系运算(每题 5 分,共 20 分) 设有四个关系 学生表(学号 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 StudentUpdate on Student for update as begin if exists (select * from inserted where sex not in (男 ,女 ) rollback end 评分标准: ) 写出 create trigger on Student 1 分 ) 写出 for
9、update 1 分 ) 写出 if exists (select * from inserted where sex not in (男 ,女 ) 分 ) 写出 rollback 1分 2、 编写一个 存储过程 ,依据输入的学号参数,统计该学生的平均分和总分,要求使用游标,不可以使用 sum 和 avg 命令。 create procedure SearchSumBySno(sno char(5) as begin declare sum int,avg numeric(5,1),grade tinyint,count tinyint select sum=0,count=0 declare
10、 myCursor cursor for select grade from sc where 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
11、sum 总分 , avg 平均分 end end 评分标准: )定义游标 1分 ) 定义变量 1 分 ) 给变量赋值 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(Stud
12、ent(u) SC(v) SC(w) v2= 001 w2= 002 v1=w1 u1=v1 t1=u2) 评分标准: )写出存在量词 1 分 )写出自表连接运算 v1=w1 u1=v1 2分 )写出选取条件 v2= 001 w2= 002 1分 )写出投影运算 t1=u2 1分 四、综合设计题(共 40 分) 1、已知:关系模式 R( U,F) U=ABCD F= A C,C A, B AC,D AC 求: ( 1)( AD) F+ , R的候选码。( 5分) ( 2)求 F的最小函数依赖集,并使用算法将模式 R无损失连接且保持函数依赖分解为 3NF。( 5分) 解: ( 1) ( AD)
13、F+=ADC,候选码: BD ( 2) 最小函数依赖集: Fmin= A C,C A,B A,D A , 将模式 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=A D, E D, D B, BC D, CD AB,设有一个分解 P=R1(ED), R2(BCD), R3(ACD)判断该分解是否 保持函数依赖,
14、并判断此分解是否具有无损连接性。( 10 分) 解 :( 1)求出 F的最小函数依赖集 F =A D, E D, D B, BC D, CD A 又因为: F + =( Fi)+,则 R的分解 =R1, R2, R3保持函数依赖。 所以,该分解能保持函数依赖关系。( 5分) ( 2)又因为: A B C D E R1 b11 a2 b13 a4 a5 R2 a1 a2 a3 a4 b25 R3 a1 a2 a3 a4 b35 可以得到没有一行全为 a,所以该分解为有损分解。( 5分) 3、对于关系模式 R(D,B,I,S,Q,O), 设有两个函数依赖集 F 和 G, 其中 F= S D, I
15、B, IS Q, B O G= S D, I B, IS Q, B O , I O 试 判断 F 和 G是否等价。( 5分) 解:因为 F G+, G F+ 所以 F和 G 等价。 评分标准: 1) F G+ ( 2 分 ) 2) G F+ ( 2 分 ) 3) F 和 G 等价 ( 1 分 ) 4、数据库设计: 设计一个 图书馆数据库 ,此数据库中保存有读者记录,包括读者号、姓名、地址、出生日期、单位。每本图书有书号、书名、作者、出版社。一本书有 多个作者。对每本借出的书有借出日期和应还日期。一个读者可以借多本书。要求: 1)画出 E-R 图 (5 分 ) 2)根据需要可以增加属性,转换为满
16、足 3NF 的关系模式 (5 分 ) 3)给出主键约束和外键约束 (5 分 ) 4)关系名和属性名用汉字 )画出 E-R图 m n 评分标准: )绘出两个实体 2分 )绘出一个联系 1分 )每个实体、联系的属性 3分 读者 图书 借书 读者号 读者名 地址 年龄 单位 图书号 图书名 作者 出版社 借出日期 应还日期 )根据需要可以增加属性,转换为满足 3NF 的关系模 式 读者关系(读者号、读者名称、地址、出生日期、单位) 图书关系(图书号、图书名、出版社、出版日期) 图书 -作者关系(图书号、作者名称、作者所在单位) 借书主关系(借书号、读者号、借书日期、应还日期) 借书明细关系(借书号、
17、图书号) 评分标准: 每个关系 1分 )给出主键约束和外键约束 读者关系: 主键:读者号 图书关系: 主键:图书号 图书 -作者关系: 主键:图书号 +作者名称 外键:图书号 借书主关系: 主键:借书号 借书明细关系: 主键:借书号、图书号 外键 1: 借书号,外键 2:图书号 评分标准: 给出主键 3 分 给出外键 2 分 五、优化与并发(每题 5 分,共 10 分) 1、 设有二个事务 T、 U,下面的并发操作是否正确,若不正确请使用时间戳方法解决其冲突,设 Ts( T)Ts(U)。( 8分) T U Read(b) Write(b=b-300) Read(b) Write(b=b+300
18、) 答: 并发操作不正确,可以使用时间戳方法解决其冲突。 数据 b T事务 U 事务 读时标 写时标 操作 0 0 t1 0 T 读 b t2 0 U 读 b t2 t2 U 更新 b t2 t2 T 更新 b(不允许,因 t1t2) t2 t2 回退 T并赋予新时标 t3 t3 t2 T 读 b t3 t3 T 更新 b 正确的调度: T事务 U 事务 Read(b) Write(b=b+300) Read(b) Write(b=b-300) 评分标准: 1)并发操作不正确 ,可以使用时间戳方法解决其冲突。( 1 分) 2)时标表( 3分) 3)正确的调度( 1 分) 2、优化中的算法描述:
19、根据排序 合并算法描述下列查询操作的实现。 (5 分 ) select a.cust_id,b.tot_amt,b.order_date,a.tel_no from customer a ,sales b where a.cust_id=b.cust_id 解: 首先对 customer 和 sales 按连接属性 cust_id 排序; 取 customer 表中第一个 cust_id,依次扫描 sales 表 中具有相同 cust_id 的元组,把它们连接起来; 当扫描到 cust_id不相同的第一个 sales元组时,返回 customer表扫描它的下一个元组,再扫描 sales表中具有
20、相同 cust_id 的元组,把它们连接起来; 重复上述步骤直到 customer 表扫描完。 评分标准: 1)写出第步 1 分 2)写出第步 1 分 3)写出第步 2 分 4)写出第步 1 分 试题二 一、单项选择题 ( 本大题共 20 小题,每小题 1.5 分,共 30 分 ) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1. 数据库系统与文件系统的主要区别是( ) A数据库系统复杂,而文件系统简单 B文件系统不能解决数据冗余和数据独立性问题,而数据库系统可以解决 C文件系统只能管理程序文件,而数据库系统能够管理各种类型的文件
21、 D文件系统管理的数据量较少,而数据库系统可以管理庞大的 数据量 2. 数据库管理系统能实现对数据库中数据的查询、插入、修改和删除等操作的数据库语言称为 ( ) A数据定义语言( DDL) B数据管理语言 C数据操纵语言( DML) D数据控制语言 3. 数据库的网状模型应满足的条件是 ( ) A允许一个以上 结点 无双亲,也允许一个结点有多个双亲 B必须有两个以上的结点 C有且仅有一个结点无双亲,其余结点都只有一个双亲 D每个结点有且仅有一个双亲 4. 数据的逻辑独立性是指( ) A 内模式改变,模式不变 B模式改变,内模式不变 C模式改变,外模式和应用程序不变 D内模式改变,外模式和应用程
22、序不变 5 设有关系模式 EMP(职工号,姓名,年龄,技能)。假设职工号唯一,每个职工有多项技能,则 EMP 表的主码是( ) A 职工号 B 姓名,技能 C 技能 D 职工号,技能 6 在关系代数中,对一个关系做投影操作后,新关系的元组个数( )原来关系的元组个数。 A小于 B小于或等于 C等于 D大于 7 设关系 R 和 S 的属 性个数分别是 2 和 3,那么 R S 等价于 ( ) 1 2 A 12(R S) B 14(R S) C 12(R S) D 14(R S) 8 学校数据库中有学生和宿舍两个关系: 学生(学号,姓名)和 宿舍(楼名,房间号,床位号,学号) 假设有的学生不住宿,
23、床位也可能空闲。如果要列出所有学生住宿和宿舍分配的情况,包括没有住宿的学生和空闲的床位,则应执行( ) A. 全外联接 B. 左外联接 C. 右外联接 D. 自然联接 9 用下面的 T-SQL 语句建立一个基本表: CREATE TABLE Student(Sno CHAR (4) NOT NULL, Sname CHAR (8) NOT NULL, Sex CHAR (2), Age SMALLINT) 得 分 阅卷人 复查人 可以插入到表中的元组是( ) A. 5021, 刘祥 ,男, 21 B. NULL, 刘祥 , NULL, 21 C. 5021, NULL,男, 21 D. 502
24、1, 刘祥 , NULL, NULL 10. 把对关系 SC 的属性 GRADE 的修改权授予用户 ZHAO 的 T-SQL 语句是( ) A. GRANT GRADE ON SC TO ZHAO B. GRANT UPDATE ON SC TO ZHAO C. GRANT UPDATE (GRADE) ON SC TO ZHAO D. GRANT UPDATE ON SC (GRADE) TO ZHAO 11. 图 1 中( )是关系完备的系统 A B C D 图 1 12 给定关系模式 SCP( Sno,Cno,P),其中 Sno 表示学号, Cno 表示课程号, P 表示名次。若每一名学
25、生每门课程有一定的名次,每门课程每一名次只有一名学生,则以下 叙述中错误的是( ) A.( Sno,Cno)和( Cno,P)都可以作为候选码。 B.( Sno,Cno)是唯一的候选码。 C. 关系模式 SCP 既属于 3NF 也属于 BCNF。 D. 关系模式 SCP 没有非主属性。 13 关系规范化中的删除操作异常是指 ( ) A不该删除的数据被删除 B不该插入的数据被插入 C应该删除的数据未被删除 D应该插入的数据未被插入 14 在数据库设计中,将 E R 图转换成关系数据模型的过程属于( ) A 需求分析阶段 B物理设计阶段 C逻辑设计阶段 D概念设计阶段 15 在合并分 E-R 图时
26、必须消除各分图中的不一致。各分 E-R 图之间的冲突主要 有三类,即属性冲突、命名冲突和结构冲突,其中命名冲突是指( )。 A命名太长或太短 B同名异义或同义异名 C属性类型冲突 D属性取值单位冲突 16事务的原子性是指( )。 A一个事务内部的操作及使用的数据对并发的其他事务是隔离的 -隔离性 B事务一旦提交,对数据库的改变是永久的 -持续性 C事务中包括的所有操作要么都做,要么都不做 - D事务必须是使数据库从一个一致性状态变到另一个一致性状态 -一致性 17. 若系统在运行过程中,由于某种硬件故障,使存储在外存上的数据部分损失或全部损失,这种情况称为 ( ) A事务故障 B系统故障 C介质故障 D运行故障 18 若事务 T 对数据对象 A 加上 S 锁,则 ( ) 。 A 事务 T 可以读 A 和修改 A,其它事务只能再对 A 加 S 锁,而不能加 X 锁。 B 事务 T 可以读 A 但不能修改 A,其它事务能对 A 加 S 锁和 X 锁。 C 事务 T 可以读 A 但不能修改 A,其它事务只能再对 A 加 S 锁,而不能加 X 锁。 D 事务 T 可以读 A 和修改 A,其它事务能对 A 加 S 锁和 X 锁。 19. 设有两个事务 T1、 T2,其并发操作如图 2 所示,下面评价正确的是 ( ) A.该操作不存在问题 B.该操作丢失修改