数据库原理课件11并发控制

上传人:大米 文档编号:568004018 上传时间:2024-07-23 格式:PPT 页数:75 大小:338KB
返回 下载 相关 举报
数据库原理课件11并发控制_第1页
第1页 / 共75页
数据库原理课件11并发控制_第2页
第2页 / 共75页
数据库原理课件11并发控制_第3页
第3页 / 共75页
数据库原理课件11并发控制_第4页
第4页 / 共75页
数据库原理课件11并发控制_第5页
第5页 / 共75页
点击查看更多>>
资源描述

《数据库原理课件11并发控制》由会员分享,可在线阅读,更多相关《数据库原理课件11并发控制(75页珍藏版)》请在金锄头文库上搜索。

1、数据库系统概论数据库系统概论AnIntroductiontoDatabaseSystem第十一章第十一章 并发控制并发控制蕴唤侠恰把侥纱籍专镜粘媒吱喇夹咙聚卡絮睦衫莹胆析便渤栽层筑姐帐搜数据库原理课件11并发控制数据库原理课件11并发控制1多事务执行方式多事务执行方式(1)事务串行执行事务串行执行每个时刻只有一个事务运行,其他事务必须等到这个每个时刻只有一个事务运行,其他事务必须等到这个事务结束以后方能运行事务结束以后方能运行不能充分利用系统资源发挥数据库共享资源的特点不能充分利用系统资源发挥数据库共享资源的特点(2)交叉并发方式(交叉并发方式(interleavedconcurrency)事

2、事务务的的并并行行执执行行是是这这些些并并行行事事务务的的并并行行操操作作轮轮流流交交叉叉运行运行是是单单处处理理机机系系统统中中的的并并发发方方式式,能能够够减减少少处处理理机机的的空空闲时间,提高系统的效率闲时间,提高系统的效率裁阿卸僵皮琴既扼夹蹿练差漆搭祈坎誓瓣茬错奎审痔涝淹郎涧筹急芦葱喷数据库原理课件11并发控制数据库原理课件11并发控制2(3)同时并发方式(同时并发方式(simultaneousconcurrency)多多处处理理机机系系统统中中,每每个个处处理理机机可可以以运运行行一一个个事事务务,多多个个处处理理机机可可以以同同时时运运行行多多个个事事务务,实实现现多多个个事事务

3、真正的并行运行务真正的并行运行最理想的并发方式,但受制于硬件环境最理想的并发方式,但受制于硬件环境更复杂的并发方式机制更复杂的并发方式机制多事务执行方式多事务执行方式钠婴刮眶谅寻侮亚莎秃篮凌绪泣抖岗蛀窄立吧狸啼额甫曹蓉稗父肢箍匀痰数据库原理课件11并发控制数据库原理课件11并发控制3事务并发执行带来的问题事务并发执行带来的问题n可可能能会会存存取取和和存存储储不不正正确确的的数数据据,破破坏坏事事务务的的隔隔离离性性和数据库的一致性和数据库的一致性nDBMS必须提供并发控制机制必须提供并发控制机制n并发控制机制是衡量一个并发控制机制是衡量一个DBMS性能的重要标志之一性能的重要标志之一善征烂姓

4、考固缺药恢专利沿槐悯箕腆留乖奈堤署饱眼弓济言乃竭屏煞吁呵数据库原理课件11并发控制数据库原理课件11并发控制4第十一章第十一章 并发控制并发控制11.1并发控制概述并发控制概述11.2封锁封锁11.3活锁和死锁活锁和死锁11.4并发调度的可串行性并发调度的可串行性11.5两段锁协议两段锁协议11.6封锁的粒度封锁的粒度11.7小结小结橇变湛旗裂勒针梧樟趋动军抛庄阴崎芹挛茄俘希逮彪丸曲辉悸股抓仿记找数据库原理课件11并发控制数据库原理课件11并发控制511.1 11.1 并发控制概述并发控制概述n并发控制机制的任务并发控制机制的任务对并发操作进行正确调度对并发操作进行正确调度保证事务的隔离性保证

5、事务的隔离性保证数据库的一致性保证数据库的一致性蛰准胶成囤喘泵甄讯砌龋碌郡挠金逝池财猩量荫库公口慈末绚增疯占卧唇数据库原理课件11并发控制数据库原理课件11并发控制6数据不一致实例:数据不一致实例:飞机订票系统飞机订票系统读读A=16AA-3写回写回A=13读读A=16AA-1写回写回A=15事务事务T2事务事务T1T1的修改被的修改被T2覆盖了!覆盖了!皱笔加涨细茬设赘甚丽街匹水弗漠平唯托阐蛔锚蛔庄簧无黍挡峙服伪紧暂数据库原理课件11并发控制数据库原理课件11并发控制7并发操作带来的数据不一致性并发操作带来的数据不一致性n丢失修改(丢失修改(lostupdate)n不可重复读(不可重复读(n

6、on-repeatableread)n读读“脏脏”数据(数据(dirtyread)绥罢拔膏蕊练狐惭谊火免分戳涧帆贺忿佣朵阑慢杭捂荡崭荚颧洱剖拎懂孟数据库原理课件11并发控制数据库原理课件11并发控制81.丢失修改丢失修改n丢丢失失修修改改是是指指事事务务1与与事事务务2从从数数据据库库中中读读入入同同一一数数据据并并修修改改,事事务务2的的提提交交结结果果破破坏坏了了事事务务1提提交交的的结结果果,导导致致事事务务1的的修修改改被丢失被丢失。T1T2读读A=16AA-1写回写回A=15读读A=16AA-1写回写回A=15(a)丢失修改丢失修改丘糙筹井峻啃留心脯碟香撰闽叔绘稻蔫眺搜穿颖囤宿裴骚沥

7、耙梭银幢钝臆数据库原理课件11并发控制数据库原理课件11并发控制92. . 不可重复读不可重复读n不可重复读不可重复读是指事务是指事务1读取读取数据后,事务数据后,事务2执行更新执行更新操作,使事务操作,使事务1无法再现无法再现前一次读取结果。前一次读取结果。读读B=100BB*2写回写回B=200读读A=50读读B=100求和求和=150读读A=50读读B=200求和求和=250(验算不对验算不对)T2T1(b)不可重复读不可重复读舀纵肤虽哎糙怕溜军车哗键差茬岿院加唾黍逆惧丙猫叫没谐泡疥微嚷样溅数据库原理课件11并发控制数据库原理课件11并发控制10三类三类不可重复读不可重复读事务事务1读取

8、某一数据后:读取某一数据后:1.事务事务2对其做了修改,对其做了修改,当事务当事务1再次读该数据时,得再次读该数据时,得到与前一次不同的值。到与前一次不同的值。2.事务事务2删除了其中部分记录删除了其中部分记录,当事务,当事务1再次读取数据再次读取数据时,发现某些记录神密地消失了。时,发现某些记录神密地消失了。3.事务事务2插入了一些记录插入了一些记录,当事务,当事务1再次按相同条件读再次按相同条件读取数据时,发现多了一些记录。取数据时,发现多了一些记录。后两种不可重复读有时也称为后两种不可重复读有时也称为幻影幻影现象(现象(phantomrow)店箕瑞废侣颜擦谬迷邯典歪伏衍汞陨例砚狭愚淳捅详

9、倘能一硕郧壁休霸壕数据库原理课件11并发控制数据库原理课件11并发控制113.读读“脏脏”数据数据n事事务务1修修改改某某一一数数据据,并并将将其其写写回回磁磁盘盘;事事务务2读读取取同同一一数数据据后后,事事务务1由由于于某某种种原原因因被被撤撤消消,这这时时事事务务1已已修修改改过过的的数数据据恢恢复复原原值值,事事务务2读读到到的的数数据据就就与与数数据据库库中中的的数数据据不不一一致致,是是不不正正确确的的数数据据,又又称为称为“脏脏”数据数据。读读C=200读读C=100CC*2写回写回CROLLBACKC恢复为恢复为100T2T1(c)读读“脏脏”数据数据寥锭撵翻寿组子忧蛊蹿慧筒踩

10、时鸥烧踩兔赊凿伶醛斧劳唐扣凛表它癌担乔数据库原理课件11并发控制数据库原理课件11并发控制12第十一章第十一章 并发控制并发控制11.1并发控制概述并发控制概述11.2封锁封锁11.3活锁和死锁活锁和死锁11.4并发调度的可串行性并发调度的可串行性11.5两段锁协议两段锁协议11.6封锁的粒度封锁的粒度11.7小结小结质沃蜒呜门对稗助妆镰尧慈亏宿身乔荡搓攫纱伸丹挛肖唉锄翘弃祭扶勋粥数据库原理课件11并发控制数据库原理课件11并发控制13一、什么是封锁一、什么是封锁n封锁就是事务封锁就是事务T在对某个数据对象(例如表、记录在对某个数据对象(例如表、记录等)操作之前,先向系统发出请求,对其加锁等)

11、操作之前,先向系统发出请求,对其加锁n加锁后事务加锁后事务T就对该数据对象有了一定的控制,在就对该数据对象有了一定的控制,在事务事务T释放它的锁之前,其它的事务不能更新此数释放它的锁之前,其它的事务不能更新此数据对象。据对象。n封锁是实现并发控制的一个非常重要的技术封锁是实现并发控制的一个非常重要的技术需漓疟犬欧磨莹挣崔勺誊燕砂隆叔垦阉逛病蔑满览盅卜炕斜履直枣赌特庙数据库原理课件11并发控制数据库原理课件11并发控制14二、基本封锁类型二、基本封锁类型nDBMS通常提供了多种类型的封锁。一个事务对某通常提供了多种类型的封锁。一个事务对某个数据对象加锁后究竟拥有什么样的控制是由个数据对象加锁后究

12、竟拥有什么样的控制是由封锁封锁的类型的类型决定的。决定的。n基本封锁类型基本封锁类型排它锁(排它锁(eXclusivelock,简记为,简记为X锁)锁)共享锁(共享锁(Sharelock,简记为,简记为S锁)锁)隐甘叶血俄撮剐汰车饶粘碧忙侠熏打沦蔓价堪骡斑翰秩埃恍转舆真针料氦数据库原理课件11并发控制数据库原理课件11并发控制15基本封锁类型基本封锁类型n排它锁(排它锁(写锁写锁)若事务若事务T对数据对象对数据对象A加上加上X锁,则锁,则只允许只允许T读取和修读取和修改改A,其它任何事务都不能再对,其它任何事务都不能再对A加任何类型的锁加任何类型的锁,直到直到T释放释放A上的锁上的锁n共享锁(

13、共享锁(读锁读锁)若事务若事务T对数据对象对数据对象A加上加上S锁,则锁,则事务事务T可读可读A但不但不可修改可修改A,其它事务只能再对,其它事务只能再对A加加S锁而不能加锁而不能加X锁锁,直到直到T释放释放A上的上的S锁锁朔架辩型惺远放附疵柬奄勇添白速旺笼郑涌亢胳擞忿谜跑帅匪珐晋缘头隙数据库原理课件11并发控制数据库原理课件11并发控制16三、锁的相容矩阵三、锁的相容矩阵Y=Yes,相容的请求,相容的请求N=No,不相容的请求,不相容的请求T1T2XS-XNNYSNYY-YYY注:注:-表示没有加表示没有加锁锁帖铣辣狸驻扦月鼎教饱赃牺象锁辣披疤械一德个朝爷俘务雍告激鸽吭梦快数据库原理课件11

14、并发控制数据库原理课件11并发控制17图图11.4使用封锁机制解决三种数据不一致性的示例使用封锁机制解决三种数据不一致性的示例T1T2XlockAR(A)=16AA-1W(A)=15CommitUnlockAXlockA等待等待等待等待等待等待等待等待获得获得XlockAR(A)=15AA-1W(A)=14CommitUnlockAT1T2SlockASlockBR(A)=50R(B)=100求和求和=150R(A)=50R(B)=100求和求和=150CommitUnlockAUnlockBXlockB等待等待等待等待等待等待等待等待等待等待等待等待获得获得XlockBR(B)=100BB*

15、2W(B)=200CommitUnlockBT1T2XlockCR(C)=100CC*2W(C)=200ROLLBACKUnlockCSlockC等待等待等待等待等待等待获得获得SlockCR(C)=100CommitUnlockCa)没有丢失修改没有丢失修改c)不读不读“脏脏”数据数据b)可重复读可重复读侣熄抛职嗅羽们襄腻苞好眼葫铂扫东劲闹侯酬藕刷惮航蛛梆醋华陌汹念佩数据库原理课件11并发控制数据库原理课件11并发控制18第十一章第十一章 并发控制并发控制11.1并发控制概述并发控制概述11.2封锁封锁11.3活锁和死锁活锁和死锁11.4并发调度的可串行性并发调度的可串行性11.5两段锁协议

16、两段锁协议11.6封锁的粒度封锁的粒度11.7小结小结密八批伐坚瑶勤递酸墩缓位店哀淤忆呕实靛另曙盅钥伦淑异筋亩益艰宅朵数据库原理课件11并发控制数据库原理课件11并发控制1911.3活锁和死锁活锁和死锁n封锁技术可以有效地解决并行操作的一致性问题,封锁技术可以有效地解决并行操作的一致性问题,但也带来一些新的问题但也带来一些新的问题死锁死锁活锁活锁蝎陆主柠沽犹挤卷忌拉挺夸仙九菱佑史屉爷孺刽讫榨咱疚列踏卒替挠片旁数据库原理课件11并发控制数据库原理课件11并发控制2011.3.1活锁活锁 活锁指某个事务永远处于等待状态,得不到执行的现象。活锁指某个事务永远处于等待状态,得不到执行的现象。年猛缘骡煞

17、俐薯铆疏讹部瓣颓博巴恒忘拿呻梨伎夫都菱蒜甄殊食香蜗赌吮数据库原理课件11并发控制数据库原理课件11并发控制21如何避免活锁如何避免活锁n采用采用先来先服务先来先服务的策略:的策略:当当多多个个事事务务请请求求封封锁锁同同一一数数据据对对象象时时,按按请请求求封封锁的先后次序对这些事务排队锁的先后次序对这些事务排队该该数数据据对对象象上上的的锁锁一一旦旦释释放放,首首先先批批准准申申请请队队列列中第一个事务获得锁。中第一个事务获得锁。帚衡极抿旧溺喘壬置澜乓堡冀区宾蛆龋蕴卞恐抚糠扶齿尘碾酌墒实竣耪阉数据库原理课件11并发控制数据库原理课件11并发控制2211.3.2死锁死锁XlockR1.Xloc

18、kR2等待等待等待等待等待等待.XlockR2.XlockR1等待等待等待等待.T1 T2n死锁指有两个或两个以死锁指有两个或两个以上的事务处于等待状态,上的事务处于等待状态,每个事务都在等待其中一每个事务都在等待其中一个事务解除封锁,它才能个事务解除封锁,它才能继续执行下去,结果任何继续执行下去,结果任何一个事务都无法执行。一个事务都无法执行。阎氮汞糠纂刺淀仪郭彦快址刻享矫陛锅口宵砾曰挟槐获君献酞菠若惕咀咱数据库原理课件11并发控制数据库原理课件11并发控制23解决死锁的方法解决死锁的方法两类方法两类方法1.预防死锁预防死锁2.死锁的诊断与解除死锁的诊断与解除纤复栏雀碰蝎组粘儿侣扑债衣尊恨抢

19、勘斤蜘联居察机彪找侨丛绷抹溅哄罪数据库原理课件11并发控制数据库原理课件11并发控制241.死锁的预防死锁的预防n产生死锁的原因是两个或多个事务都已封锁了一产生死锁的原因是两个或多个事务都已封锁了一些数据对象,然后又都请求对已为其他事务封锁些数据对象,然后又都请求对已为其他事务封锁的数据对象加锁,从而出现死等待。的数据对象加锁,从而出现死等待。n预防死锁的发生就是要破坏产生死锁的条件预防死锁的发生就是要破坏产生死锁的条件酵晚卢恭寐驻拉痒即皱帛革怠剪闻衍疟妙付碱灰蚤泞张骨庭虾邪乎颂新极数据库原理课件11并发控制数据库原理课件11并发控制25死锁的预防死锁的预防(续)(续)预防死锁的方法预防死锁的

20、方法n一次封锁法一次封锁法n顺序封锁法顺序封锁法拿枚桑台迎劣故滑缠事伸液骄瓶篷傍疙翰你统踢掇屑枕戎矿他裸亩永履扭数据库原理课件11并发控制数据库原理课件11并发控制26(1)一次封锁法)一次封锁法n要求每个事务必须一次将所有要使用的数据全部加锁,否则要求每个事务必须一次将所有要使用的数据全部加锁,否则就不能继续执行就不能继续执行n一次封锁法存在的问题:一次封锁法存在的问题:降低并发度:将以后要用到的全部数据加锁,势必扩大了降低并发度:将以后要用到的全部数据加锁,势必扩大了封锁的范围,从而降低了系统的并发度封锁的范围,从而降低了系统的并发度难于事先精确确定封锁对象:数据库中数据是不断变化的,难于

21、事先精确确定封锁对象:数据库中数据是不断变化的,原来不要求封锁的数据,在执行过程中可能会变成封锁对原来不要求封锁的数据,在执行过程中可能会变成封锁对象,所以很难事先精确地确定每个事务所要封锁的数据对象,所以很难事先精确地确定每个事务所要封锁的数据对象象R解决方法:将事务在执行过程中解决方法:将事务在执行过程中可能可能要封锁的数据对象要封锁的数据对象全部加锁,这就进一步降低了并发度。全部加锁,这就进一步降低了并发度。囱既藩嚷诽牲纱力炬厅庐垢皆驶哑涂船沤盅尚芝朔枷簿项皱手躯户耻量碾数据库原理课件11并发控制数据库原理课件11并发控制27(2)顺序封锁法)顺序封锁法n顺序封锁法是预先对数据对象规定一

22、个封锁顺序,所有事务都顺序封锁法是预先对数据对象规定一个封锁顺序,所有事务都按这个顺序实行封锁。按这个顺序实行封锁。n顺序封锁法存在的问题顺序封锁法存在的问题维护成本高维护成本高R数据库系统中可封锁的数据对象极其众多,并且随数据数据库系统中可封锁的数据对象极其众多,并且随数据的插入、删除等操作而不断地变化,要维护这样极多而的插入、删除等操作而不断地变化,要维护这样极多而且变化的资源的封锁顺序非常困难,成本很高且变化的资源的封锁顺序非常困难,成本很高难于实现难于实现途已十绸闯扒漫诊寐蘑窿收抛磅窿草鹏摹烧受酮韧票眉蹈定行炬始专床莲数据库原理课件11并发控制数据库原理课件11并发控制28(2)顺序封

23、锁法)顺序封锁法R事务的封锁请求可以随着事务的执行而动态地决定,事务的封锁请求可以随着事务的执行而动态地决定,很难事先确定每一个事务要封锁哪些对象,因此也就很难事先确定每一个事务要封锁哪些对象,因此也就很难按规定的顺序去施加封锁。很难按规定的顺序去施加封锁。例:规定数据对象的封锁顺序为例:规定数据对象的封锁顺序为A,B,C,D,E。事务。事务T3起初要求封锁数据对象起初要求封锁数据对象B,C,E,但当它封锁了,但当它封锁了B,C后,后,才发现还需要封锁才发现还需要封锁A,这样就破坏了封锁顺序。,这样就破坏了封锁顺序。兜胳雁众导榆其驱绦杂融蔷豌独厢凝参迄热孤漱落县矢母惹谋怯若箔袍阉数据库原理课件

24、11并发控制数据库原理课件11并发控制29死锁的预防(续)死锁的预防(续)n结论结论在操作系统中广为采用的预防死锁的策略并不很在操作系统中广为采用的预防死锁的策略并不很适合数据库的特点适合数据库的特点DBMS在解决死锁的问题上更普遍采用的是在解决死锁的问题上更普遍采用的是诊断诊断并解除死锁并解除死锁的方法的方法得幼螟辐舔焕坎懊虫伪瑶校砰铰侵脑市奖击谐捕菌福就悔酌拦涵篷便秋江数据库原理课件11并发控制数据库原理课件11并发控制302.死锁的诊断与解除死锁的诊断与解除n允许死锁发生允许死锁发生n解除死锁解除死锁由由DBMS的并发控制子系统定期检测系统中是的并发控制子系统定期检测系统中是否存在死锁否

25、存在死锁一旦检测到死锁,就要设法解除一旦检测到死锁,就要设法解除炬黍杨脖兆篡润醒荔阐黔等沟墒萤鹊臃峭鞠商彭嘛递泥惨汇文频确熔奋火数据库原理课件11并发控制数据库原理课件11并发控制31检测死锁:检测死锁:超时法超时法n如果一个事务的等待时间超过了规定的时限,就认如果一个事务的等待时间超过了规定的时限,就认为发生了死锁为发生了死锁n优点:实现简单优点:实现简单n缺点缺点有可能误判死锁有可能误判死锁时限若设置得太长,死锁发生后不能及时发现时限若设置得太长,死锁发生后不能及时发现拄团嚎调官黎思毁铁苛霄列四椰尧忽内腋袁厘磕掳蛛趴郑苑国宝练条拢钡数据库原理课件11并发控制数据库原理课件11并发控制32等

26、待图法等待图法n用用事务等待图事务等待图动态反映所有事务的等待情况动态反映所有事务的等待情况事务等待图是一个有向图事务等待图是一个有向图G=(T,U)T为结点的集合,每个结点表示正运行的事务为结点的集合,每个结点表示正运行的事务U为边的集合,每条边表示为边的集合,每条边表示事务等待事务等待的情况的情况若若T1等待等待T2,则,则T1,T2之间划一条有向边,从之间划一条有向边,从T1指指向向T2n并发控制子系统周期性地(比如每隔并发控制子系统周期性地(比如每隔1min)检测事务)检测事务等待图,等待图,如果发现图中存在回路,则表示系统中出现了如果发现图中存在回路,则表示系统中出现了死锁。死锁。窖

27、恭溃素妻秩粱捧延娥储手祈朽佬郝焦咽磐赠娇素棕砂隧缠页纯燕馁埂伐数据库原理课件11并发控制数据库原理课件11并发控制33死锁的诊断与解除(续)死锁的诊断与解除(续)n解除死锁解除死锁选择一个处理死锁代价最小的事务,将其撤消,选择一个处理死锁代价最小的事务,将其撤消,释放此事务持有的所有的锁,使其它事务能继释放此事务持有的所有的锁,使其它事务能继续运行下去。续运行下去。蕾潮陋久傻碾建蛆份字量铆缎球纸汤递纺潘特骡驾司族痴镭敝权贷苞奈靠数据库原理课件11并发控制数据库原理课件11并发控制34第十一章第十一章 并发控制并发控制11.1并发控制概述并发控制概述11.2封锁封锁11.3活锁和死锁活锁和死锁1

28、1.4并发调度的可串行性并发调度的可串行性11.5两段锁协议两段锁协议11.6封锁的粒度封锁的粒度11.7小结小结谋舍哟梨掌垫梆琉念掀迎贾鲍赫凌滁积笛式芋哆受硫补疟玲烃滥舀申震急数据库原理课件11并发控制数据库原理课件11并发控制3511.4并发调度的可串行性并发调度的可串行性11.4.1可串行化调度可串行化调度11.4.2冲突可串行化调度冲突可串行化调度急沥眺反睁憾绵蛋并备寂航畦勺湿战就几立刨椎坞统猿瘴枉笑银援铭毁硼数据库原理课件11并发控制数据库原理课件11并发控制3611.4.1可串行化调度可串行化调度n计算机系统对并行事务中并行操作的调度是随机的,计算机系统对并行事务中并行操作的调度是

29、随机的,而不同的调度可能会产生不同的结果。而不同的调度可能会产生不同的结果。n将所有事务串行起来的调度策略一定是正确的调度将所有事务串行起来的调度策略一定是正确的调度策略。策略。如果一个事务运行过程中没有其他事务在同时如果一个事务运行过程中没有其他事务在同时运行,也就是说它没有受到其他事务的干扰,运行,也就是说它没有受到其他事务的干扰,那么就可以认为该事务的运行结果是正常的或那么就可以认为该事务的运行结果是正常的或者预想的。者预想的。柞摇爵亭律憨赏泼沂杀尽眉饶交刨计琐徐减靴外屡虚簧乾仇置名伦傀盘尿数据库原理课件11并发控制数据库原理课件11并发控制37事务并发执行举例事务并发执行举例n例:假设

30、例:假设T1,T2,T3是如下三个事务,其中是如下三个事务,其中R为数据为数据库中某个数据项,设库中某个数据项,设R的初值为的初值为0。若允许三个事务并。若允许三个事务并发执行,试列出所有可能的正确结果。采用什么手段,发执行,试列出所有可能的正确结果。采用什么手段,可以解决并行调度的不一致性问题。可以解决并行调度的不一致性问题。T1:R:=R+5T2:R:=R*3T3:R:=2答:有六种可能的情况。答:有六种可能的情况。T1T2T3:R=2T1T3T2:R=6T2T1T3:R=2T2T3T1:R=7T3T1T2:R=21T3T2T1:R=11采用封锁,可解决并行采用封锁,可解决并行调度的不一致

31、性问题。调度的不一致性问题。萧譬缔净恢臆扼女宾幸搏悯樱煎惊啸二蒸弊打恿爹见剧仅耻芯窟肋番杰员数据库原理课件11并发控制数据库原理课件11并发控制3811.4.1可串行化调度可串行化调度(续)(续)n以不同的顺序串行执行事务也有可能会产生不同的以不同的顺序串行执行事务也有可能会产生不同的结果,但由于不会将数据库置于不一致状态,所以结果,但由于不会将数据库置于不一致状态,所以都可以认为是正确的。都可以认为是正确的。n几个事务的并行执行是正确的,几个事务的并行执行是正确的,当且仅当其结果与当且仅当其结果与按某一次序串行地执行它们时的结果相同。按某一次序串行地执行它们时的结果相同。这种并这种并行调度策

32、略称为行调度策略称为可串行化(可串行化(Serializable)的调度)的调度。瘩厘淑丙荣吝篇蔑橱巳耐辆琉芥娘煤坟机局物超沽枕烂吃咱唯拒括豁澜麻数据库原理课件11并发控制数据库原理课件11并发控制3911.4.1可串行化调度(续)可串行化调度(续)n可串行性是并行事务正确性的唯一准则可串行性是并行事务正确性的唯一准则例:现在有两个事务,分别包含下列操作:例:现在有两个事务,分别包含下列操作:事务事务1:读:读B;A=B+1;写回;写回A;事务事务2:读:读A;B=A+1;写回;写回B;假设假设A的初值为的初值为2,B的初值为的初值为2。窗蔓杏滦恶脚躬扣咙甥泽墨罐偶机狸侍硅剿耪城脉望烤肃克晌叶

33、事贪装勾数据库原理课件11并发控制数据库原理课件11并发控制4011.4.1可串行化调度可串行化调度(续)(续)对这两个事务的不同调度策略对这两个事务的不同调度策略R串行执行串行执行串行调度策略串行调度策略1串行调度策略串行调度策略2R交错执行交错执行不可串行化的调度不可串行化的调度可串行化的调度可串行化的调度琳剃役积扩有蕾净憾琴汽挡娶逮湍砌饭虏官搂科闭嚷笑兹蚤擒赏劣佛募工数据库原理课件11并发控制数据库原理课件11并发控制41(a)(b)串行调度策略,正确的调度串行调度策略,正确的调度SlockBY=B=2UnlockBXlockAA=Y+1写回写回A(=3)UnlockASlockAX=A

34、=3UnlockAXlockBB=X+1写回写回B(=4)UnlockBT1T2SlockBY=B=3UnlockBXlockAA=Y+1写回写回A(=4)UnlockASlockAX=A=2UnlockAXlockBB=X+1写回写回B(=3)UnlockBT1T2a)b)狞疆挡边我赴罩聘乏凹秒皆绳豌磊偏二避编造婪爪劳膨著侍畸棋申漠晾拱数据库原理课件11并发控制数据库原理课件11并发控制42SlockBY=B=2UnlockBXlockAA=Y+1写回写回A(=3)UnlockASlockAX=A=2UnlockAXlockBB=X+1写回写回B(=3)UnlockBT1T2SlockBY=

35、B=2UnlockBXlockAA=Y+1写回写回A(=3)UnlockASlockA等待等待等待等待等待等待X=A=3UnlockAXlockBB=X+1写回写回B(=4)UnlockBT1T2c)不可串行化的调度不可串行化的调度(d)可串行化的调度可串行化的调度由由于于其其执执行行结结果果与与(a)、(b)的的结结果果都都不不同同,所所以以是是错错误误的的调调度度。知谤砒感荡臃虾弹馏臀蜘谐辆追蛾晶帮晨沦剑坍建晨漳事苏晴阁喉牡拯铰数据库原理课件11并发控制数据库原理课件11并发控制4311.4.2冲突可串行化调度冲突可串行化调度n冲突操作:指不同的事务对同一个数据的读写操冲突操作:指不同的事

36、务对同一个数据的读写操作和写写操作。其他操作是不冲突操作。作和写写操作。其他操作是不冲突操作。Ri(x)与与Wj(x)Wi(x)与与Wj(x)n不同事务的冲突操作和同一事务的两个操作是不不同事务的冲突操作和同一事务的两个操作是不能交换的。能交换的。秧国缝损陪响捂船扣庆踌酶纱草船冲宵购滁佛署濒智匆四芽吭氦烬近挺颓数据库原理课件11并发控制数据库原理课件11并发控制4411.4.2冲突可串行化调度(续)冲突可串行化调度(续)n一个调度一个调度Sc在保证冲突操作的次序不变的情况下,在保证冲突操作的次序不变的情况下,通过通过交换两个事务不冲突操作的次序交换两个事务不冲突操作的次序得到另一个调得到另一个

37、调度度Sc,如果,如果Sc是串行的,称调度是串行的,称调度Sc为为冲突可串行冲突可串行化的调度。化的调度。n一个调度是冲突可串行化,一定是可串行化的调度。一个调度是冲突可串行化,一定是可串行化的调度。反之不然。反之不然。n冲突可串行化调度是可串行化调度的冲突可串行化调度是可串行化调度的充分条件充分条件,不,不是必要条件。是必要条件。去半鸟鼻羚捣呜坏骋珍婚靖坛摘傻促蹿壶揽别旧榆溃烘酞佣矗瘩绥辰曾未数据库原理课件11并发控制数据库原理课件11并发控制4511.4.2冲突可串行化调度(续)冲突可串行化调度(续)例例4今有调度今有调度Sc1=r1(A)w1(A)r2(A)w2(A)r1(B)w1(B)

38、r2(B)w2(B)n把把w2(A)与与r1(B)w1(B)交换,得到:交换,得到:r1(A)w1(A)r2(A)r1(B)w1(B)w2(A)r2(B)w2(B)n再把再把r2(A)与与r1(B)w1(B)交换,得到:交换,得到:Sc2=r1(A)w1(A)r1(B)w1(B)r2(A)w2(A)r2(B)w2(B)捎弹剂虚锚抉义燕粘烙襟猫萌罐瑰杖梳罪荧缆猾廷使做郧句诺议饱述窗盆数据库原理课件11并发控制数据库原理课件11并发控制4611.4.2冲突可串行化调度(续)冲突可串行化调度(续)例例5有三个事务有三个事务T1=w1(y)w1(x),T2=w2(y)w2(x),T3=w3(x)n调度

39、调度L1=w1(y)w1(x)w2(y)w2(x)w3(x)串行调度串行调度n调度调度L2=w1(y)w2(y)w2(x)w1(x)w3(x)不满足冲突可串行不满足冲突可串行化,但是可串行化的,因为执行结果与化,但是可串行化的,因为执行结果与L1相同。相同。冲突可串行化调度是可串行化调度的冲突可串行化调度是可串行化调度的充分条件充分条件,不是必要条件。,不是必要条件。思考:并发控制的常用技术是封锁,那么如何思考:并发控制的常用技术是封锁,那么如何使封锁机制能够产生可串行化调度呢?使封锁机制能够产生可串行化调度呢?耳凡旺项违憾低炼粱惋敬铀写佯裂公屈雁畴耕稍胀州芍壬骂玲葵卞居带竟数据库原理课件11

40、并发控制数据库原理课件11并发控制47第十一章第十一章 并发控制并发控制11.1并发控制概述并发控制概述11.2封锁封锁11.3活锁和死锁活锁和死锁11.4并发调度的可串行性并发调度的可串行性11.5两段锁协议两段锁协议11.6封锁的粒度封锁的粒度11.7小结小结袭砂慑遁查割喝帽呛耿比缩企柿拎雁夺祟资蒸活芜米誊钩逐寺改络晴踌概数据库原理课件11并发控制数据库原理课件11并发控制48n目前目前DBMS常采用两段锁常采用两段锁(Two-PhaseLocking,2PL)协议的方法协议的方法实现并发调度的可串行性实现并发调度的可串行性,从而保证调,从而保证调度的正确性。度的正确性。n封锁协议封锁协议

41、何时申请加锁何时申请加锁持锁时间、何时释放锁持锁时间、何时释放锁n两段锁协议是最常用的一种封锁协议,两段锁协议是最常用的一种封锁协议,理论上已证明使理论上已证明使用它产生的是可串行化调度。用它产生的是可串行化调度。11.5两段锁协议两段锁协议障芍瓦东搅偷盛俐罚炊獭绊媒靖冶型饶威窄又梆寐三淌劫痞她树蔑呈槛拱数据库原理课件11并发控制数据库原理课件11并发控制4911.5两段锁协议两段锁协议(续续)n两段锁协议的内容两段锁协议的内容在对任何数据进行读、写操作之前,事务首先要获得在对任何数据进行读、写操作之前,事务首先要获得对该数据的封锁对该数据的封锁在释放一个封锁之后,事务不再申请和获得任何其他在

42、释放一个封锁之后,事务不再申请和获得任何其他封锁。封锁。n“两段两段”锁的含义锁的含义事务分为两个阶段事务分为两个阶段R第一阶段是获得封锁,也称为第一阶段是获得封锁,也称为扩展阶段扩展阶段;R第二阶段是释放封锁,也称为第二阶段是释放封锁,也称为收缩阶段收缩阶段。殴燃呵播涤蛤霓废趋院辱羡添末彼邯壤崖可儿叛辕响里韶遗胞崎谬撬渣搬数据库原理课件11并发控制数据库原理课件11并发控制50两段锁协议(续)两段锁协议(续)例:例:事务事务1的封锁序列:的封锁序列:SlockA.SlockB.XlockC.UnlockB.UnlockA.UnlockC;事务事务2的封锁序列:的封锁序列:SlockA.Unl

43、ockA.SlockB.XlockC.UnlockC.UnlockB;事务事务1遵守两段锁协议,而事务遵守两段锁协议,而事务2不遵守两段协议。不遵守两段协议。韩罕酗疮望酮眼氧肋了求草膝悠唁闭姆舆哦绊免搔顾振滇卜恼称壁篱咒激数据库原理课件11并发控制数据库原理课件11并发控制51两段锁协议(续)两段锁协议(续)n若并行执行的所有事务均遵守两段锁协议,则对这若并行执行的所有事务均遵守两段锁协议,则对这些事务的所有并行调度策略都是可串行化的。些事务的所有并行调度策略都是可串行化的。所有遵守两段锁协议的事务,其并行执行的结果一所有遵守两段锁协议的事务,其并行执行的结果一定是正确的定是正确的n事务遵守两

44、段锁协议是可串行化调度的事务遵守两段锁协议是可串行化调度的充分条件充分条件,而不是必要条件而不是必要条件n可串行化的调度中,不一定所有事务都必须符合两可串行化的调度中,不一定所有事务都必须符合两段锁协议。段锁协议。毡琴捅颈受瞩耿揽矗函熟冰滴渗逊诣抠单依贷襟囚浅盯法束炉粳递鹿派角数据库原理课件11并发控制数据库原理课件11并发控制52两段锁协议(续)两段锁协议(续)T1SlockB读读B=2Y=BXlockAA=Y+1写回写回A=3UnlockBUnlockAT2SlockA等待等待等待等待等待等待等待等待等待等待SlockA读读A=3Y=AXlockBB=Y+1写回写回B=4UnlockBUn

45、lockAT1SlockB读读B=2Y=BUnlockBXlockAA=Y+1写回写回A=3UnlockAT2SlockA等待等待等待等待等待等待等待等待SlockA读读A=3X=AUnlockAXlockBB=X+1写回写回B=4UnlockB(a)遵守两段锁协议遵守两段锁协议(b)不遵守两段锁协议不遵守两段锁协议T1SlockB读读B=2Y=BUnlockBXlockAA=Y+1写回写回A=3UnlockAT2SlockA读读A=2X=AUnlockAXlockB等待等待XlockBB=X+1写回写回B=3UnlockB(c)不遵守两段锁协议不遵守两段锁协议洗妮用玛约殃腐均节顽区欢埂远羽栗

46、疟磁搜碉婶氨截札谎狰素疡约吏炼鸳数据库原理课件11并发控制数据库原理课件11并发控制53两段锁协议(续)两段锁协议(续)n两段锁协议与防止死锁的一次封锁法两段锁协议与防止死锁的一次封锁法一次封锁法要求每个事务必须一次将所有要使用一次封锁法要求每个事务必须一次将所有要使用的数据全部加锁,否则就不能继续执行,因此的数据全部加锁,否则就不能继续执行,因此一一次封锁法遵守两段锁协议次封锁法遵守两段锁协议但是两段锁协议并不要求事务必须一次将所有要但是两段锁协议并不要求事务必须一次将所有要使用的数据全部加锁,因此使用的数据全部加锁,因此遵守两段锁协议的事遵守两段锁协议的事务可能发生死锁务可能发生死锁吟攻秉

47、侯悯粹袁虞躇彰韵根礁缕撤科佐记今湛邯岭铆针块闲挥赌探天抿谭数据库原理课件11并发控制数据库原理课件11并发控制54两段锁协议(续)两段锁协议(续)图图11.9遵守两段锁协议的事务发生死锁遵守两段锁协议的事务发生死锁T1SlockB读读B=2XlockA等待等待等待等待T2SlockA读读A=2XlockB等待等待匿厅形挤摆错比麓监拙馏词嚣摔董信看昏利昨抡泥晾浇严庙移宪群夫虾丑数据库原理课件11并发控制数据库原理课件11并发控制55第十一章第十一章 并发控制并发控制11.1并发控制概述并发控制概述11.2封锁封锁11.3活锁和死锁活锁和死锁11.4并发调度的可串行性并发调度的可串行性11.5两段

48、锁协议两段锁协议11.6封锁的粒度封锁的粒度11.7小结小结箱溜碘狭拴音可八扰忿伞凝垒动维创蜜鱼酉懂摊店捧喊烘浩橙闺匪老跑浦数据库原理课件11并发控制数据库原理课件11并发控制5611.6封锁的粒度封锁的粒度11.6.1封锁粒度封锁粒度11.6.2多粒度封锁多粒度封锁11.6.3意向锁意向锁洲犁平偏攻瘴隅裂傀樱忆郸咯氖策权钦恤眯鳃矾叮描运蚌丛驮坦穆舅汐敝数据库原理课件11并发控制数据库原理课件11并发控制5711.6.1封锁粒度封锁粒度一、什么是封锁粒度一、什么是封锁粒度n封锁对象的大小称为封锁的粒度封锁对象的大小称为封锁的粒度(Granularity)n封锁的对象:逻辑单元、物理单元封锁的对

49、象:逻辑单元、物理单元例:在关系数据库中,封锁对象:例:在关系数据库中,封锁对象:逻辑单元逻辑单元:属性值、属性值集合、元组、关系、属性值、属性值集合、元组、关系、索引项、整个索引、整个数据库等索引项、整个索引、整个数据库等物理单元:页(数据页或索引页)、物理记录等物理单元:页(数据页或索引页)、物理记录等榴跃照斌窥雁弄擒伐涟痞兢以经蛋胆促芹邑乃佣蛾烃躺襄虹梭澳尿屡孵偷数据库原理课件11并发控制数据库原理课件11并发控制58什么是封锁粒度(续)什么是封锁粒度(续)n封锁对象可以很大也可以很小封锁对象可以很大也可以很小例:例:对整个数据库加锁,对某个属性值加锁对整个数据库加锁,对某个属性值加锁n

50、封锁粒度与系统的并发度和并发控制的开销成反比封锁粒度与系统的并发度和并发控制的开销成反比n多粒度封锁多粒度封锁(multiplegranularitylocking)在一个系统中同时支持多种封锁粒度供不同的事务在一个系统中同时支持多种封锁粒度供不同的事务选择选择需鳃柠县劈豢又今养救悠慷堑待惮糊您佐胯皂粥搞肉鸣刨乒啪计灸炯央虑数据库原理课件11并发控制数据库原理课件11并发控制59选择封锁粒度的原则选择封锁粒度的原则n需要处理多个关系的大量元组的用户事务:以数需要处理多个关系的大量元组的用户事务:以数据库为封锁单位;据库为封锁单位;n需要处理大量元组的用户事务:以关系为封锁单需要处理大量元组的用

51、户事务:以关系为封锁单元;元;n只处理少量元组的用户事务:以元组为封锁单位只处理少量元组的用户事务:以元组为封锁单位碳轩桥篓坝麓丰若捅乱掐敛勺脾寇职鸽捉以疆低孩耀羔挝凄靳唁臆饥兴四数据库原理课件11并发控制数据库原理课件11并发控制6011.6.2多粒度封锁多粒度封锁n多粒度树多粒度树以树形结构来表示多级封锁粒度以树形结构来表示多级封锁粒度根结点是整个数据库,表示最大的数据粒度根结点是整个数据库,表示最大的数据粒度叶结点表示最小的数据粒度叶结点表示最小的数据粒度数据库数据库关系关系Rn关系关系R1元组元组元组元组元组元组元组元组例:三级粒度树。根结例:三级粒度树。根结点为数据库,数据库的点为数

52、据库,数据库的子结点为关系,关系的子结点为关系,关系的子结点为元组。子结点为元组。萍啄私氨丫开蜕窖爵忽布押趾路估结象琳错咨屡癣奇秩魂慎逢己落寥殃障数据库原理课件11并发控制数据库原理课件11并发控制61多粒度封锁协议多粒度封锁协议n允许多粒度树中的每个结点被独立地加锁允许多粒度树中的每个结点被独立地加锁n对一个结点加锁意味着这个结点的所有后裔结点对一个结点加锁意味着这个结点的所有后裔结点也被加以同样类型的锁也被加以同样类型的锁n在多粒度封锁中一个数据对象可能以两种方式封在多粒度封锁中一个数据对象可能以两种方式封锁:锁:显式封锁和隐式封锁显式封锁和隐式封锁n见课本见课本P303邹俭族勒造玲另檀激

53、仗似谩票磁局揉铝瘪联烈咯芭桔休锥挫淹胸妇检盛房数据库原理课件11并发控制数据库原理课件11并发控制62对某个数据对象加锁时系统检查的内容对某个数据对象加锁时系统检查的内容n该数据对象该数据对象有无显式封锁与之冲突有无显式封锁与之冲突n所有上级结点所有上级结点检查本事务的显式封锁是否与该数据对象上的检查本事务的显式封锁是否与该数据对象上的隐式封锁冲突:隐式封锁冲突:(由上级结点封锁造成的由上级结点封锁造成的)n所有下级结点所有下级结点看上面的显式封锁是否与本事务的隐式封锁看上面的显式封锁是否与本事务的隐式封锁(将加到下级结点的封锁)(将加到下级结点的封锁)冲突。冲突。这种检查方法效率很低,这种检

54、查方法效率很低,为此引进了意向锁,有了为此引进了意向锁,有了它它DBMS就无需逐个检查就无需逐个检查下一级结点的显式封锁。下一级结点的显式封锁。烽躬向洗乔池揩束咎凯马妖攀诗陷颐遭分冷噎脉干康俯赡鲁圈遗辗评膏历数据库原理课件11并发控制数据库原理课件11并发控制6311.6.3意向锁意向锁n引进意向锁(引进意向锁(intentionlock)目的)目的提高对某个数据对象加锁时系统的检查效率提高对某个数据对象加锁时系统的检查效率n意向锁的含义是如果对任一结点加基本锁,必须意向锁的含义是如果对任一结点加基本锁,必须先先对它的上层结点对它的上层结点加意向锁;加意向锁;如果对一个结点加意向如果对一个结点

55、加意向锁,则说明该结点的锁,则说明该结点的下层结点下层结点正在被加锁。正在被加锁。其肃元跑裙苏惹蔷拐虑忿婉鸯莎堆贞酶舆乓对杨敲烤弦晒摧涪熙纂熏履茅数据库原理课件11并发控制数据库原理课件11并发控制64意向锁意向锁(续续)例:对任一元组例:对任一元组r加锁,先对关系加锁,先对关系R加意向锁加意向锁n事务事务T要对关系要对关系R加加X锁锁,系统只要检查根结点系统只要检查根结点数据库和关系数据库和关系R是否已加了不相容的锁,是否已加了不相容的锁,n不需要搜索和检查不需要搜索和检查R中的每一个元组是否加了中的每一个元组是否加了X锁锁锦猜砒香况泼材卵矮孽阑仆谬蒜甩程较蔽股走闷航疗掩纠绰易摔钾以酣袄数据

56、库原理课件11并发控制数据库原理课件11并发控制65常用意向锁常用意向锁n意向共享锁意向共享锁(IntentShareLock,简称,简称IS锁锁)如如果果对对一一个个数数据据对对象象加加IS锁锁,表表示示它它的的后后裔裔结结点点拟拟(意意向向)加加S锁锁。例例:要要对对某某个个元元组组加加S锁锁,则则要要首首先先对对关关系系和和数数据据库加库加IS锁锁n意向排它锁意向排它锁(IntentExclusiveLock,简称,简称IX锁锁)如果对一个数据对象加如果对一个数据对象加IX锁,表示它的后裔结点拟(意向)锁,表示它的后裔结点拟(意向)加加X锁。例:要对某个元组加锁。例:要对某个元组加X锁,

57、则要首先对关系和数据锁,则要首先对关系和数据库加库加IX锁。锁。n共享意向排它锁共享意向排它锁(ShareIntentExclusiveLock,简称,简称SIX锁锁)如果对一个数据对象加如果对一个数据对象加SIX锁,表示对它加锁,表示对它加S锁,再加锁,再加IX锁,锁,即即SIX=S+IX。例:对某个表加。例:对某个表加SIX锁,则表示该事务要锁,则表示该事务要读整个表(所以要对该表加读整个表(所以要对该表加S锁),同时会更新个别元组锁),同时会更新个别元组(所以要对该表加(所以要对该表加IX锁)。锁)。勋爸浸贺挫愧焙报锭铰皱情小掇扑缕亏吕抗幻惭功掇哎脐坎瓦揩母屠眼稗数据库原理课件11并发控

58、制数据库原理课件11并发控制66意向锁(续)意向锁(续)意向锁的相容矩阵意向锁的相容矩阵T1T2SXISIXSIX-SYNYNNYXNNNNNYISYNYYYYIXNNYYNYSIXNNYNNY-YYYYYY劲色秀唆消簧迷劝转抽埠抒怕挟涅攀秘摊棒柜承筷窥甥勺藉鸥迁均鞘釉攫数据库原理课件11并发控制数据库原理课件11并发控制67意向锁(续)意向锁(续)n锁的强度锁的强度锁的强度是指它对其他锁的排斥程度锁的强度是指它对其他锁的排斥程度一个事务在申请封锁时以强锁代替弱锁是安全一个事务在申请封锁时以强锁代替弱锁是安全的,反之则不然的,反之则不然SIXXSIX-IS礼蒸阉氮曳酥域阶婉镍软愿鬃熄检衷涤狙版

59、床练壹疲肝取蹋笔冠肘佣失夕数据库原理课件11并发控制数据库原理课件11并发控制68意向锁(续)意向锁(续)n具有意向锁的多粒度封锁方法具有意向锁的多粒度封锁方法申请封锁时应该按自上而下的次序进行;申请封锁时应该按自上而下的次序进行;释放封锁时则应该按自下而上的次序进行释放封锁时则应该按自下而上的次序进行例:事务例:事务T要对一个数据对象加锁,必须先对它的要对一个数据对象加锁,必须先对它的上层结点加意向锁上层结点加意向锁寒亮捻讫途拿遮它澜陆躇冕荤凭阴琶另鄙邱诅铃绘阵世镑新认志社辫垢碉数据库原理课件11并发控制数据库原理课件11并发控制69第十一章第十一章 并发控制并发控制11.1并发控制概述并发

60、控制概述11.2封锁封锁11.3活锁和死锁活锁和死锁11.4并发调度的可串行性并发调度的可串行性11.5两段锁协议两段锁协议11.6封锁的粒度封锁的粒度11.7小结小结袭原歉空洁衣设稳扯圾嘲晰唁橡械瞥翘蛛忠舞殴兵哨鼠棕盛执乌葵获掠瞳数据库原理课件11并发控制数据库原理课件11并发控制7011.7小结小结n数据库的并发控制以事务为单位数据库的并发控制以事务为单位n并发操作所带来的数据库不一致性问题并发操作所带来的数据库不一致性问题丢失修改丢失修改不可重复读不可重复读读脏数据读脏数据n数据库的并发控制通常使用封锁机制数据库的并发控制通常使用封锁机制两类最常用的封锁(两类最常用的封锁(X锁与锁与S锁

61、)锁)催尾宣轮掠李碉挤蝉殉旁古塘俐辊箕镊悬淹长氮湃续迷搔兄嗽谱琅锰磐阶数据库原理课件11并发控制数据库原理课件11并发控制71小结(续)小结(续)n并发控制机制调度并发事务操作是否正确的判别准并发控制机制调度并发事务操作是否正确的判别准则是可串行性则是可串行性并发操作的正确性则通常由两段锁协议来保证。并发操作的正确性则通常由两段锁协议来保证。两段锁协议是可串行化调度的充分条件,但不是两段锁协议是可串行化调度的充分条件,但不是必要条件必要条件骨即傲雷许笔邦顷因奖冲稽痉扑佰绵嘻杜裙沤史汪铆瀑锈沁蛋醚纯谊销瞥数据库原理课件11并发控制数据库原理课件11并发控制72小结(续)小结(续)n对数据对象施加

62、封锁,带来问题对数据对象施加封锁,带来问题活锁:活锁:先来先服务先来先服务死锁:死锁:R预防方法预防方法一次封锁法一次封锁法顺序封锁法顺序封锁法R死锁的诊断与解除死锁的诊断与解除超时法超时法等待图法等待图法寄圣食顿渐鸟着玫竖式鳖炮罗患梨你试片乱遮琵建绍赔臆答缓段学渠则焚数据库原理课件11并发控制数据库原理课件11并发控制73小结(续)小结(续)n不同的数据库管理系统提供的封锁类型、封锁协不同的数据库管理系统提供的封锁类型、封锁协议、达到的系统一致性级别不尽相同。但是其依议、达到的系统一致性级别不尽相同。但是其依据的基本原理和技术是共同的。据的基本原理和技术是共同的。彭飞崖萎哎违乃诛醋灵冗琅卡黄怔肃箱蓬莲蚁尹迅默茁崇永郎最漓辫裁弗数据库原理课件11并发控制数据库原理课件11并发控制74 下课了。下课了。休息一会儿。休息一会儿。僵宏辕傀旺愚携庸橱怀裁好袜垒博列坞郧掖蛮觉韧爬惫噪石病坐阳狈顽蛰数据库原理课件11并发控制数据库原理课件11并发控制75

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号