数据库原理及应用第11章-并发控制(2学时)讲解.ppt
文本预览下载声明
第十一章 并发控制;1. 串行执行
2. 交叉并发
3. 同时并发;一、 概述
二、 封锁
三、 封锁协议
四、 活锁和死锁
五 、 两段锁协议
六 、 封锁的粒度;T1;T1;三类不可重复读;T1;一、 概述
二、 封锁
三、 封锁协议
四、 活锁和死锁
五 、 两段锁协议
六 、 封锁的粒度;什么是封锁?;封锁类型;一、 概述
二、 封锁
三、 封锁协议
四、 活锁和死锁
五 、 两段锁协议
六 、 封锁的粒度;T1;T1;T1;加锁约定:加什么锁?何时释放锁?;;一、 概述
二、 封锁
三、 封锁协议
四、 活锁和死锁
五 、 两段锁协议
六 、 封锁的粒度;1. 活锁;2. 死锁;(1)死锁的预防;(2)死锁的诊断与解除;等待图法;一、 概述
二、 封锁
三、 封锁协议
四、 活锁和死锁
五 、 两段锁协议
六 、 封锁的粒度;并发操作如何调度?;如何保证?;两段锁协议;例:事务1的封锁序列:
Slock A | Slock B | Xlock C ... Unlock B | Unlock A | Unlock C;并行事务若遵守两段锁协议,则是可串行的、执行结果是正确的。
遵守两段锁协议是可串行化调度的充分条件,因此可串行化的调度中,不一定所有事务都必须符合两段锁协议。;两段锁协议与一次封锁法
一次封锁法遵守两段锁协议
遵守两段锁协议的事务可能发生死锁;2. 两段锁协议Vs.三级封锁协议
不同目的的协议
两段锁协议
保证并发调度的正确性
三级封锁协议
保证数据一致性
遵守第三级封锁协议必然遵守两段协议;一、 概述
二、 封锁
三、 封锁协议
四、 活锁和死锁
五 、 两段锁协议
六 、 封锁的粒度;1. 封锁粒度;(2)选择封锁粒度的原则;一般原则:
处理多个关系的大量元组:数据库
处理大量元组:关系
只处理少量元组:元组;2. 多粒度封锁;(2)多粒度封锁协议;(3)加锁检查;3. 意向锁;例:对元组 r 加锁,先关系R加意向锁。;意向共享锁(IS锁)
如果对一个数据对象加IS锁,表示它的后裔结点拟(意向)加S锁。?
例:要对某个元组加S锁,则要首先对关系和数据库加IS锁;意向排它锁(IX锁)
如果对一个数据对象加IX锁,表示它的后裔结点拟(意向)加X锁。
例:要对某个元组加X锁,则要首先对关系和数据库加IX锁。;共享意向排它锁(SIX锁)
如果对一个数据对象加SIX锁,表示对它加S锁,再加IX锁,即SIX = S + IX。
例:对某个表加SIX锁,则表示该事务要读整个表(所以要对该表加S锁),同时会更新个别元组(所以要对该表加IX锁)。; T1 T2 S X IS IX SIX -
S Y N Y N N Y
X N N N N N Y
IS Y N Y Y Y Y
IX N N Y Y N Y
SIX N N Y N N Y
- Y Y Y Y Y Y ;(3)锁的强度
锁的强度是指它对其他锁的排斥程度
申请封锁时以强锁代替弱锁是安全的,反之不然;结课论文
显示全部