问题 单项选择题

下列叙述中,不正确的是( )。

A.封锁是保证数据库一致性的常用方法

B.封锁协议限制了可能的调度数目

C.封锁自身会产生死锁问题

D.强两阶段封锁协议就是严格两阶段封锁协议

答案

参考答案:D

解析: 封锁是实现并发控制的一个非常重要的技术。封锁自身可能产生死锁:如果事务T1封锁了数据R1,T2封锁了数据R2,然后T1又请求封锁R2,因T2已封锁了R2,于是T1等待T2释放R2上的锁;接着T2又申请封锁R1,因T1已封锁了R1,于是T2等待T1释放R1上的锁,这样就出现了循环等待,从而产生死锁。严格两阶段封锁协议除了要求封锁是两阶段之外,还要求事务持有的所有排他锁必须在事务提交之后方可释放,这个要求保证未提交事务所写的任何数据,在该事务提交之前均以排他锁封锁,防止其他事务读取这些数据;而强两阶段封锁协议,要求事务提交之前不得释放任何锁。使用锁机制的数据库系统,要么使用严格两阶段封锁协议,要么使用强两阶段封锁协议。

问答题
多项选择题