- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据库原理课件--11_并发控制
多事务执行方式 (1)事务串行执行 每个时刻只有一个事务运行,其他事务必须等到这个事务结束以后方能运行 不能充分利用系统资源发挥数据库共享资源的特点 (2)交叉并发方式(interleaved concurrency) 事务的并行执行是这些并行事务的并行操作轮流交叉运行 是单处理机系统中的并发方式,能够减少处理机的空闲时间,提高系统的效率 多事务执行方式 (3)同时并发方式(simultaneous concurrency) 多处理机系统中,每个处理机可以运行一个事务,多个处理机可以同时运行多个事务,实现多个事务真正的并行运行 最理想的并发方式,但受制于硬件环境 更复杂的并发方式机制 丢失修改是指事务1与事务2从数据库中读入同一数据并修改,事务2的提交结果破坏了事务1提交的结果,导致事务1的修改被丢失。 不可重复读是指事务1读取数据后,事务2执行更新操作,使事务1无法再现前一次读取结果。 事务1修改某一数据,并将其写回磁盘;事务2读取同一数据后,事务1由于某种原因被撤消,这时事务1已修改过的数据恢复原值,事务2读到的数据就与数据库中的数据不一致,是不正确的数据,又称为“脏”数据。 图11.4 使用封锁机制解决三种数据不一致性的示例 (2)顺序封锁法 事务的封锁请求可以随着事务的执行而动态地决定,很难事先确定每一个事务要封锁哪些对象,因此也就很难按规定的顺序去施加封锁。 例:规定数据对象的封锁顺序为A,B,C,D,E。事务T3起初要求封锁数据对象B,C,E,但当它封锁了B,C后,才发现还需要封锁A,这样就破坏了封锁顺序。 事务并发执行举例 例:假设T1,T2,T3是如下三个事务,其中R为数据库中某个数据项,设R的初值为0。若允许三个事务并发执行,试列出所有可能的正确结果。采用什么手段,可以解决并行调度的不一致性问题。 T1: R:=R+5 T2: R:=R*3 T3:R:=2 11.4.2 冲突可串行化调度 冲突操作:指不同的事务对同一个数据的读写操作和写写操作。其他操作是不冲突操作。 Ri(x)与Wj(x) Wi(x)与Wj(x) 不同事务的冲突操作和同一事务的两个操作是不能交换的。 11.4.2 冲突可串行化调度(续) 一个调度Sc在保证冲突操作的次序不变的情况下,通过交换两个事务不冲突操作的次序得到另一个调度Sc’,如果Sc’是串行的,称调度Sc为冲突可串行化的调度。 一个调度是冲突可串行化,一定是可串行化的调度。反之不然。 冲突可串行化调度是可串行化调度的充分条件,不是必要条件。 11.4.2 冲突可串行化调度(续) [例4]今有调度 Sc1=r1(A) w1(A) r2(A) w2(A) r1(B) w1(B) r2(B) w2(B) 把w2(A) 与r1(B) w1(B) 交换,得到: r1(A) w1(A) r2(A) r1(B) w1(B) w2(A) r2(B) w2(B) 再把r2(A)与 r1(B) w1(B) 交换,得到: Sc2=r1(A) w1(A) r1(B) w1(B) r2(A) w2(A) r2(B) w2(B) 11.5 两段锁协议 目前DBMS常采用两段锁(Two-Phase Locking, 2PL)协议的方法实现并发调度的可串行性,从而保证调度的正确性。 封锁协议 何时申请加锁 持锁时间、何时释放锁 两段锁协议是最常用的一种封锁协议,理论上已证明使用它产生的是可串行化调度。 11.5 两段锁协议(续) 两段锁协议的内容 在对任何数据进行读、写操作之前,事务首先要获得对该数据的封锁 在释放一个封锁之后,事务不再申请和获得任何其他封锁。 “两段”锁的含义 事务分为两个阶段 第一阶段是获得封锁,也称为扩展阶段; 第二阶段是释放封锁,也称为收缩阶段。 两段锁协议(续) 选择封锁粒度的原则 需要处理多个关系的大量元组的用户事务:以数据库为封锁单位; 需要处理大量元组的用户事务:以关系为封锁单元; 只处理少量元组的用户事务:以元组为封锁单位 11.6.2 多粒度封锁 意向锁(续) 具有意向锁的多粒度封锁方法 申请封锁时应该按自上而下的次序进行; 释放封锁时则应该按自下而上的次序进行 例:事务T要对一个数据对象加锁,必须先对它的上层结点加意向锁 11.7小结 数据库的并发控制以事务为单位 并发操作所带来的数据库不一致性问题 丢失修改 不可重复读 读脏数据 数据库的并发控制通常使用封锁机制 两类最常用的封锁(X锁与S锁) 小结(续) 并发控制机制调度并发事务操作是否正确的判别准则是可串行性 并发操作的正确性则通常由两段锁协议来保证。 两段锁协议是可串行化调度的充分条件,但不是必要条件 小结(续) 对数据对象施加封锁,带来
您可能关注的文档
最近下载
- 中兴5GC专家认证考试题库大全-上(单选、多选题汇总).doc VIP
- 2025年安徽省职业技能竞赛(计算机软件测试员)备赛试题库资料(含答案).pdf VIP
- 膝关节运动损伤自我诊断课件.pptx VIP
- 人教版二年级上册数学全册教学设计(配2025年秋新版教材).docx VIP
- SPL Phonitor2 120V专业耳放Phonitor 2 BA EN说明书用户手册.pdf
- (2024秋新版本)教科版一年级科学上册全册PPT课件.pptx
- 《卫星运行时间》教学设计.doc VIP
- 2025年秋新人教版二年级上册数学全册同步课件.pptx
- GB50497-2019 建筑基坑工程监测技术标准.docx VIP
- 《竞赛规程》课件.ppt VIP
文档评论(0)