三级封锁协议:
1>1级封锁协议
事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放
正常结束(COMMIT)
非正常结束(ROLLBACK)
1级封锁协议可防止丢失修改
在1级封锁协议中,如果是读数据,不需要加锁的,所以它不能保证可重复读和不读“脏”数据。
2>2级封锁协议
1级封锁协议+事务T在读取数据R前必须先加S锁,读完后即可释放S锁
2级封锁协议可以防止丢失修改和读“脏”数据。
在2级封锁协议中,由于读完数据后即可释放S锁,所以它不能保证可重复读。
3>3级封锁协议