封锁协议
在对数据对象加锁时,还需要约定一些规则,这些规则称为封锁协议。
一级封锁协议:是事务 T 在修改数据之前必须先对其加 X 锁,直到事务结束才释放,一级封锁协议可有效地防止丢失修改,并能够保证事务 T 的可恢复性。
二级封锁协议:是事务 T 对要修改的数据必须先加 X 锁,直到事务结束才释放 X 锁;要读取的数据必须先加 S 锁,读完后即可释放 S 锁。二级封锁协议不但能够防止丢失修改,还可进一步防止读“脏”数据。
三级封锁协议:是事务 T 在读取数据之前必须先对其加 S 锁,在要修改数据之前必须先对其加 X 锁,直到事务结束后才释放所有锁。三级封锁协议不但防止了丢失修改和不读“脏”数据,而且防止了不可重复的读。
点点赞赏,手留余香
给TA打赏
评论0