简述三级封锁协议的内容以及不同级别的封锁协议能解决哪些数据不一致性问题?
参考答案:
(1) 一级封锁协议是:事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放。一级封锁协议能够解决“丢失修改”问题。
(2) 二级封锁协议是:一级封锁协议加上事务在读取数据R之前必须先对其加S锁 ,读完后即可释放S锁。二级封锁不仅可以解决“丢失修改”问题,而且可以解决读“脏“数据问题。
(3) 三级封锁协议是:一级封锁协议加上事务在读取数据R之前必须先对其加S锁,直到事务结束才释放。三级封锁协议不仅解决了“丢失修改”、读“脏”数据问题,而且进一步解决了“不可重复读”问题。