并发控制封锁习题微.pdf
并发控制——习题
一、填空题
1、DB并发操作通常会带来三类问题,它们是丢失更新、(不可重复
读)和读脏数据
2、一般分为两种排它型,X和(共享型,S)
3、一级协议可解决(丢失修改)的问题。
4、三级协议可解决(不可重复读)的问题。
6、二级协议是一级协议加上事务在数据A之前必须
先对其加(S锁),读完后即可释放S锁。二级不仅可以解决
“丢失修改”问题,而且可以解决(读“脏“数据问题)。
二、选择题
1、为解决“丢失更新”问题,事务在更新一个数据集合前,必须获得
对它的(B)
A、S锁B、X锁C、S锁和X锁D、S锁或X锁
2、下面哪一级协议既可以解决读脏数据又可以解决重复读问题
(C)
A、一级协议B、二级协议
C、三级协议D、两段锁协议
3、在一级协议的基础上,另外加上事务T在数据对象A前
必须对其加S锁,读完后立即释放。这是(B)。
A、一级协议B、二级协议
C、三级协议D、零级协议
4、下面哪一级协议可以解决丢失修改问题(A)
A、一级协议B、二级协议
C、三级协议D、零级协议
三、分析题
1、设有两个事务T1、T2,其并发操作会带来哪一种数据不一致性问
题?如何使用三级协议加以解决?
答:本题并发操作带来数据不一致性问题为丢失修改,采用一级
协议来觖决该问题:事务T1在读A进行修改之前先对A加X锁,T1
A。当T2再请求对A加X锁时被。T2只能等待T1释放A
上的锁后T2获得对A的X锁。当T2读到A已经是T1更新过的值,
按此新A值进行运算并将结果送回磁盘,避免丢失T1的更新。这样
就解决了并发操作带来数据的丢失修改问题。
2、设有两个事务T1、T2,其并发操作会带来哪一种数据不一致性问
题?如何使用三级协议加以解决?
答:本题并发操作带来数据不一致性问题为读“脏”数据,采用二级
协议来觖决该问题:事务T1在对A进行修改之前,先对A加X
锁,修改其值后写回磁盘。T2请求在A上加S锁,因T1已在A
上加了X锁,T2只能等待。T1因某种被撤销,A恢复为原值100。
T1释放A上的X锁后T2获得A上的S锁,读A=100,避免了T2读
“脏”数据。
3、设有两个事务T1、T2,,其并发操作会带来哪一种数据不一致性问
题?如何使用三级协议加以解决?
答:本题并发操作带来数据不一致性问题不可重复读,采用三级
协议来觖决该问题:事务T1在读A之前,先对A加S锁;其他事务只
能再对A加S锁,而不能加X锁,即其他事务只能读A,而不能修改。
当T2为修改A而申请对A的X锁时被只能