两段锁协议的内容编辑
1. 在对任何数据进行读、写操作之前,
事务首先要获得对该数据的封锁
2. 在释放一个封锁之后,事务不能再获得任何其他封锁。
一、与死锁
两段锁协议与防止死锁的一次封锁法编辑
一次封锁法要求每个
事务必须一次将所有要使用的数据全部加锁,否则就不能继续执
行,因此一次封锁法遵守
两段锁协议,但是两段锁协议并不要求事务必须一次将所有
要使用的数据全部加锁,因此遵守两段锁协议的事务可能发生死锁。
二、与可串行化
可串行化和死锁没有直接关系。
一个事务按照两段锁协议,并且正确执行,那么也可以串行执行。
但是有可能发生死锁,那么说明没有正确执行而已!
并行执行的所有事务均遵守两段锁协议,则对这些事务的所有并行调度策略都是可串行化的。
所有遵守两段锁协议的事务,其并行执行的结果一定是正确的
事务遵守两段锁协议是可串行化调度的充分条件,而不是必要条件
可串行化的调度中,不一定所有事务都必须符合两段锁协议。