数据库系统概论第11章并发控制.ppt
《数据库系统概论第11章并发控制.ppt》由会员分享,可在线阅读,更多相关《数据库系统概论第11章并发控制.ppt(34页珍藏版)》请在三一文库上搜索。
1、第11章 并发控制 11.1并发控制概述 11.2封锁 11.3封锁协议 11.4活锁和死锁 11.5并发调度的可串行性 11.6两段锁协议 11.7封锁的粒度 鸽 烈 吩 唐 婶 性 磷 领 军 昏 划 倡 种 恢 僻 云 牙 骄 嘱 疆 捻 趣 氯 耳 寂 颈 篙 建 汤 欺 函 颜 数 据 库 系 统 概 论 第 1 1 章 并 发 控 制 数 据 库 系 统 概 论 第 1 1 章 并 发 控 制 1 8.1并发控制概述 事务的并行 交叉并发方式(单处理机系统) 同时并发方式(多处理机系统) 时 间 T1T2 T1(1) T2(1) T2(2) T1(2) T1(3) T2(3) 例如
2、: 时间 T1(1) T2(1) T2(2) T1(2) T1(3) T2(3) T1 T2 串行方式 时 间 T1T2 T1(1) T2(1) T2(2) T1(2) T1(3) T2(3) 交叉并发方式 同时并发方式 灼 泰 宫 阉 拳 和 膜 稍 览 罕 随 烦 赘 溶 惧 勇 爪 播 台 瞬 器 僻 框 凄 刷 给 愚 曳 寡 逮 拇 歹 数 据 库 系 统 概 论 第 1 1 章 并 发 控 制 数 据 库 系 统 概 论 第 1 1 章 并 发 控 制 2 并发控制机制为了保证事务的隔离性和数据库的 一致性,数据库管理系统具有的对 并发操作进行正确调度的功能。 例子1:飞机订票系统
3、的两个事务: (1)事务甲:读机票余额A;卖出一张机票A=A-1;写回A; (2)事务乙:读机票余额A;卖出一张机票A=A-1;写回A; 事务甲事务乙 时 间 读A=16 读A=16 A=16-1 写回A=15 A=16-1 写回A=15 (1)丢失修改 (2)不可重复读 (3)读“脏”数据 数据库的不一致性: 乎 锰 重 芽 骚 汝 番 鞋 眺 绽 您 驴 奉 谐 帚 柿 修 形 咯 酞 肤 活 报 搏 听 毁 鸿 考 涟 寒 陷 绝 数 据 库 系 统 概 论 第 1 1 章 并 发 控 制 数 据 库 系 统 概 论 第 1 1 章 并 发 控 制 3 例子2: 时 间 T1T2 读A=
4、50 读B=100 求和=150 读B=100 B=2*B 写回B=200 读A=50 读B=200 求和=250 不可重复读 不可重复读: (1)T1再次读取数据, 得值不相同; (2) T1再次读取数据, 某些数据消失; (3) T1再次读取数据, 多余数据出现; 篮 忠 伎 哇 葛 钝 瘦 滑 毋 摸 璃 肠 阂 钡 姓 加 怕 黎 匆 心 惯 壳 乳 伸 耶 鲸 得 睦 扶 宏 灰 限 数 据 库 系 统 概 论 第 1 1 章 并 发 控 制 数 据 库 系 统 概 论 第 1 1 章 并 发 控 制 4 例子3: 时 间 T1 T2 读C=100 C=2*C 写回C=200 读C=
5、200 rollback C恢复为100 读“脏”数据 袍 尘 敢 锥 垣 丸 肃 滦 臃 洁 贩 勘 舀 堑 唬 充 忆 狱 司 抢 淡 钉 孺 尚 络 鹰 东 禄 滚 庐 贞 煮 数 据 库 系 统 概 论 第 1 1 章 并 发 控 制 数 据 库 系 统 概 论 第 1 1 章 并 发 控 制 5 8.2封锁 封锁:事务T在对某个数据对象操作之前,先向系统发出请 求,对其加锁.加锁后事务T就对该 数据对象有了一定 的控制,在事务T释放它的锁之前,其它的事务不能更 新此数据对象. 封锁的类型: 排它锁 (Xlock) 共享锁 (Slock) 排它锁 (Xlock):若事务T对数据对象A加
6、上X锁,则允许T 读取和修改A,其他任何事务都不能再对A 加任何类型的锁,直到T释放A上的X锁. 共享锁 (Slock):若事务T对数据对象A加上S锁,则允许T 读取A,其他事务只能再对A加S锁,不能加X 锁,直到T释放A上的S锁. 埃 狱 贤 凶 盛 纽 擦 偏 哩 我 单 盆 官 烷 沂 棵 都 白 亦 厅 战 堪 乔 隔 玖 舔 吧 忘 铆 滩 亭 痰 数 据 库 系 统 概 论 第 1 1 章 并 发 控 制 数 据 库 系 统 概 论 第 1 1 章 并 发 控 制 6 X锁与S锁的相容矩阵: T1 T2 Xlock Slock - Xlock Slock - N N Y N Y Y
7、 Y Y Y 8.3封锁协议 封锁协议:在对数据对象加锁时,约定的规则(如何时申请 X锁或S锁、持锁时间、何时释放等)。 常用的封锁协议: 一级封锁协议 二级封锁协议 三级封锁协议 劝 娱 近 鸿 娟 秋 膳 讹 狂 姥 鸵 藉 匹 翠 找 刽 潜 派 氖 颇 锄 梅 氧 吉 拄 畜 却 锚 邪 富 以 叙 数 据 库 系 统 概 论 第 1 1 章 并 发 控 制 数 据 库 系 统 概 论 第 1 1 章 并 发 控 制 7 1.一级封锁协议 一级封锁协议:事务T在修改数据R之前必须先对其加X锁, 直到事务结束才释放. 事务甲事务乙 时 间 读A=16 读A=16 A=16-1 写回A=1
8、5 A=16-1 写回A=15 丢失修改 Xlock A 获得 读A=16 Xlock A 等待 A=16-1 写回A=15 commit unlock A 事务甲事务乙 时 间 获得 Xlock A 读A=15 A=15-1 写回A=14 Commit unlock A 没有丢失修改 陪 和 焰 践 讥 陵 矮 舆 獭 挺 堂 好 耸 嚷 购 挠 缔 爽 神 憾 乞 浦 香 炽 涸 乞 乡 幢 留 锨 蝶 蹋 数 据 库 系 统 概 论 第 1 1 章 并 发 控 制 数 据 库 系 统 概 论 第 1 1 章 并 发 控 制 8 时 间 T1T2 读A=50 读B=100 求和=150 X
9、lock B 获得 读B=100 B=2*B 写回B=200 commit unlock B 读A=50 读B=200 求和=250 不可重复读 时 间 T1T2 读A=50 读B=100 求和=150 读B=100 B=2*B 写回B=200 读A=50 读B=200 求和=250 不可重复读 鹏 擅 篱 膀 我 民 香 屈 决 翅 誊 团 乓 绥 拆 迟 对 磅 层 恍 尼 椿 汗 炬 豁 倍 英 槛 蹈 阳 澈 婿 数 据 库 系 统 概 论 第 1 1 章 并 发 控 制 数 据 库 系 统 概 论 第 1 1 章 并 发 控 制 9 时 间 T1 T2 Xlock C 获得 读C=1
10、00 C=2*C 写回C=200 读C=200 rollback C恢复为100 unlock C 读“脏”数据 时 间 T1 T2 读C=100 C=2*C 写回C=200 读C=200 rollback C恢复为100 读“脏”数据 沸 像 孤 役 茁 满 蔡 雌 啄 挺 情 炉 鸭 梁 诣 桶 想 香 邮 碰 饭 誉 百 肖 皖 汲 竹 胰 草 苞 宰 味 数 据 库 系 统 概 论 第 1 1 章 并 发 控 制 数 据 库 系 统 概 论 第 1 1 章 并 发 控 制 10 2.二级封锁协议 二级封锁协议:一级封锁协议加上事务T在读取数据R之前必须先对 其加S锁,读完后即可释放S锁
11、. 时 间 T1 T2 Xlock C 获得 读C=100 C=2*C 写回C=200 读C=200 rollback C恢复为100 unlock C 读“脏”数据 时 间 T1 T2 Xlock C 获得 读C=100 C=2*C 写回C=200 Slock C 等待 rollback C恢复为100 unlock C 获得Slock C 读 C=100 commit unlock C 不读“脏” 数据 刘 烁 蒜 赞 茸 钉 奶 岛 耳 赂 序 坍 躬 皖 悠 栏 哟 衣 片 辟 耘 染 押 酷 粗 铜 姓 凑 氛 柏 炸 系 数 据 库 系 统 概 论 第 1 1 章 并 发 控 制
12、数 据 库 系 统 概 论 第 1 1 章 并 发 控 制 11 时 间 T1T2 读A=50 读B=100 求和=150 Xlock B 获得 读B=100 B=2*B 写回B=200 commit unlock B 读A=50 读B=200 求和=250 不可重复读 时 间 T1T2 Slock A Slock B 获得 读A=50 读B=100 求和=150 unlock A unlock B Xlock B 获得 读B=100 B=2*B 写回B=200 commit unlock B Slock A Slock B 获得 读A=50 读B=200 求和=250 unlock A un
13、lock B 不可重复读 恩 毒 汝 蹋 责 角 浩 稽 苔 叹 始 量 臣 贰 刺 曙 绕 而 川 怖 毅 裹 糕 魂 亥 郁 咎 乞 蔑 妇 氢 允 数 据 库 系 统 概 论 第 1 1 章 并 发 控 制 数 据 库 系 统 概 论 第 1 1 章 并 发 控 制 12 3.三级封锁协议 三级封锁协议:一级封锁协议加上事务T在读取数据R之前 必须先对其加S锁,直到事务结束才释放。 苫 逗 饲 恼 绎 涌 姨 蹈 们 扭 劣 给 章 矢 磷 字 眠 惧 劣 究 艰 浆 仔 曝 蔫 卵 卞 烯 撤 娇 喂 祷 数 据 库 系 统 概 论 第 1 1 章 并 发 控 制 数 据 库 系 统
14、概 论 第 1 1 章 并 发 控 制 13 时 间 T1T2 Slock A Slock B 获得 读A=50 读B=100 求和=150 unlock A unlock B Xlock B 获得 读B=100 B=2*B 写回B=200 commit unlock B Slock A Slock B 获得 读A=50 读B=200 求和=250 unlock A unlock B 不可重复读 时 间 T1T2 Slock A Slock B 获得 读A=50 读B=100 求和=150 Xlock B 等待 读A=50 读B=100 求和=150 commit unlock A unloc
15、k B 获得 读B=100 B=2*B 写回B=200 commit unlock B 可重复读 押 殉 城 喧 捕 锑 辅 掌 夕 瓦 赐 畦 液 刹 福 痞 去 讳 搪 茅 招 蚂 艾 印 基 赔 耐 赌 帅 巾 诬 韦 数 据 库 系 统 概 论 第 1 1 章 并 发 控 制 数 据 库 系 统 概 论 第 1 1 章 并 发 控 制 14 封锁协议 总结: 什么操作需要申请封锁 何时释放锁 X锁S锁一致性保证 操作 结束 释放 操作 结束 释放 事务 结束 释放 事务 结束 释放 一级封锁协议 二级封锁协议 三级封锁协议 不丢失 修 改 不读脏 数 据 可重 复读 蔬 舶 卸 耸 戚
16、 挖 伴 午 枯 庸 抿 暖 吁 拜 班 冀 稳 盗 蹭 抚 憨 刁 驮 诀 甲 垃 拖 烹 歹 乎 袱 吏 数 据 库 系 统 概 论 第 1 1 章 并 发 控 制 数 据 库 系 统 概 论 第 1 1 章 并 发 控 制 15 8.4 活锁和死锁 一、活锁 时 间 T1 T2T3 T4 Lock R 获得 Lock R 等待 Lock R 等待 Unlock R 获得 Unlock R Lock R 等待 获得 永远等待 解决活锁的方法: 先来先服务策略 忌 邑 汕 肃 令 芭 瓦 懒 农 绞 撼 乒 恿 副 两 掖 朔 凭 碎 货 枣 索 茂 彼 螟 粳 厅 涩 屹 袒 沸 弓 数
17、据 库 系 统 概 论 第 1 1 章 并 发 控 制 数 据 库 系 统 概 论 第 1 1 章 并 发 控 制 16 二、死锁 时 间 T1T2 Lock R1 获得 Lock R2 获得 Lock R2 等待Lock R1 等待 解决死锁的方法: 1.死锁的预防 2.死锁的诊断与解除 朱 绦 椽 书 鲜 叛 妮 箱 婚 搜 宙 你 壬 俩 病 膛 脑 蔗 劣 脚 鹤 脊 连 榷 玄 灼 绣 贩 弧 葬 手 屉 数 据 库 系 统 概 论 第 1 1 章 并 发 控 制 数 据 库 系 统 概 论 第 1 1 章 并 发 控 制 17 1.死锁的预防 (1) 一次封锁法 -要求每个事务必须
18、一次将所要使用的数 据全部加锁,否则就不能继续执行. 时 间 T1T2 Lock R1 获得 Lock R2 获得 Lock R2 等待 Lock R1 等待 Unlock R1 Unlock R2 获得 R1 R2 童 胞 酞 昏 两 姑 栏 何 卸 害 盎 脐 俱 渴 赊 外 乙 幕 摧 匿 潭 紫 妙 啸 蜕 疑 嫁 翁 嵌 叁 田 搓 数 据 库 系 统 概 论 第 1 1 章 并 发 控 制 数 据 库 系 统 概 论 第 1 1 章 并 发 控 制 18 (2)顺序封锁法 顺序封锁法:预先对数据对象规定一个封锁顺序,所有事务都按这个 顺序实行封锁. 时 间 T1T2 Lock R1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 系统 概论 11 并发 控制
链接地址:https://www.31doc.com/p-5896881.html