概念
|
解释
|
共享锁
|
如果事务T获得了数据项Q上的共享锁(记为S),则T可读Q但不能写Q。
|
排他锁
|
如果事务T获得了数据项Q上的排他锁(记为X),则T既可读Q又可写Q。
|
锁相容
|
令A与B代表任意类型的锁。假设事务Ti请求对数据项Q加A类型锁,而事务Tj(Ti≠Tj)当前在数据项Q上拥有B类型锁。尽管数据项Q上存在B类型锁,但如果事务Ti可以立即获得数据项Q上的A类型锁,则称A类型锁与B类型锁相容。
|
锁相容矩阵
|
锁相容一般用矩阵来表示,称为锁相容矩阵。只有其值为TRUE的两类锁才相容。
|
死锁
|
调度中所有的事务因为持有锁和申请锁而导致大家都处于等待状态,无法继续执行。
|
饿死
|
调度中一个事务总是不能在某个数据项上加上锁,因此该事务也就永远不能取得进展。
|
两阶段封锁协议
|
该协议要求每个事务分两个阶段提出加锁和解锁申请:
�C增长阶段:事务可以获得锁,但不能释放锁;
�C缩减阶段:事务可以释放锁,但不能获得新锁。
对于一个事务而言,刚开始事务处于增长阶段,它可以根据需要获得锁;一旦该事务开始释放锁,它就进入了缩减阶段,就不能再发出加锁请求。
|
封锁点
|
对于任何一个事务而言,在调度中该事务获得其最后一个锁的时刻称为事务的封锁点。
|
严格两阶段封锁协议
|
除了要求封锁是两阶段之外,还要求事务持有的所有排他锁必须在事务提交之后方可释放。
|
强两阶段封锁协议
|
除了要求封锁是两阶段之外,还要求事务在提交之前不得释放任何锁。
|