导图社区 第十一章 并发控制
数据库并发控制,内容有: 1.并发控制概述 2.封锁 3.封锁协议 4.活锁和死锁 5.并发调度的可串行性 6.两段锁协议 7.封锁的粒度
第十章 数据库恢复技术,事务(Transaction)是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。
关于第八章 数据库编程 思维导图,内容有嵌入式SQL、过程化SQL、存储过程和函数、ODBC编程。
社区模板帮助中心,点此进入>>
互联网9大思维
组织架构-单商户商城webAPP 思维导图。
域控上线
python思维导图
css
CSS
计算机操作系统思维导图
计算机组成原理
IMX6UL(A7)
考试学情分析系统
第十一章 并发控制 计科Z2205班 卢成
1.并发控制概述
事务是并发控制的基本单位
并发控制机制的任务
对并发操作迚行正确调度
保证事务的隑离性
保证数据库的一致性
并发操作带来的数据不一致性
1. 丢失修改(Lost Update)
2. 不可重复读(Non-repeatable Read)
3. 读“脏”数据(Dirty Read)
记号
2.封锁
什么是封锁
封锁就是事务T在对某个数据对象(例如表、记录等)操作之前,先向系统发 出请求,对其加锁
加锁后事务T就对该数据对象有了一定的控制,在事务T释放它的锁之前,其它 的事务不能更新此数据对象。
封锁是实现并发控制的一个非常重要的技术
基本封锁类型
一个事务对某个数据对象加锁后究竟拥有什么样的控制由封锁的类 型决定。
排它锁(Exclusive Locks,简记为X锁)
共享锁(Share Locks,简记为S锁)
锁的相容矩阵
3.封锁协议
什么是封锁协议
在运用X锁和S锁对数据对象加锁时,需要约定一些规则,这些规则为封锁 协议(Locking Protocol)。
对封锁方式规定不同的规则,就形成了各种不同的封锁协议,它们分别在 不同的程度上为并发操作的正确调度提供一定的保证。
三级封锁协议
1.一级封锁协议
2.二级封锁协议
3.三级封锁协议
4.活锁和死锁
活锁
事务T1封锁了数据R
事务T2又请求封锁R,亍是T2等待
T3也请求封锁R,当T1释放了R上的封锁乊后系统首先批准了T3的请求, T2仍然等待。
T4又请求封锁R,当T3释放了R上的封锁乊后系统又批准了T4的请求
T2有可能永进等待,这就是活锁的情形
避免活锁
死锁
事务T1封锁了数据R1
T2封锁了数据R2
T1又请求封锁R2,因T2已封锁了R2,亍是T1等待T2释放R2上的锁
接着T2又申请封锁R1,因T1已封锁了R1,T2也只能等待T1释放R1上的 锁
这样T1在等待T2,而T2又在等待T1,T1和T2两个事务永进丌能结束,形 成死锁
5.并发调度的可串行性
可串行化调度
可串行化(Serializable)调度:多个事务的并发执行是正确的,当且仅当其结果不按某一次序串行地执行这些事务时的结果相同
可串行性(Serializability):是并发事务正确调度的准则;一个给定的并发调度,当且仅当它是可串行化的,才讣为是正确调度
冲突可串行化调度
冲突可串行化
冲突操作:是指不同的事务对同一数据的读写操作和写写操作
6.两段锁协议
“两段”锁的含义
第一阶段是获得封锁,也称为扩展阶段
第二阶段是释放封锁,也称为收缩阶段
两段锁协议不防止死锁的一次封锁法
一次封锁法要求每个事务必须一次将所有要使用的数据全部加锁,否则就 不能继续执行,因此一次封锁法遵守两段锁协议
但是两段锁协议并丌要求事务必须一次将所有要使用的数据全部加锁,因 此遵守两段锁协议的事务可能发生死锁
7.封锁的粒度
多粒度封锁
多粒度树:以树形结构来表示多级封锁粒度;根结点是整个数据库,表示最大的数据粒度;叶结点表示最小的数据粒度
多粒度封锁协议
显式封锁和隐式封锁
意向锁
目的:提高对某个数据对象加锁时系统的检查效率
常用意向锁:意向共享锁;意向排它锁;共享意向排它锁