第八章并发控制 83封锁协议 ·在运用锁和8锁这两种基本封锁,对数据对象 加锁时,还需要约定一些规则,例如应何时申 请λ锁或3锁、持锁时间、何时释放等。我们称 这些规则为封锁协议( Lolling protoe 对封锁方式规定不同的规则,就形成了各种不 同的封锁协议 不同级别的封锁协议达到的系统一致性级别是 不同的
第八章 并发控制 8.3 封锁协议 • 在运用X锁和S锁这两种基本封锁,对数据对象 加锁时,还需要约定一些规则,例如应何时申 请X锁或S锁、持锁时间、何时释放等。我们称 这些规则为封锁协议(Locking Protocol)。 • 对封锁方式规定不同的规则,就形成了各种不 同的封锁协议。 • 不同级别的封锁协议达到的系统一致性级别是 不同的
第八章并发控制 83封锁协议 7级封锁协议 级封锁协议是:事务/在修改数据之前必须先对其 加锁,直到事务结束才释放。事务结束包括正常结 束(0)和非正常结束(B)。例:69 () 级封锁协议可防止:丢失修改, 并保证事务是可恢复的 在级封锁协议中,如果仅仅是读数据不对其进行修 改,是不需要加锁的,所以它不能保证可重复读和不 读“脏”数据
第八章 并发控制 8.3 封锁协议 一、1级封锁协议 1级封锁协议是:事务T在修改数据R之前必须先对其 加X锁,直到事务结束才释放。事务结束包括正常结 束(COMMIT)和非正常结束(ROLLBACK)。 例1:P269 (A) 1级封锁协议可防止:丢失修改, 并保证事务T是可恢复的。 在1级封锁协议中,如果仅仅是读数据不对其进行修 改,是不需要加锁的,所以它不能保证可重复读和不 读“脏”数据
第八章并发控制 83封锁协议 、2级封锁协议 2级封锁协议是:级封锁协议加上事务/在读取数据之 前必须先对其加s锁,读完后即可释放锁 例n:m269(0) 2级封锁协议可防止:丢失修改 防止读“脏”数据
第八章 并发控制 8.3 封锁协议 二、2级封锁协议 2级封锁协议是:1级封锁协议加上事务T在读取数据R之 前必须先对其加S锁,读完后即可释放S锁。 例1:P269(C) 2级封锁协议可防止:丢失修改 防止读“脏”数据
第八章并发控制 83封锁协议 、3级封锁协议 3级封锁协议是:/级封锁协议加上事务/在读取数据R 之前必须先对其加s锁,直到事务结束才释放。 例n:m269(B) 级封锁协议可防止:丢失修改 读‘脏’数据 不可重复读
第八章 并发控制 8.3 封锁协议 三、3级封锁协议 3级封锁协议是:1级封锁协议加上事务T在读取数据R 之前必须先对其加S锁,直到事务结束才释放。 例1:P269(B) 3级封锁协议可防止:丢失修改 读‘脏’数据 不可重复读