数据库原理及应用(第二版)人民邮电出版社出版 - 习题参考答案 下载本文

·33· 职务性别年龄职工m属于联系电话办公地点1部门1管理设备号设备名规格价格m设备m职工编号姓名身份地址部门号部门名电话厂商号厂商m生产n装配n零件厂商名生产日期零件号零件名规格零件数量价格

关系模式(主码用下划线标识)

部门(部门号,部门名,联系电话,办公地点)

职工(职工编号,姓名,身份,职务,性别,年龄,所属部门号),所属部门号为引用部门的外码 设备(设备号,设备名,规格,价格,被管部门号),被管部门号为引用部门的外码 零件(零件号,零件名,规格,价格) 厂商(厂商号,厂商名,地址,电话) 装配(设备号,零件号,零件数量),设备号为引用设备的外码,零件号为引用零件的外码 生产(厂商号,零件号,生产日期)或 生产(厂商号,零件号,生产日期)

33

·34·

第8章 事务与并发控制

一. 选择题

1. 如果事务T获得了数据项A上的排他锁,则其他事务对A D

A.只能读不能写 B.只能写不能读 C.可以写也可以读 D.不能读也不能写

2. 设事务T1和T2执行如图8-15所示的并发操作,这种并发操作存在的问题是 B

时间 ① ② 事务T1 读A=100,B=10 读A=100 A=A*2=200 写回A=200 ③ ④ 计算A+B 读A=100,B=10 验证A+B 图8-15 并发操作

事务T2 A.丢失修改 C.读脏数据 B.不能重复读 D.产生幽灵数据

3. 下列关于数据库死锁的说法,正确的是 C

A.死锁是数据库中不可判断的一种现象

B.在数据库中防止死锁的方法是禁止多个用户同时操作数据库 C.只有允许并发操作时,才有可能出现死锁

D.当两个或多个用户竞争相同资源时就会产生死锁 4. 下列不属于事务特征的是

A.完整性 C.隔离性

A

B.一致性 D.原子性

A

5. 若事务T对数据项D已加了S锁,则其他事务对数据项D

A.可以加S锁,但不能加X锁 B.可以加X锁,但不能加S锁 C.可以加S锁,也可以加X锁 D.不能加任何锁

6. 在数据库管理系统的三级封锁协议中,二级封锁协议的加锁要求是 C

A.对读数据不加锁,对写数据在事务开始时加X锁,事务完成后释放X锁 B.读数据时加S锁,读完即释放S锁;写数据时加X锁,写完即释放X锁

C.读数据时加S锁,读完即释放S锁;对写数据是在事务开始时加X锁,事务完成后释放X锁 D.在事务开始时即对要读、写的数据加锁,等事务结束后再释放全部锁 7. 在数据库管理系统的三级封锁协议中,一级封锁协议能够解决的问题是

A.丢失修改 B.不可重复读 C.读脏数据 D.死锁

34

A

·35· 8. 若系统中存在4个等待事务T0、T1、T2和T3,其中T0正等待被T1锁住的数据项A1,T1正等

待被T2锁住的数据项A2,T2正等待被T3锁住的数据项A3, T3正等待被T0锁住的数据项A0。则此时系统所处的状态是 B

A.活锁 B.死锁 C.封锁 D.正常 9. 事务一旦提交,其对数据库中数据的修改就是永久的,以后的操作或故障不会对事务的操作结

果产生任何影响。这个特性是事务的 D

A.原子性 B.一致性 C. 隔离性 D.持久性 10. 在多个事务并发执行时,如果事务T1对数据项A的修改覆盖了事务T2对数据项A的修改,

这种现象称为 A

A.丢失修改 B.读脏数据 C.不可重复读 D.数据不一致 11. 在多个事务并发执行时,如果并发控制措施不好,则可能会造成事务T1读了事务T2的“脏”

数据。这里的“脏”数据是指 D

A.T1回滚前的数据 B.T1回滚后的数据 C.T2回滚前的数据 D.T2回滚后的数据 12. 在判断死锁的事务等待图中,如果等待图中出现了环路,则说明系统 B

A.存在活锁 B.存在死锁 C.事务执行成功 D.事务执行失败

二. 填空题

1.为防止并发操作的事务产生相互干情况,数据库管理系统采用加锁机制来避免这种情况。锁的类型包括______和______。 共享锁(或S锁) 排他锁(或X锁)

2.一个事务可通过执行______语句来取消其已完成的数据修改操作。 ROLLBACK 3.事务应对要读取的数据加______锁,对要修改的数据加______锁。

共享(或S) 排他(或X)

4.要求事务在读数据项之前必须先对数据项加S锁,直到事务结束才释放该锁的封锁协议是______级封锁协议。 三

5.假设有两个事务T1和T2,它们要读入同一数据并进行修改,如果T2提交的结果覆盖了T1提交的结果,导致T1修改的结果无效。这种现象称为______。 丢失修改 6.在数据库环境下,进行并发控制的主要方式是_____。 加锁

7.如果总是将事务为两个阶段,一个是加锁期,一个是解锁期,在加锁期不允许解锁,在解锁期不允许加锁,则将该规定称为_____。 两段锁协议

8.如果并发执行的所有事务都遵守两段锁协议,则这些事务的任何并发调度一定是_____。 可串行化的

9.一个事务只要执行了_____语句,其对数据库的操作就是永久的。 COMMIT

10.在单CPU系统中,如果存在多个事务,则这些事务只能交叉地使用CPU,将这种并发方式称为_____。 交叉并发

三. 简答题

5.设有如下三个事务:

35

·36· T1:B = A + 1; T2:B = B * 2; T3:A = B + 1

(1)设A的初值为2,B的初值为1,如果这三个事务并发的执行,则可能的正确的执行结果有哪些?

T1?T2?T3:A=7, B=6 T1?T3?T2:A=4, B=8 T2?T1?T3:A=4, B=3 T2?T3?T1:A=3, B=4 T3?T1?T2:A=2, B=6 T3?T2?T1:A=2, B=3

(2)给出一种遵守两段锁协议的并发调度策略。

6.设有如图8-16所示的两个事务的调度过程,根据此图完成下列各题。

(1)写出事务T1和T2包含的操作。 T1:A = B+20 T2:B =A +30

(2)事务T1、T2开始之前B的初值是多少? B = 100

(3)设A的初值为20,则这两个事务所有可能的正确执行结果有哪些?

T1?T2:A = 120,B = 150 T2?T1:A = 70,B = 50

(4)该调度方式是否遵守两段锁协议? 是

36

图8-16 事务调度图