并发控制技术_第1页
并发控制技术_第2页
并发控制技术_第3页
并发控制技术_第4页
并发控制技术_第5页
已阅读5页,还剩103页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库系统概AnIntroductiontoDatabase1 第十一章并发控2第十一章并发11.1小 11.1并发允许多个用户同时使银行数据库系特点:在同一时刻并发运行的事务数可 并发控制概多事务执行事务串行执每个时刻只有一个事务运行,其他事务必须等到这个事务 方能运行不能充分利用系统资源,发挥数据库共享资源的特点 事务 并发控制(续(2)交叉并发方式(interleaved事务的并行执行是这些并行事务的并是单处理机系统中的并发方式,能够减少处理机的空闲时间,提高系统的 并发控制(续 事务并发执行带来的问可能会存取和 不正确的数据,破坏 DBMS 并发并发控制机制的任对并发操作进行保证事务 保证数据库的一致 ①②R(A)③A←A-W(A)④T1的修改被T2覆盖 并发操作带丢失修改(lost不可重复读(non-repeatable读“脏”数据(dirty 丢失修丢失修改是指事务1与事务2从数据库中读入同一数据并修改,事务2的提交结果破坏了事务1提交的结果,导致事务1的修改被丢失。 丢失修①②③A←A-④A←A- 不可重复不可重复读是指事务1 数据后,事务2执行更新操作,使事务1无法再现 三类不可重复事务 某一数据后 事务2对其做了修改,当事务1再次读该数据时,得到与前一次不同的值。 不可重复①求和②③求和(验算不对 读“脏”数事务1修改某一数据,并将其写回磁盘事务2 同一数据后,事务1由于某种原因被撤消,这 务1已修改过的数据恢复原值,事务2读到的数据就与数据库中的数据不一致,是不正确的数据,又称为“脏数据。 3读“脏”数①R(W(C)=200②③C恢复为R(并发控制的主要技术 第十一章并发11.1小 一、什么二、基 类三、基本锁的相容 一、什么 就是事务T在对某个数据对象(例如表、记录等)操作之前,先向系统发出请求,对其加锁加锁后事务就对该数据对象有了一定的控制,在事务释放它的锁之前,其它的事务不能更新此数据对象。是实现并发控制的一个非常重要的技 二、基 类基 类排它锁(Exclusivelock,简记为X锁排它锁又称为写 二、基 类共享锁(Sharelock,简记为S锁共享锁又称为读 二、基 类修改数据时一般申请读数据时一般申请 SX三、锁的相容矩SX-SX-SX

YYYY-YY-YNYNNNYY YY使 机制解决丢失修改问例没有丢失修①Xlock②这时T2读到的A已经T1更新过的值③A←A-等等等等④获得XlockA←A-⑤使 机制解决不可重复读问SlockB求和②UnlockAUnlock

XlockB等

可重事务T1在读A,BA,B加S T1为验算再读A,B 获得 2Unlock2

出的B仍是100,求150,即可重复T1结束才释放A,B上的S锁T2才获得对B的X 例

不读“脏①XlockC②③UnlockC④⑤

SlockC获得SlockCommitCUnlockC

T1释放C上的X锁后T2获得上的S锁,读C=100T2读“脏第十一章并发11.1小 活锁和死 活死 活 锁之后系统又批准了T4的请求…T2有 活 如何避免活采用先来先服务当多个事务请 同一数据对象按请 的先后次序对这些事务排该数据对象上的锁一旦释放,首先批准 死死Xlock.....Xlock.Xlock等.Xlock等等等..解决死锁的方两类方预防死死锁 与解 预防死锁的一 顺 一 一次法存在的问题: 顺 顺序,所有事务都按这个顺序实。顺 法存在的问题 成本 死锁 与解 检测死锁:优点缺 等待事务等待图是一个有向图T为结点的集合,每个结点表示正运行的事务U为边的集合若1等待2,则1,2之间划一条有向边,从1指向2 等待事务等待图(a)中,事务T1等待T2,T2等待T1图(b)中,事务T1等待T2,T2等待T3,T3等待T4,T4又等T1,产生了死图(b)中,事务T3可能还等待T2 等待 死锁 与解除(续解除死–选择一个处理死锁代价最小的事务,将 第十一章并发11.1小 并发 一、什么样的并发操作调度是正确计算机系统对并发事务中并发操作的调度是随机的,而不同的调度可能会产生不同的结果。将所有事务串行起来的调度策略一定是正确的调度策略。以不同的顺序串行执行事务也有可能会产生不同的结果,但由于不会将数据库置于不一致状态,所以都可以认为是正确的。 什么样的并发操作调度是正确的(续(Serializable)的调度可串行性是并发事务正确性的 什么样的并发操作调度是正确的(续例:现在有两个事务,分别包含下列操作:事务1:读;1;写回A;事务2:读;1;写回B;假设A的初值为2,B的初值为2 什么样的并发操作调度是正确的(续对这两个事务的不同串行执串行调度策略1:T1串行调度策略2:T2交错执不可串行化可串行化的调 读B;A=B+1;写回读A;B=A+1;写回SlockBUnlockBXlockAUnlockSlockUnlockAXlockBUnlock 读B;A=B+1;写回读A;B=A+1;写回UnlockAXlockBUnlockSlockUnlockBXlockAUnlock 读B;A=B+1;写回读A;B=A+1;写回SlockBSlockBSlockUnlockUnlockXlockXlockUnlockUnlock读B;A=B+1;写回读A;B=A+1;写回SlockBUnlockSlockBUnlockBXlockAUnlockSlock等UnlockAXlockBUnlock以是正确的调度并发 二、如何保证并发操作的调度发控制机制必须提供一定的来保证调保证 方法: 第十一章并发11.1小 两段锁协在运用锁和锁对数据对象加锁时,需要约定一些规则: 协议(LockingProtocol)何时申请X锁或S 协议(Two-PhaseLocking,简称2PL) 两段锁协两段锁协议的内 两段锁协议(续“两段”锁的含义:事务分为第一阶段是获 ,也称为扩展阶段第二阶段是释 ,也称为收缩阶段 两段锁协议(续例事务1 序列SlockA...SlockB...XlockC...UnlockB...UnlockAUnlock事务2 序列SlockA...UnlockA...SlockB...XlockC...UnlockCUnlock事务1遵守两段锁协议,而事务 两段锁协议 两段锁协议(续并发执行的所有事务均遵守两段锁协议,则对这些事务的所有并发调度策略都是可串行化的。所有遵守两段锁协议的事务,其并发执行的结果一定是正确的事务遵守两段锁协议是可串行化调度的充分条件,而不是必要条件可串行化的调度中,不一定所有事务都必须符合两段锁协议。 两段锁协议(续SlockXlockUnlockUnlock

SlockASlockAXlockBUnlockBUnlock(a)遵守两段 两段锁协议(续两段锁协议与防止死锁的一 一次 法要求每个事务必须一次将所有要使用的数据全部加锁,否则就不能继续执行,因此一次 法遵守两段锁协议有要使用的数据全部加锁,因此遵守两段锁协议的事务可能发生死锁 两段锁协议(续图11.9遵守两段锁协议的事务发Slock等Xlock等 第十一章并发11.1小 的粒粒意向 粒一、什么 粒二、选 粒度的原 一、什么 粒X锁和S的对象:对象的大小称 的粒例:在关系数据库中 对象逻辑单元属性值、属性值集合、元组、关系、物理单元:页(数据页或索引页)、物理记录等 什么 粒度(续 对某个属性 粒一、什么 粒二、选 粒度的原 二、选 粒度的原的粒度 大,小系统 的对象 少,多并发度 小,高系统开销 小,大选 粒度 选 粒度的原则(续一般情况需要处理多个关系的大量元组的用户事务:以数据库为 粒度; 的粒粒意向 多粒多粒度以树形结构来表示多 粒叶结点表示最小的数据粒 多粒 (续例:三级粒度树。根结点为数据库,数据库的子结点为关系,关系的子结点为元组。数据关系

关系

元 元组 元 多粒 协允许多粒度树中的每个结点被对一个结点加锁意味着这个结点的所有后 显 和隐显 :直接加到数据对象上 :由于其 显 和隐 的效果是一样 对某个数据对象加锁时系统检检查方法效该数检查方法效有无显 与所 结 所有下级结看上面的显 是否与本事务的隐(将加到下级结点 的粒粒意向 意向引进意向锁(intentionlock)目–提高对某个数据对象加锁时系统的 什么 意向锁(续例:对任一r加锁,先对关系R加意向锁,事务T要对关系R加X锁,系统只要检查根结点不需要搜索和检查R中的每一个元组提高了检查效 意向共享锁(IntentShareLock,简称意向排它锁(IntentExclusiveLock,简共享意向排它锁(ShareIntentExclusiveLock,简称SIX锁) IS锁:如果对一个数据对象加IS锁,表例:要对某个元组加S锁,则要首先对关 锁) 意向锁(续意向锁的相容矩SX-SYNYNNYXNNNNNYYNYYYYNNYYNYNNYNNY-YYYYYY意向锁(续select*frommoviewheretitle=‘KingKong’;构成的事务T1从获得整个关系上的IS锁开始 两部为KingKong的影片),并在它们中的每一个上获得 意向锁(续 务T2开始,updatemoviesetyear=1939wheretitle=‘GonewiththeWind’;T2需要该关系上的一个IX锁,因为它打算为其中一锁被授予。当T2来到关于GonewiththeWind的元组,试图在kingkong影片之一的元组中写入新值,它将必须 意向锁(续King King Gonewiththe如果写意向与读意向涉及共同的元素,则允许在较低的层次上解决 。 意向锁(续意向锁的相容矩SX-SYNYNNYXNNNNNYYNYYYYNNYYNYNNYNNY-YYYYYY意向锁(续锁的强一个事务在申 时以强锁代替弱锁是安的,反之则不

- 意向锁(续具有意向锁的多粒 方申 时应该按自上而下的次序进行 意向锁(续例如:事务T1要对关系R1加S要首先对数据库加IS 意向锁(续具有意向锁的多粒 方减少了加锁 的开 第十一章并发11.1小 小数据共享与数据一致性数据库的并发控制以数据库的并发控制通常使 机– 小结(续并发控制机制调度并发事务操作是否正确的判别准则是可串行性并发操作的正确性则通常由两段锁协议证。两段锁协议是可串行化调度的充分条件不是必要条件对数据对象施 ,带来问题:活锁和死 练、设有两个事务1、T2,其并发操作如图所示,下面评价正确的是()A.B.C.D. 练2、设有两个事务T1、T2,其并发操作如图所示,下面评价正确的是()A.B.C.D. 练3、设有两个事务T1、T2,其并发操作如图所示,下面评价正确的是()A.B.C.D. 练4、设有两个事务T1、T2,面评价正确的是()( 练5、解决并发操作带来的数据不一致性问题普遍采用(B.恢复C.存取控制D.协6、若事务T对数据R已加X锁,则其他对数据R()。A.可以加S锁不能加x锁B.不能加S锁可以加X锁C.可以加S锁也可以加x锁D.不能加任何锁、不允许任何其他事务对这个锁定目标再加任何类型锁的锁是()A.共享锁B.排它锁C.共享锁或排它锁D.以上都不是8、数据库中的机制是

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论