- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据库系统的并发控制
* 并发控制 在事务一章中,我们已经介绍了由于多个事务并发执行可能引起三种异常: 读脏数据、不可重复读、重写未提交的数据。 引起这些异常的原因是并发操作破坏了事务的隔离性。 并发控制的目的就是用正确的方式调度并发操作, 使事务之间不会相互影响, 即保证并发运行事务的可串行性。 一、基于锁的并发控制协议 一个保证可串行性的方法是在互斥的方式下存取数据,即当一个事务存取数据时不允许其他事务修改这个数据项。 (一)、锁的概念 锁可以分为两种类型: (1) 共享锁 如果事务T得到了数据项Q上的共享锁,则T可以读这个数据项,但不能写这个数据项。共享锁表示为S。 (2) 互斥锁 如果事务T得到了数据项Q上的互斥锁,则T即可以读这个数据项,也可以写这个数据项 每个事务在存取一个数据项之前必须获得这个数据项上的锁。 一个事务需要获得的锁的类型取决于它将在数据项上执行什么样的操作。给定各种锁的类型,我们可以如下定义这个锁集合上的相容关系。 令A和B表示任意类型的锁,设事务Ti在数据项Q上要求一个A型锁,事务Tj已经在Q上有一个B型锁,如果事务Ti能够获得Q上的A型锁,则说A型锁和B型锁是相容的。 下图表示锁相容矩阵 s x s true false x false false 共享锁可以被多个同时拥有,但对于互斥锁,只有当一个数据项上的所有锁都被释放时,一个事务才能获得在该事务上的互斥锁。 二、封锁协议 在运用X锁和S锁对数据对象进行加锁时,还需要约定一些规则, 例如: 何时申请X锁或S锁、持锁时间、何时释放等,这些规则称为封锁协议。 对封锁方式规定不同的规则, 就形成了各种不同的封锁协议。 T1 READ(B) B:=B-50 WRITE(B) READ(A) A:=A+50 WRITE(A) commit T2 READ(A) READ(B) DISPLAY(A+B) commit T1 完成两个帐户之间的转帐,而T2显示两个帐户的余额之和 如果串行执行T2显示的值为300 T1 T2 LOCK_X(B) READ(B) B:=B-50 WRITE(B) UNLOCK(B) LOCK_S(A) READ(A) UNLOCK(A) LOCK_S(B) READ(B) UNLOCK(B) DISPLAY(A+B) commit LOCK_X(A) READ(A) A:=A+50 WRITE(A) UNLOCK(A) commit S事务T2 显示的值为250 三、 两阶段锁协议 两段锁协议要求每个事务分为两个阶段进行数据锁的加锁和解锁。 阶段1 加锁阶段 在这个
您可能关注的文档
最近下载
- 2024江西赣州安远县遴选部分县直机关事业单位工作人员14人笔试备考试题及答案解析.docx VIP
- 2025年职业技能西式烹调师西式烹调师(高级)-西式烹调师(高级)参考题库含答案解析.docx
- 培智学校生活数学五年级上册学科教学计划.doc VIP
- 北京交通发展研究院:2025年北京市交通发展年度报告.pdf
- 2025年河北机关事业单位工人技能等级考试(兽医防治员)历年参考题库含答案详解(5卷).docx VIP
- T_LFSA 008-2021_熟肉制品_标准.pdf VIP
- 语料库与翻译课程大纲课程教学大纲.doc VIP
- 智能制造能力成熟度模型白皮书.pdf VIP
- 风电工程管理制度汇编.doc VIP
- 2025年小升初数学专项复习:浓度问题(原卷版+解析).pdf VIP
文档评论(0)