锁协议
排他锁
共享锁
死锁
饿死
两阶段锁协议
两段锁协议:
数据库的两段锁协议是指所有事务必须分两个阶段对数据项进行加锁和解锁
1.扩展阶段
在对任何数据项的读、写之前,要申请并获得该数据项的封锁。
2.收缩阶段
每个事务中,所有的封锁请求必须先于解锁请求。
破解死锁:同时回滚两个事务
严格两阶段锁
强两阶段锁
两段锁协议与防止死锁的一次封锁法的区别:
一次封锁法要求事务必须一次对所有要使用到的数据项进行加锁,否则不能继续运行。
显然,一次封锁法符合两段锁协议,但是两段锁协议并不要求一次就要对所有需要用到的数据项进行加锁,因此遵守两段锁协议的事务有可能死锁
锁转换
锁的获取
锁管理器