单选题 下列三级加锁协议的作用的说法中错误的是______。
  • A.一级加锁协议要求事务T在修改数据项Q之前必须先对Q加X锁,直到事务结束才释放该锁
  • B.二级加锁协议是在一级加锁协议基础上,要求事务T在读取数据项Q之前必须先对其加S锁,读完Q后可以立即释放S锁
  • C.三级加锁协议是在一级加锁协议基础上,要求事务T在读取数据项Q之前必须先对其加S锁,读完Q后可以立即释放S锁
  • D.对并发操作的不正确调度可能会导致数据库中数据的不一致,三级加锁协议暂时无法解决这一问题
【正确答案】 D
【答案解析】[解析] 对并发操作的不正确调度可能会导致数据库中数据的不一致,三级加锁协议分别在不同程度上解决了这一问题。①一级加锁协议要求事务T在修改数据项Q之前必须先对Q加X锁,直到事务结束才释放该锁。事务结束包括正常结束(Commit)和非正常结束(Rollback)。但事务如果只是读Q而不对其进行修改,是不需要对Q加锁的。②二级加锁协议是在一级加锁协议基础上,要求事务T在读取数据项Q之前必须先对其加S锁,读完Q后可以立即释放S锁。③三级加锁协议则是在一级加锁协议基础上,要求事务T在读取数据项Q之前必须先对其加S锁,但是需要等到事务结束时才释放该S锁。所以本题的答案为D。