对数据库事务、隔离级别、锁、封锁协议的理解及其关系的理解

https://blog.csdn.net/weixin_30531261/article/details/79479895

数据库的锁:

  • 共享锁(读锁)
    一个事务对某个数据对象加了共享锁之后,该事物可以对数据对象进行读操作,同时其他事务可也以对这个数据对象加共享锁
  • 排它锁(写锁)
    一个事务对某个数据对象加了排它锁之后,该事物可以对数据对象进行读操作和写操作,同时不允许其他事务对他进行加排它锁。只能加共享锁,因此会产生脏读的问题。

** 一级封锁协议 是指,事务T在修改数据R之前必须先对其进行加X锁,直到事务T结束才释放,可以防止丢失更新的问题。
** 二级封锁协议
在一级封锁协议的基础上,规定对数据对象加排它锁的时候,不能加共享锁,以此解决了脏读的问题。
** 三级封锁协议** 是指,在以及封锁协议的基础上增加事务T在读取数据R之前必须先对其加排他,直到事务结束才释放,解决了不可重复读问题。

个人小站:http://jun10ng.work/ 拥抱变化,时刻斗争,走出舒适圈。
原文地址:https://www.cnblogs.com/Jun10ng/p/12443190.html