事务用锁规则每个事务都必须遵循如下规则:
- 事务在读写数据项 x 之前,必须对其加锁 lock_item(x)。
- 事务在完成了对数据项 x 的所有读写操作之后,必须对其解锁 unlock_item(x)。
- 事务在已经发出了一个 lock_item(x) 之后,未发出解锁 unlock_item(x) 之前,不再对 x 加锁。
- 事务没有对数据项 x 加锁,就不能对 x 解锁 unlock_item(x)。
一个事务要访问被另一个事务加锁的数据项 x 时,必须等待它解锁,因而封锁机制就强制了事务操作的一种执行次序。