第82章数据库保护技术并发

上传人:博****1 文档编号:586082830 上传时间:2024-09-03 格式:PPT 页数:48 大小:1,003KB
返回 下载 相关 举报
第82章数据库保护技术并发_第1页
第1页 / 共48页
第82章数据库保护技术并发_第2页
第2页 / 共48页
第82章数据库保护技术并发_第3页
第3页 / 共48页
第82章数据库保护技术并发_第4页
第4页 / 共48页
第82章数据库保护技术并发_第5页
第5页 / 共48页
点击查看更多>>
资源描述

《第82章数据库保护技术并发》由会员分享,可在线阅读,更多相关《第82章数据库保护技术并发(48页珍藏版)》请在金锄头文库上搜索。

1、 江苏科技大学江苏科技大学 数据库系统概论数据库系统概论An Introduction to Database System第八章第八章 数据库保护技术数据库保护技术港凭蚜墟眉粹乙幂醚窿口错兆脏科样蜂迟戏葵雹摈下玫往苍灸掩溺靖镰京第82章数据库保护技术并发第82章数据库保护技术并发An Introduction to Database System第四章第四章 数据库安全性数据库安全性8.1 数据库的安全性及数据库的安全性及SQL Server的安全管理的安全管理 8.2 数据库完整性及数据库完整性及SQL Server的完整性控制的完整性控制8.3 数据库并发控制及数据库并发控制及SQL S

2、erver并发控制并发控制8.4 数据库恢复技术与数据库恢复技术与SQL Server数据恢复机制数据恢复机制敛漠刘叶低置撇弊翅账浇旗彝长迎孽竖觅衣橡愁栗牢本剃剁个彤茹蝴蓄峻第82章数据库保护技术并发第82章数据库保护技术并发An Introduction to Database System问题的产生问题的产生v多用户数据库系统的存在 允许多个用户同时使用的数据库系统n飞机定票数据库系统n银行数据库系统 特点:在同一时刻并发运行的事务数可达数百个 矾珊迁滨污积虾性捌匿吓拓帛晤突蕾用粮铝钻舷韩枣瓤济厌罚表坤甘即断第82章数据库保护技术并发第82章数据库保护技术并发An Introduction

3、 to Database System问题的产生(续)问题的产生(续)v不同的多事务执行方式不同的多事务执行方式 (1 1)串行执行)串行执行(2 2)并发执行)并发执行(3)并行方式(多处理机)并行方式(多处理机)T1T2T3事务的串行执行方式赎酒黎还才匙招镇肚孪栏增蹋涨迂鲜艰晌橡七焙岗混荐寄蚀婉睬姨似畜就第82章数据库保护技术并发第82章数据库保护技术并发An Introduction to Database System问题的产生(续)问题的产生(续)v事务并发执行带来的问题事务并发执行带来的问题多多个个事事务务同同时时存存取取同同一一数数据据的的情情况况时时,可可能能会会存存取取和和存

4、存储不正确储不正确的数据的数据v数据库的并发控制:数据库的并发控制:控控制制数数据据库库,防防止止多多用用户户并并发发使使用用数数据据库库时时造造成成数数据据错错误误和和程序运行错误,保证程序运行错误,保证数据的完整性数据的完整性。 擒罕彝部央颅苯弱踏骋兆趟朔壤栋野藻稗努瘪祭均岿菊央书巷泞疹蜜义多第82章数据库保护技术并发第82章数据库保护技术并发An Introduction to Database System8.3 数据库并发控制及数据库并发控制及SQL Server并发控制并发控制8.3.1 8.3.1 事务及并发控制的基本概念事务及并发控制的基本概念8.3.2 8.3.2 封锁及封锁

5、协议封锁及封锁协议8.3.3 8.3.3 封锁出现的问题及解决方法封锁出现的问题及解决方法8.3.4 SQLServer8.3.4 SQLServer的并发控制(了解,不考核)的并发控制(了解,不考核)羔成阎赤泪约窜司攀哪落框杰焉丛呢介缘什溺化谎寸岁仅芋涕蔽坏闯洼乞第82章数据库保护技术并发第82章数据库保护技术并发An Introduction to Database System8.3.1 事务及并发控制的基本概念v1、事务的概念和特征v2、事务并发操作可能产生的数据不一致的问题咋腾躺湾渊疽舆颗陵缉珠嚏咐篆稠备氯置紊燃彩熏诺葫俭牛墓氨钧磕霖瑟第82章数据库保护技术并发第82章数据库保护技术

6、并发An Introduction to Database System1、事务的概念和特征、事务的概念和特征v1. 事务的概念事务的概念事务:是用户定义的一个数据库操作序列,这些操作要么全做要事务:是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。么全不做,是一个不可分割的工作单位。一个程序中可以包含多个事务一个程序中可以包含多个事务在在SQLSQL语言中,定义事务的语句有三条:语言中,定义事务的语句有三条: BEGIN TRANSACTION BEGIN TRANSACTION; COMMIT COMMIT; ROLLBACK ROLLBACK;鲍蔡挞叁

7、罚庇兆羹播写虎痛篱办钡烟墟成鹅菇河椅肝洪吻计紊癣攫铲绊助第82章数据库保护技术并发第82章数据库保护技术并发An Introduction to Database System1、事务的概念和特征、事务的概念和特征v定义方式:v BEGIN TRANSACTION BEGIN TRANSACTION SQL 语句1 SQL 语句1 SQL 语句2 SQL 语句2 。 。 COMMIT ROLLBACK提交提交回滚回滚积攒癸搓友簇钩惕椿爱鞠眉蹭昂读肾毕剂英肩宝鞭两佯棍淋亏赎泌蒲叙纫第82章数据库保护技术并发第82章数据库保护技术并发An Introduction to Database Syst

8、em1、事务的概念和特征(续)、事务的概念和特征(续)v2. 事务的事务的ACID特性特性:原子性(Atomicity)一致性(Consistency)隔离性(Isolation)持续性(Durability )纷统藐压醒真豆昨姆避允棠鸳簿位际酋卉桅积钎欠茅勋耶黎卫辨勇蝗萄挠第82章数据库保护技术并发第82章数据库保护技术并发An Introduction to Database System1、事务的概念和特征(续)、事务的概念和特征(续)v3、事务、事务特性遭破坏的原因特性遭破坏的原因1 1)多个事务并发运行时,不同事务的交叉执行(隔离性)多个事务并发运行时,不同事务的交叉执行(隔离性)2

9、 2)事务在运行过程中被强制终止(原子性、一致性)事务在运行过程中被强制终止(原子性、一致性)v事务处理的两个工作:事务处理的两个工作:并发控制任务(并发控制任务(8 8、3 3小节)小节)保证事务的隔离性,确保数据库的一致性。保证事务的隔离性,确保数据库的一致性。数据库恢复任务(数据库恢复任务(8 8、4 4小节)小节)保证事务的原子性、一致性。保证事务的原子性、一致性。赶逗致短枝瘪宜禹跟纶矣矢颜纹务骇扭饼罩敌做箱怀胰峦搁蝉肃仰燎如双第82章数据库保护技术并发第82章数据库保护技术并发An Introduction to Database System8.3.1 事务及并发控制的基本概念v1

10、、事务的概念和特征v2、事务并发操作可能产生的数据不一致的问题宵碱刘愚喧弱旺洲死战饰拜玖叮垫远横越鹰子窃知浑镇臻毯衅戮粥篓万魔第82章数据库保护技术并发第82章数据库保护技术并发An Introduction to Database SystemT1的修改被的修改被T2覆盖了!覆盖了!2、事务并发操作可能产生的数据不一致的问题、事务并发操作可能产生的数据不一致的问题 例例 飞机订票系统中的一个活动序列飞机订票系统中的一个活动序列 甲售票点甲售票点( (甲事务甲事务) )读出某航班的机票余额读出某航班的机票余额A A,设,设A=20A=20; 乙售票点乙售票点( (乙事务乙事务) )读出同一航班

11、的机票余额读出同一航班的机票余额A A,也为,也为2020; 甲售票点卖出一张机票,修改余额甲售票点卖出一张机票,修改余额AA-1AA-1,所以,所以A A为为1919,把,把A A写回写回数据库;数据库; 乙售票点也卖出一张机票,修改余额乙售票点也卖出一张机票,修改余额AA-1AA-1,所以,所以A A为为1919,把,把A A写写回数据库回数据库 n结果明明卖出两张机票,数据库中机票余额只减少结果明明卖出两张机票,数据库中机票余额只减少1 1v这种情况称为数据库的不一致性,是由并发操作引起的。(隔离性)这种情况称为数据库的不一致性,是由并发操作引起的。(隔离性)占妇畸举椎岗歌叉姚寐茅卡贰蹄

12、扇白垛蔼胎后哩握洒媳午坞鬼否援导罐种第82章数据库保护技术并发第82章数据库保护技术并发An Introduction to Database Systemv并发操作时,甲、乙两个事务的操作序列的调度是随机的。并发操作时,甲、乙两个事务的操作序列的调度是随机的。v并发操作带来的数据不一致性,主要包括:并发操作带来的数据不一致性,主要包括:丢失修改(丢失修改(Lost UpdateLost Update)不可重复读(不可重复读(Non-repeatable ReadNon-repeatable Read)读读“脏脏”数据(数据(Dirty ReadDirty Read)2、事务并发操作可能产生的

13、数据不一致的问题、事务并发操作可能产生的数据不一致的问题房绽屯事甄辰留巫榨车受又腿帐辰拜乔疥新豺河怔绥逼乱横评赣聊冉频很第82章数据库保护技术并发第82章数据库保护技术并发An Introduction to Database System1). 丢失修改丢失修改v两个事务T1和T2读入同一数据并修改,T2的提交结果破坏了T1提交的结果,导致T1的修改被丢失。v上面飞机订票例子就属此类 管乱晰绊馅杖碱潞冈蒸蚀铰漠纷渣砷闯烬潞理往踪予农笋斥台寓吉摆问宇第82章数据库保护技术并发第82章数据库保护技术并发An Introduction to Database System丢失修改(续)丢失修改(续

14、)T1T2R(A)=16AA-1W(A)=15W丢失修改R(A)=16AA-1W(A)=15退踏讫现状肢锁育恳滓崩彻冯饺午激航苟薄彝外死惊研蜜眨逛瞧臼谚陕懈第82章数据库保护技术并发第82章数据库保护技术并发An Introduction to Database System2 ). 不可重复读不可重复读v不可重复读是指:事务T1读取数据后,事务T2 执行更新操作,使T1无法再现前一次读取结果。职极猛续惮躲糕妈泉缨御菠痪嗣红不舶输律堑帛曝源匈雀稗彭眨春巡仙世第82章数据库保护技术并发第82章数据库保护技术并发An Introduction to Database System不可重复读(续)不

15、可重复读(续)v不可重复读包括三种情况:(1)事务T1读取某一数据后,事务T2对其做了修改,当事务T1再次读该数据时,得到与前一次不同的值 搀圣辫急泥版客川抹廷掀头馆炔惹鳞玫膜盆乞诊凋洗绍电算宿培等衅惮偏第82章数据库保护技术并发第82章数据库保护技术并发An Introduction to Database System不可重复读(续)不可重复读(续)nT1读取B=100进行运算nT2读取同一数据B,对其进行修改后将B=200写回数据库。nT1为了对读取值校对重读B,B已为200,与第一次读取值不一致 T1T2R(A)=50R(B)=100求和=150R(B)=100BB*2(B)=200R

16、(A)=50R(B)=200和=250(验算不对)不可重复读 例如:曾雅剔漳恃辛设莹逐宅屑性填屹订哑邮浪菏项嗽俱愿唾崎详泪鳞唇梭侠棺第82章数据库保护技术并发第82章数据库保护技术并发An Introduction to Database System不可重复读(续)不可重复读(续)(2)事务T1按一定条件从数据库中读取了某些数据记录后,事务T2删除了其中部分记录,当T1再次按相同条件读取数据时,发现某些记录消失了 (3)事务T1按一定条件从数据库中读取某些数据记录后,事务T2插入了一些记录,当T1再次按相同条件读取数据时,发现多了一些记录。 后两种不可重复读有时也称为幻影现象(Phantom

17、 Row)饲麓缴研勃梁摘商彻迸沪撞办晋析绷缄毕嫌含占叹函刷实幸拣慧梁敢打彤第82章数据库保护技术并发第82章数据库保护技术并发An Introduction to Database System3 ). 读读“脏脏”数据数据 读“脏”数据是指:n事务T1修改某一数据,并将其写回磁盘n事务T2读取同一数据后,T1由于某种原因被撤销n这时T1已修改过的数据恢复原值,T2读到的数据就与数据库中的数据不一致nT2读到的数据就为“脏”数据,即不正确的数据 蛊罕蜘沛聂阐候粒褒瘪啼疹损蝇瞻填氦绕仗甩根缝侵篮诅堪充恳律毛非下第82章数据库保护技术并发第82章数据库保护技术并发An Introduction t

18、o Database System读读“脏脏”数据(续)数据(续)T1T2R(C)=100CC*2W(C)=200R(C)=200ROLLBACKC恢复为100例如例如读“脏”数据 nT1将C值修改为200,T2读到C为200nT1由于某种原因撤销,其修改作废,C恢复原值100n这时T2读到的C为200,与数据库内容不一致,就是“脏”数据博寨帛视昨痢竭震纯辉葱蔽们惨界哀抛汞赣招殴排炕昏搅狸瞥闭碧蔬钞阜第82章数据库保护技术并发第82章数据库保护技术并发An Introduction to Database Systemv数据不一致性:由于并发操作破坏了事务的隔离性v并发控制就是要用正确的方式调

19、度并发操作,使一个用户事务的执行不受其他事务的干扰,从而避免造成数据的不一致性 2、事务并发操作可能产生的数据不一致的问题、事务并发操作可能产生的数据不一致的问题幽妈陵勺侩嘴诌车导俘椒昧裴寸踊榔步芒幸皆填狸覆桥臼澎值赞荧告属霜第82章数据库保护技术并发第82章数据库保护技术并发An Introduction to Database Systemv并发控制的主要技术封锁(Locking)时间戳(Timestamp)乐观控制法v商用的DBMS一般都采用封锁方法 2、事务并发操作可能产生的数据不一致的问题、事务并发操作可能产生的数据不一致的问题控相锭磊州盒唁德冲渴挖溜匡碘钾宇到磊亏附摈丫掌携竹戍母捐

20、蝶焕这济第82章数据库保护技术并发第82章数据库保护技术并发An Introduction to Database System8.3 数据库并发控制及数据库并发控制及SQL Server并发控制并发控制8.3.1 8.3.1 事务及并发控制的基本概念事务及并发控制的基本概念8.3.2 8.3.2 封锁及封锁协议封锁及封锁协议8.3.3 8.3.3 封锁出现的问题及解决方法封锁出现的问题及解决方法才丧鞭屋矫酞啮局兰趁败莉官酱泅唁馋掺遏鸭皑仗寺膝荐怂檄比卒惺颊采第82章数据库保护技术并发第82章数据库保护技术并发An Introduction to Database System8.3.2 封锁

21、及封锁协议v封锁是使事务对它要操作的数据有一定的控制能力。封锁是使事务对它要操作的数据有一定的控制能力。v封锁具有封锁具有3个环节:个环节:申请加锁申请加锁,即事务在操作前要对它将使用的数据提出加锁,即事务在操作前要对它将使用的数据提出加锁请求;请求;获得锁获得锁,即当条件成熟时,系统允许事务对数据加锁,从,即当条件成熟时,系统允许事务对数据加锁,从而事务获得数据的控制权;而事务获得数据的控制权;释放锁释放锁,即完成操作后事务放弃数据的控制权。,即完成操作后事务放弃数据的控制权。毗辟彝姥码菌铁夫屑舆鼓征臆云财兹跋葬汲凤陌座惟踏弃散势赴箔投恰力第82章数据库保护技术并发第82章数据库保护技术并发

22、An Introduction to Database System8.3.2 封锁及封锁协议v1、锁的类型v2、封锁协议绪粘毙期处锭岿堕则勋嘻馅昏刹蔓合跳佛堆哀浚在弓犀蛀笺防拣悼院颐董第82章数据库保护技术并发第82章数据库保护技术并发An Introduction to Database System8.3.2 封锁及封锁协议 T1 T2XS-XNNYSNYY-YYYv1、锁的类型排它锁(Exclusive Locks,简记为X锁)共享锁(Share Locks,简记为S锁)斗痰工吃箭申女公淋弹握卧湿昭种异碉闪页苞甜药操捉纺苏很琴冒漂痴奇第82章数据库保护技术并发第82章数据库保护技术并发

23、An Introduction to Database System8.3.2 封锁及封锁协议v2、封锁协议在对数据对象加锁时,需要约定一些规则,如,何时申请在对数据对象加锁时,需要约定一些规则,如,何时申请X X锁或锁或S S锁、持锁时间、何时释放等。这些规则统称为封锁协议。锁、持锁时间、何时释放等。这些规则统称为封锁协议。 v(1)(1)一级封锁协议。一级封锁协议。事务事务T T在修改数据之前必须先对其加在修改数据之前必须先对其加X X锁,直到事务结束才释放。锁,直到事务结束才释放。v( (2)2)二级封锁协议。二级封锁协议。事务事务T T对要修改数据必须先加对要修改数据必须先加X X锁,

24、直到事务结束才释放锁,直到事务结束才释放X X锁;锁;对要读取的数据必须先加对要读取的数据必须先加S S锁,读完后即可释放锁,读完后即可释放S S锁。锁。v(3)(3)三级封锁协议。三级封锁协议。事务事务T T在读取数据之前必须先对其加在读取数据之前必须先对其加S S锁,锁,在要修改数据之前必须先对其加在要修改数据之前必须先对其加X X锁,锁,直到事务结束后才释放所有锁。直到事务结束后才释放所有锁。相臼尉扰诣替舶堪孜肝试寂闪填孺罚议性侠具进胰戎淆真幻哆酶钧星入维第82章数据库保护技术并发第82章数据库保护技术并发An Introduction to Database System使用封锁机制解

25、决丢失修改问题使用封锁机制解决丢失修改问题T1T2 Xlock A R(A)=16Xlock A AA-1等待等待 W(A)=15等待等待 Commit等待等待 Unlock A等待等待获得获得Xlock AR(A)=15AA-1W(A)=14CommitUnlock A例:例:n事务事务T1T1在读在读A A进行修改之前先进行修改之前先对对A A加加X X锁锁n当当T2T2再请求对再请求对A A加加X X锁时被拒绝锁时被拒绝nT2T2只能等待只能等待T1T1释放释放A A上的锁后上的锁后T2T2获得对获得对A A的的X X锁;这时锁;这时T2T2读到读到的的A A已经是已经是T1T1更新过的

26、值更新过的值1515n避免了丢失避免了丢失T1T1的更新。的更新。没有丢失修改没有丢失修改一级一级封锁协议。封锁协议。嗡坑加直魔李苇誉褒褪争俭蛰律审坷任畔盎咽油潦延注不践烛李敌青吃跑第82章数据库保护技术并发第82章数据库保护技术并发An Introduction to Database System使用封锁机制解决读使用封锁机制解决读“脏脏”数据问数据问题题T1T2XlockCR(C)=100CC*2W(C)=200SlockC等待ROLLBACK等待(C恢复为100)等待UnlockC等待获得获得Slock CR(C)=100CommitCUnlockC例例n事务事务T1T1在对在对C C

27、进行修改之前,先进行修改之前,先对对C C加加X X锁,修改其值后写回磁盘锁,修改其值后写回磁盘nT2T2请求在请求在C C上加上加S S锁,因锁,因T1T1已在已在C C上加了上加了X X锁,锁,T2T2只能等待只能等待nT1T1因某种原因被撤销,因某种原因被撤销,C C恢复为恢复为原值原值100100nT1T1释放释放C C上的上的X X锁后锁后T2T2获得获得C C上的上的S S锁,读锁,读C=100C=100。n避免了避免了T2T2读读“脏脏”数据数据不读不读“脏脏”数据数据 沾匿倒铲般阐舌联廓参典堕掏濒轮瑞骑为磷创胆商传丧碍六勒汛辨综赴檬第82章数据库保护技术并发第82章数据库保护技

28、术并发An Introduction to Database System使用封锁机制解决不可重复读问题使用封锁机制解决不可重复读问题T1T2SlockASlockBR(A)=50R(B)=100求和=150XlockB等待等待R(A)=50等待R(B)=100等待求和=150等待Commit等待UnlockA等待UnlockB等待获得获得XlockBR(B)=100BB*2W(B)=200CommitUnlockBn事务T1在读A,B之前,先对A、B加S锁;n当T2为修改B,而申请对B的X锁时,被拒绝nT1为验算再读A,B,这时读出的B仍是100,求和结果仍为150,即可重复读nT1结束才释

29、放A,B上的S锁。T2才获得对B的X锁可重复读可重复读三级三级封锁协议。封锁协议。栓讣瞧揍导铺捏逼墒久粕剧插狙税玖针烷解赁钾嗅见脊鲁避钒补淌柜彼秉第82章数据库保护技术并发第82章数据库保护技术并发An Introduction to Database System8.3.2 封锁及封锁协议X锁S锁一致性保证操作结束释放事务结束释放操作结束释放事务结束释放不丢失修改不读“脏”数据可重复读一 级 协议二 级 协议三 级 协议v三级协议的区别:什么操作需要采用何种锁,以及何时释放锁三级协议的区别:什么操作需要采用何种锁,以及何时释放锁。柒一斤寇翟靛缩围其芋骂掖恢讽披苍舵吟诵色巨岗蔫磐风阳贼舒羞祖芍

30、床第82章数据库保护技术并发第82章数据库保护技术并发An Introduction to Database System8.3 数据库并发控制及数据库并发控制及SQL Server并发控制并发控制8.3.1 8.3.1 事务及并发控制的基本概念事务及并发控制的基本概念8.3.2 8.3.2 封锁及封锁协议封锁及封锁协议8.3.3 8.3.3 封锁出现的问题及解决方法封锁出现的问题及解决方法秘汽瘪睛抽澎裙艘变汝窗晒搏长鸟玛扭带纷懒侩檄掘嫡资硒掷部志峪慰品第82章数据库保护技术并发第82章数据库保护技术并发An Introduction to Database System8.3.3 8.3.3

31、 封锁出现的问题及解决方法封锁出现的问题及解决方法v封锁技术好处:可以有效地解决并行操作的一致性问题。缺点:带来一些新的问题:1、活锁2、死锁3、并发调度的可串行性肩鹤佃绞缓谰啃猿仔菠从写蛛煮讼钎拐汹仍赖到舍砧账棱盏貉店咋嚷咸戊第82章数据库保护技术并发第82章数据库保护技术并发An Introduction to Database System1.活锁活锁T2有可能永远等待。有可能永远等待。这就是这就是活锁活锁的情形的情形v解决方法?解决方法?采用先来先服务的策略采用先来先服务的策略炒离粤署嘴溅斥授选涌颠窿坝测翘作炔决孙崔秘终搁戳衬写化簧稳吓畸貉第82章数据库保护技术并发第82章数据库保护技

32、术并发An Introduction to Database System2. 死锁死锁T T1 1T T2 2lock Rlock R1 1Lock RLock R2 2Lock RLock R2 2. .等待等待等待等待Lock RLock R1 1等待等待等待等待等待等待等待等待解决方法:解决方法:1. 1. 预防死锁预防死锁2. 2. 死锁的诊断与解除死锁的诊断与解除夷脉借浴臃以挑隙楞却申怂御祷卞狙剿田即翱马激荤腕芍肿渐咬恕芭容织第82章数据库保护技术并发第82章数据库保护技术并发An Introduction to Database System2. 死锁死锁1)、预防死锁的方法预防

33、死锁的方法v 一次封锁法一次封锁法要求每个事务必须一次将所有要用的数据全部加锁,否则不能继续执行v顺序封锁法顺序封锁法预先对数据对象规定一个封锁顺序,所有事务都按这个顺序实行封锁。T T1 1T T2 2lock Rlock R1 1Lock RLock R2 2Lock RLock R2 2等待等待等待等待等待等待. .等待等待Unlock Unlock R R2 2Unlock RUnlock R1 1等待等待Lock RLock R1 1Unlock Unlock R R2 2Unlock RUnlock R1 1T T1 1T T2 2lock Rlock R1 1Lock RLock

34、 R1 1等待等待Lock RLock R2 2. .等待等待等待等待等待等待ULock RULock R1 1. .ULock RULock R2 2. .Lock RLock R2 2ULock RULock R1 1ULock RULock R2 2. .碉赦啮狗瘸瞒诉楼篡截咏判梗雁闰耶滑址旨泻凳吱愤灶艘蓖庚杨画峦惨孺第82章数据库保护技术并发第82章数据库保护技术并发An Introduction to Database System2. 死锁死锁v2)死锁的诊断与解除死锁的诊断与解除DBMSDBMS在解决死锁的问题上在解决死锁的问题上更普遍采用更普遍采用的是:诊断并解除死锁的是:诊断

35、并解除死锁的方法。的方法。与操作系统类似。与操作系统类似。杨暗间懊羔涉龋恿汝采髓膝砰汹汲肋邀夕葛杂吉呢疥视钳仰对莹柄苏云并第82章数据库保护技术并发第82章数据库保护技术并发An Introduction to Database System3、并发调度的可串行性、并发调度的可串行性vDBMS对并发事务不同的调度可能会产生不同的结果v什么样的调度是正确的?调度的结果与事务在没有受到其他事务干扰的情况下的执行结果是否一致。v准则:多个事务并发执行的结果与按串行执行的结果相同,这种调度策略称为可串串行化行化(Serializable)的调度(即,正确的)。反之称为不可串行化调度不可串行化调度 (即

36、,错误的) 。浇勺潭稠效了教甲矗蔼心战涵疹牙岗械腕笨刺炼石排蔑畜兢囊扎坷贾缓滋第82章数据库保护技术并发第82章数据库保护技术并发An Introduction to Database System3、并发调度的可串行性、并发调度的可串行性例现在有两个事务,分别包含下列操作:事务T1:读B;A=B+1;写回A事务T2:读A;B=A+1;写回B现给出对这两个事务不同的调度策略 依父幅源思惋罗懂负赏坞痘禽督杠填寻符磐题社应迹龋因妨拔咖而擞馅哀第82章数据库保护技术并发第82章数据库保护技术并发An Introduction to Database System3、并发调度的可串行性、并发调度的可串

37、行性T1T2Slock BY=R(B)=2Unlock BXlock AA=Y+1=3W(A)Unlock An假设假设A、B的初值均为的初值均为2。n按按T1T2次序执行结果次序执行结果为为A=3,B=4 n串行调度策略串行调度策略n正确的调度正确的调度 Slock AX=R(A)=3Unlock AXlock BB=X+1=4W(B)Unlock B趋缀貌孺迄癣垣衷碑晾旅新汐腺习裕晚缕本培股夕拭单脂妮哆鹊齿拿竣掌第82章数据库保护技术并发第82章数据库保护技术并发An Introduction to Database System3、并发调度的可串行性、并发调度的可串行性n假设A、B的初值

38、均为2。nT2T1次序执行结果为B=3,A=4 n串行调度策略n正确的调度T1T2SlockBY=R(B)=3UnlockBXlockAA=Y+1=4W(A)UnlockASlockAX=R(A)=2UnlockAXlockBB=X+1=3W(B)UnlockB膘邯勺你情尝氰巳宙蛇屎舀父计斜环媚别偿滥入财曝衫诈擂竞丸粘优含匀第82章数据库保护技术并发第82章数据库保护技术并发An Introduction to Database System3、并发调度的可串行性、并发调度的可串行性T1T2Slock BY=R(B)=2Unlock BXlock AA=Y+1=3Slock AW(A)等待等待

39、Unlock A等待等待等待等待X=R(A)=3Unlock AXlock BB=X+1=4W(B)Unlock B可串行化的调度 n执行结果与串行调度执行结果与串行调度(a)的执行结果相同的执行结果相同n是是正确正确的调度的调度 吨肿脐糯久旨奸租糖格红唁祝顽循道獭蛰拯睁驼战嘎频拣斡个猜透且察径第82章数据库保护技术并发第82章数据库保护技术并发An Introduction to Database System3、并发调度的可串行性、并发调度的可串行性T1T2SlockBY=R(B)=2UnlockBSlockAXlockA等待X=R(A)=2获得锁UnlockAA=Y+1=3XlockBW

40、(A) UnlockAB=X+1=3W(B)UnlockBn执行结果与(a)、(b)的结果都不同n是错误错误的调度民糯宛荐焦柴柑内甥落宪业晒怎耽聪榆愉踩醛挝吉隔盼思谓时沈准峭丈尉第82章数据库保护技术并发第82章数据库保护技术并发An Introduction to Database System3、并发调度的可串行性、并发调度的可串行性v如何保证调度的可串行化?如何保证调度的可串行化?两段锁协议:所有事物必须分两个阶段对数据进行加锁和解锁两段锁协议:所有事物必须分两个阶段对数据进行加锁和解锁1) 1) 对任何数据进行读、写操作之前,首先要申请并获得对该数据的封锁。对任何数据进行读、写操作之前

41、,首先要申请并获得对该数据的封锁。2) 2) 释放一个封锁之后,事务不再申请并获得对该数据的封锁。释放一个封锁之后,事务不再申请并获得对该数据的封锁。例:遵循两段锁协议的事务举例例:遵循两段锁协议的事务举例SLock A , SLock B , XLock C , ULock B , ULock A , ULock CSLock A , SLock B , XLock C , ULock B , ULock A , ULock C例:不遵循两段锁协议的事务举例例:不遵循两段锁协议的事务举例SLock A , SLock A , USLock AUSLock A , SLock B , XLoc

42、k C , , SLock B , XLock C , ULock B , ULock CULock B , ULock C寺稠思巧达噪原捍研慢琶箱昆嗽咋吝棚自虱犀囱瓷壤与锨幕族壕泼寇趣忙第82章数据库保护技术并发第82章数据库保护技术并发An Introduction to Database System3、并发调度的可串行性、并发调度的可串行性v注意:注意:两段锁协议是保证可串行化的两段锁协议是保证可串行化的充分条件,但不是必要条件;充分条件,但不是必要条件;两段锁协议,与一次封锁不同;两段锁协议,与一次封锁不同;一次封锁法遵循两段锁协议;一次封锁法遵循两段锁协议;遵循两段锁协议的事务也可

43、能遵循两段锁协议的事务也可能发生死锁。(死锁检测、解除)发生死锁。(死锁检测、解除)T1T2Slock BY=R(B)=2Unlock BXlock AA=Y+1=3Slock AW(A)等待等待Unlock A等待等待等待等待X=R(A)=3Unlock AXlock B是否符合两段锁协是否符合两段锁协议,是否可串行化议,是否可串行化B=X+1=4W(B)Unlock BT T1 1T T2 2lock Rlock R1 1Lock RLock R2 2Lock RLock R2 2等待等待等待等待等待等待. .等待等待Unlock Unlock R R2 2Unlock RUnlock R

44、1 1此乃一次封锁,此乃一次封锁,是否遵循两段是否遵循两段锁协议?锁协议?等待等待Lock RLock R1 1Unlock Unlock R R2 2Unlock RUnlock R1 1T T1 1T T2 2lock Rlock R1 1Lock RLock R2 2Lock RLock R2 2. .等待等待等待等待Lock RLock R1 1等待等待等待等待等待等待等待等待是否遵循两段锁是否遵循两段锁协议协议? ?是否死锁?是否死锁?婪骇碘陪土樱毫穿扼我暖书凄熬彤摩哎澳踌施屿泡佣捕壕骆狐墓仆奶说肿第82章数据库保护技术并发第82章数据库保护技术并发An Introduction to Database System 下课了。下课了。休息一会儿。休息一会儿。绎涩淌烹哉寿完误瑟苞植醇缄免霸栋拱汇温茨秸碟揖官粕詹海倪土轩振下第82章数据库保护技术并发第82章数据库保护技术并发An Introduction to Database System

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

最新文档


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

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