- 1、本文档共101页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
An Introduction to Database System 第十一章 并发控制 11.1 并发控制概述 11.2 封锁 11.3 活锁和死锁 11.4 并发调度的可串行性 11.5 两段锁协议 11.6 封锁的粒度 11.7 小结 An Introduction to Database System 11.7 小结 数据共享与数据一致性是一对矛盾 数据库的价值在很大程度上取决于它所能提供的数据共享度 数据共享在很大程度上取决于系统允许对数据并发操作的程度 数据并发程度又取决于数据库中的并发控制机制 数据的一致性也取决于并发控制的程度。施加的并发控制愈多,数据的一致性往往愈好 An Introduction to Database System 小结(续) 数据库的并发控制以事务为单位 数据库的并发控制通常使用封锁机制 两类最常用的封锁 An Introduction to Database System 小结(续) 并发控制机制调度并发事务操作是否正确的判别准则是可串行性 并发操作的正确性则通常由两段锁协议来保证。 两段锁协议是可串行化调度的充分条件,但不是必要条件 An Introduction to Database System 小结(续) 对数据对象施加封锁,带来问题 活锁: 先来先服务 死锁: 预防方法 一次封锁法 顺序封锁法 死锁的诊断与解除 超时法 等待图法 An Introduction to Database System 小结(续) 不同的数据库管理系统提供的封锁类型、封锁协议、达到的系统一致性级别不尽相同。但是其依据的基本原理和技术是共同的。 An Introduction to Database System 下课了。。。 休息一会儿。。。 * An Introduction to Database System 如何利用封锁技术调度事务? 我们已经看到了“适当”地使用封锁,可以获得正确的调度,否则可能造成“死锁”,也就是说:东西是好东西,就看你怎么用了? 采用封锁的调度 可串行化的调度 An Introduction to Database System 如何利用封锁技术调度事务? 因此,这个问题又变成了一个设计问题: 设计一种封锁的使用策略,使得我们获得的调度是可串行的调度(正确的调度)。 采用封锁的调度 可串行化的调度 An Introduction to Database System 两段锁协议 封锁协议 运用封锁方法时,对数据对象加锁时需要约定一些规则 何时申请封锁 持锁时间 何时释放封锁等 两段封锁协议(Two-Phase Locking,简称2PL)是最常用的一种封锁协议,理论上证明使用两段封锁协议产生的是可串行化调度 DBMS普遍采用两段锁协议的方法实现并发调度的可串行性,从而保证调度的正确性 An Introduction to Database System 两段锁协议(续) 两段锁协议 指所有事务必须分两个阶段对数据项加锁和解锁 在对任何数据进行读、写操作之前,事务首先要获得对该数据的封锁 在释放一个封锁之后,事务不再申请和获得任何其他封锁 An Introduction to Database System 两段锁协议(续) “两段”锁的含义 事务分为两个阶段 第一阶段是获得封锁,也称为扩展阶段 事务可以申请获得任何数据项上的任何类型的锁,但是不能释放任何锁 第二阶段是释放封锁,也称为收缩阶段 事务可以释放任何数据项上的任何类型的锁,但是不能再申请任何锁 An Introduction to Database System 两段锁协议(续) 例 事务Ti遵守两段锁协议,其封锁序列是 : Slock A Slock B Xlock C Unlock B Unlock A Unlock C; |← 扩展阶段 →| |← 收缩阶段 →| 事务Tj不遵守两段锁协议,其封锁序列是: Slock A Unlock A Slock B Xlock C Unlock C Unlock B; An Introduction to Database System 两段锁协议(续) 事务T1 事务T2 Slock(A) R(A=260) Slock(C) R(C=300) Xlock(A) W(A=160) Xlock( C ) W(C=250) Slock(A) Slock(B) 等待 R(B=1000) 等待 Xlock(B) 等待 W(B=1100) 等待 Unlock(A) 等待 R(A=160) Xlo
您可能关注的文档
- 第七章为创建新中国而奋斗解读.ppt
- 第三章 物流系统网络结构的分析与设计解读.ppt
- 第一讲 建筑材料概述解读.ppt
- 金属热处理原理-6解读.ppt
- 第一章 半导体物理基础2解读.ppt
- 第三章 多区域OSPF解读.ppt
- 第七课-理论-信源与信道编码解读.ppt
- 电气基础知识培训解读.ppt
- 计算机应用基础教案解读.ppt
- 第三讲_阴离子型黏土插层复合材料解读.ppt
- 基于人工智能教育平台的移动应用开发,探讨跨平台兼容性影响因素及优化策略教学研究课题报告.docx
- 高中生物实验:城市热岛效应对城市生态系统服务功能的影响机制教学研究课题报告.docx
- 信息技术行业信息安全法律法规研究及政策建议教学研究课题报告.docx
- 人工智能视角下区域教育评价改革:利益相关者互动与政策支持研究教学研究课题报告.docx
- 6 《垃圾填埋场渗滤液处理与土地资源化利用研究》教学研究课题报告.docx
- 小学音乐与美术教师跨学科协作模式构建:人工智能技术助力教学创新教学研究课题报告.docx
- 《航空航天3D打印技术对航空器装配工艺的创新与效率提升》教学研究课题报告.docx
- 教育扶贫精准化策略研究:人工智能技术在区域教育中的应用与创新教学研究课题报告.docx
- 《区块链技术在电子政务电子档案管理中的数据完整性保障与优化》教学研究课题报告.docx
- 《中医护理情志疗法对癌症患者心理状态和生活质量提升的长期追踪研究》教学研究课题报告.docx
文档评论(0)