三级封锁协议

纵饮孤独 提交于 2020-01-14 07:00:25

三级封锁协议

一级封锁协议

  • 事务修改数据时必须加 X 锁,直到事务结束才释放锁。

  • 可以解决丢失修改问题,因为不能同时有两个事务对同一个数据进行修改,那么事务的修改就不会被覆盖。

二级封锁协议

  • 在一级的基础上,要求读取数据时必须加 S 锁,读取完马上释放 S 锁。

  • 可以解决读脏数据问题,因为如果一个事务在对数据进行修改,根据一级封锁协议,会加 X 锁,那么就不能再加 S 锁了,也就是不会读入数据。

三级封锁协议

  • 在二级的基础上,要求读取数据时必须加 S 锁,直到事务结束了才能释放 S 锁。

  • 可以解决不可重复读的问题,因为读数据时,其它事务不能对该数据加 X 锁,从而避免了在读的期间数据发生改变。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!