1
数据库原理与应用技术
1.7.2.5 6.2.5 两段封锁法
6.2.5 两段封锁法

两段的含义是指每个事务可分为增生阶段和收缩阶段。增生阶段也称为扩张阶段或申请封锁阶段,在此阶段,事务可以申请封锁并获得封锁,但不能释放任何封锁。收缩阶段也称为释放封锁阶段,在此阶段,事务可以释放任何类型的锁,但决不能再申请任何锁。遵守两段封锁协议的事务称为两段式事务。

两段封锁协议规定所有事务都要遵守下列规则。

(1) 在对任何数据进行读/写操作之前,事务首先要申请获得对该数据的封锁。

(2) 在释放一个封锁之后,事务不再申请和获得任何其他封锁。

两段封锁法与可串行化调度的关系:如果所有事务都是两段式的,则其并发调度是可串行化的。两段封锁是可串行化的充分条件而非必要条件,即存在不遵守两段封锁协议,但却可以串行化的事务。

协议是所有事务都必须遵守的章程。这些章程是对事务可能执行的基本操作次序的一种限制或约束。

事务开始时进入增生阶段,可根据需要申请封锁。一旦释放封锁,即进入收缩阶段,不能再申请新的封锁。