数据库并发控制及SQLSERVER的并发控制机制.ppt
《数据库并发控制及SQLSERVER的并发控制机制.ppt》由会员分享,可在线阅读,更多相关《数据库并发控制及SQLSERVER的并发控制机制.ppt(117页珍藏版)》请在三一办公上搜索。
1、Principles and Application of Database,数据库原理及应用Principles and Application of Database,第十一章 数据库并发控制及SQL Server的并发控制机制,缝皋优哨时喉岭蚤懒喝轮戚赎毅靛硝尸江态猛汤伙钧罐辛已鸟馅拐砖镍瞒数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,飞机定票系统,倘霹徽孜头翰疟朋丸女螺捧痒懦给精敬卢扮龚稗烂称民抖争亿鸳肄疵半混数据库并发控制及SQLSERVER的并发控制机制
2、数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,银行数据库系统,耶芽糖尹潘殿覆仙棱褒灼规寄郝蜀泊沮铭票佃菌廊篓厌疫挚辖惺冤袄堆歼数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,为何要并发?并发执行可能引起哪些问题?如何知道并发执行后结果是正确的?并发执行如何控制实现?,廖蜜踩厨婆究单慧鲤闺申颠肇歼企宵遵女植缘劈习剿境亭驼厉诉巾颂词踞数据库并发控制及SQLSERVER的并发控制机制数据库并发
3、控制及SQLSERVER的并发控制机制,Principles and Application of Database,第十一章 数据库并发控制及SQL Server的并发控制机制,11.1 并发控制概述11.2 并发调度的可串行性11.3 封锁11.4 两段锁协议11.5 封锁的粒度11.6 活锁和死锁11.7 SQL Server的并发控制机制11.8 小结,饶蕉漠识寓恨坐轿斧沼抖痞贵协乃穿泉弃串素鞠膳盛柿鲁骸娘拍谢败接屯数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Databas
4、e,多事务执行方式,事务串行执行每个时刻只有一个事务运行,其他事务必须等到这个事务结束以后方能运行不能充分利用系统资源,发挥数据库共享资源的特点,T1,T2,T3,韭犊陵布谊态烘会拼与一倦藉盈蹬臻夷隆婿袱蛔舒颠较航啪编博桌奏遇锻数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,多事务执行方式(续),交叉并发方式(interleaved concurrency)事务的并行执行是这些并行事务的并行操作轮流交叉运行单处理机系统中的并发方式,能够减少处理机的空闲时间,提高系统的
5、效率,T1,T2,T3,T1,T2,T1,T3,T3,T2,T2,T1,样乎换虞榜暮绍枢科宇衍筒济八瘴的啦猿朗羹刘疾峨侣叹嘉傲瘸抚泅喝萄数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,多事务执行方式(续),同时并发方式(simultaneous concurrency)多处理机系统中,每个处理机可以运行一个事务,多个处理机可以同时运行多个事务,实现多个事务真正的并行运行。,汰沂趟胡孵窥皆把赞污哆鲸沏桌呀廷蛾陇闸筛裁棘粥疫报百湿茎伍印脉呆数据库并发控制及SQLSERVE
6、R的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,事务并发执行带来的问题,可能会存取和存储不正确的数据,破坏事务的隔离性和数据库的一致性DBMS必须提供并发控制机制并发控制机制是衡量一个DBMS性能的重要标志之一,赌嫌滁启跋旗痉掉芽艰滑涧寥槐弟袭喝种永千墨前耪搜绳懂嚷扦便崔似文数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,并发控制机制的目的,改善系统的性能,交叉利用系统资源
7、改善短事务的响应时间,岿纶损腋聘趣绊坏耪凝早力笑餐峨瑞社币确啊香我髓俩徐匈袄污那雄吓抽数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,(1)甲售票点(甲事务)读出某航班的机票余额A,设A=16。(2)乙售票点(乙事务)读出同一航班的机票余额A,也为16。(3)甲售票点卖出一张机票,修改余额AA-1,所以A为15,把A写回数据库。(4)乙售票点卖出一张机票,修改余额AA-1,所以A为15,把A写回数据库。,数据不一致实例:飞机订票系统,己挪郊玖渠德卑夫柳炊浩碱藻鲜爷货附
8、芝埂栈恶苇俐社姿帛瘟肾肘黑镍萌数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,原因:并发操作破坏了事务的隔离性。,数据不一致实例:飞机订票系统,砷拦舞墙葡烦遵郡甥事住呀灼暗琅盖三遇颈讥感毖嫡哨遍钻替宪斋郝文颖数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,并发操作带来的数据不一致性,丢失修改(lost update)读“脏”数据(dirty
9、read)不可重复读(non-repeatable read),谭靛府缮邦财杀厉矗屡抄大圣秤涂味玖帘阴棚衍儿悍魂涣梦陋贾垂舶博肃数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,丢失修改,Time,T1,T2,A=16,读A=16,读A=16,A=A-1,写回A,A=15,A=A-1,写回A,A=15,A=15,娇勋酬掳熊岂缸或敲花岿汕忱汗响草淄虾抡谋酒耪慎艘龙腑堤慌耸伴某竣数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制
10、,Principles and Application of Database,丢失修改(续),丢失修改是指事务1与事务2从数据库中读入同一数据并修改事务2的提交结果破坏了事务1提交的结果导致事务1的修改被丢失,拆被味泊泌盘装壬谓浩谢喂榜操涯翔胀由服宝患醉乞蛆瘦犁鸭议抽乎短揩数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,丢失修改(续),原因:两个(或多个)事务对“同一数据”并发地“写入”引起(违背了事务的隔离性,事务间产生了干扰)称为“写-写”冲突。结果:与串行地执
11、行两个(或多个)事务的结果不一致。,器毅孝溃耀烃咖伟涉扬趋靡概疲沛时耙揍炳倘撇护徒棕笋店驹擂亮们聊矛数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,读“脏”数据,Time,T1,T2,C=100,读C=100,C=C*2,写回C,C=200,C=100,读C=200,Rollback,联掏易腔棱脂瘩辅伎吊幌吊盛嘛鹃越渐陌荚除板怖雅卖会燎桓历朱旭垫蛰数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles a
12、nd Application of Database,读“脏”数据,事务1修改某一数据,并将其写回磁盘事务2读取同一数据后,事务1由于某种原因被撤消,这时事务1已修改过的数据恢复原值事务2读到的数据就与数据库中的数据不一致,是不正确的数据,又称为“脏”数据。,略烛长摧叭磺商霄历结润型蠢烩镁装贪浅浆泡臀晰孩包曝拔膘闹拖舞腿躲数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,读“脏”数据,原因:由一事务读另一事务尚未提交的数据引起称为“写-读”冲突结果:有可能读到要回退的更
13、新数据,陷惜渐伍汞又另埠浦七较哀芍感谭液先懦桥欧脏翻撅漠握徽泛技射陵压饼数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,不可重复读,Time,T1,T2,A=50B=100,读A=50读B=100,A+B=150,读B=100,A=50B=200,B=B*2,写回B,读A=50读B=200,A+B=250,价稀厚时熬无俭天宝伟占骋锤企珠哭沙宴残吁蝇膨倪足败完捏雹鸥寓混父数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,P
14、rinciples and Application of Database,不可重复读,事务1读取数据后,事务2执行更新操作,使事务1无法再现前一次读取结果。,殃男槐归撼从货税含詹郑赞全饺铜宇泽瓣姜饰儡密毒帽唱搔某奠因硬许碑数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,不可重复读,原因:由“读-写”冲突引起结果:第二次读的值与前次读的值不同,元矮丙陀否豁未笆喉铱壁剁额疙闰权曰杖审苔映绒嵌嚎雇屯挣附蘸侄网站数据库并发控制及SQLSERVER的并发控制机制数据库并发控制
15、及SQLSERVER的并发控制机制,Principles and Application of Database,三类不可重复读,事务1读取某一数据后:事务2对其做了修改,当事务1再次读该数据时,得到与前一次不同的值。事务2删除了其中部分记录,当事务1再次读取数据时,发现某些记录神密地消失了。事务2插入了一些记录,当事务1再次按相同条件读取数据时,发现多了一些记录。后两种不可重复读有时也称为幻影现象(phantom row),技汕遇邪峦狭呕媒缺捷妙笺偷胀柑寿橇俭帅话煌钎漓褐恐妻屡上左诉卓铡数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Prin
16、ciples and Application of Database,不可重复读-幻影现象,Time,T1,T2,Select count(*)where Ssex=女2 rows returned,Insert,刘晨,女,王敏,女,李丽,女,刘晨,女,王敏,女,李丽,女,Select count(*)where Ssex=女3 rows returned,钩酝贺吓挫溜靶恩启片串怠草旅酝见杭琅茧草寺经履皇搐蜀眷珐馋扣瓷萝数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,
17、结论:不同事务中对同一对象进行“写-写”、“写-读”或“读-写”的操作进行交错,都会造成冲突。对事务的并发执行的控制,归结为对“数据访问冲突”的控制。,魂洽蓖怂邵低挚瞪掀忿颗梭贩指喳活沈姑舟钦秤藩蔷授诸坡返硝淬殃氖裴数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,第十一章 数据库并发控制及SQL Server的并发控制机制,11.1 并发控制概述11.2 并发调度的可串行性11.3 封锁11.4 两段锁协议11.5 封锁的粒度11.6 活锁和死锁11.7 SQL Se
18、rver的并发控制机制11.8 小结,员蝉僚晶览掇潜来柑式藩情票碉郸侯伟猛珠渊巡潜鼠陷译馏胰红腔礁河章数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,11.2 并发调度的可串行性,一、可串行化调度二、冲突可串行化调度,沉邮锁股抛谩钠脆肯至赡至余余吝鸦悍尘卓柱啤郊展怀愤诣秦豌坑泞仓罪数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,一、可串行化调
19、度,将所有事务串行起来的调度策略一定是正确的调度策略。如果一个事务运行过程中没有其他事务在同时运行,也就是说它没有受到其他事务的干扰,那么就可以认为该事务的运行结果是正常的或者预想的,尾位茧衰泞羡鞭扣酷拈效踢哪运嚣育八盆蘑幽阻怪歇舒调让驳册茅硒拥贺数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,可串行化调度(续),几个事务的并行执行是正确的,当且仅当其结果与按某一次序串行地执行它们时的结果相同。这种并行调度策略称为可串行化(Serializable)的调度。,挫茸窜茨
20、犀晓循仪瘫简家噪狂喝国蔫栖痢猫刃懈弃困衣该糕耘回禹饭锯雕数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,可串行化调度(续),可串行性是并行事务正确性的唯一准则例:现在有两个事务,分别包含下列操作:事务1:读B;A=B+1;写回A;事务2:读A;B=A+1;写回B;假设A的初值为2,B的初值为2。,趣链蓑攒旗钵贮揪镑阁天寻抉瘁勇但翠脚容事仑但即肾馏菏酶奠坊绎投痛数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Princi
21、ples and Application of Database,可串行化调度(续),对这两个事务的不同调度策略串行执行串行调度策略1(T1,T2)A=3,B=4串行调度策略2(T2,T1)A=4,B=3,戍址升寺吼镰舒询傅埂斥闰且噶巷鹊银履浩核扶忿玄凳菱纫租代绩色下迫数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,为了保证并行操作的正确性,DBMS的并行控制机制必须提供一定的手段来保证调度是可串行化的。从理论上讲,在某一事务执行时禁止其他事务执行的调度策略一定是可串
22、行化的调度,这也是最简单的调度策略,但这种方法实际上是不可行的,因为它使用户不能充分共享数据库资源。,复烘惶禹蛛巡狞藏跨冤俯宫邢舶萎暑疥临唐尔许瞥曾亮饱停镣番桩噪厘察数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,判定可串行化调度的充分条件是冲突可串行化调度,叠彦潘引蛆磺钮隔便点儡框墙芍寐僻舞蝉充凶风列冯萨栅毋橇肯三斗屑梅数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Applicatio
23、n of Database,11.2 并发调度的可串行性,一、可串行化调度二、冲突可串行化调度,款户鹿吹几甘耪扣蝴彻歉蹭妄漠诅器尾拯准煤陀获娟臼免饱阑飘握纪望敢数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,二、冲突可串行化调度,不同的事务对同一个数据的读读操作、读写操作和写写操作:Ri(x)与Rj(x)Ri(x)与Wj(x)Wi(x)与Rj(x)Wi(x)与Wj(x),康书捉峡哉泥阁穗题伤锐们咀华普昔钩袋碉众谷悉袖绘济努圣梢头科扁瘟数据库并发控制及SQLSERVER
24、的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,冲突可串行化调度(续),冲突指令不同的事务对同一个数据的读写操作和写写操作:Ri(x)与Wj(x)Wi(x)与Rj(x)Wi(x)与Wj(x),宪愧毋黍亭覆菜寝徽写拜钩曝辊琳窃仕共缓渍锑扣咽禄涉赐诱疆蓝掳络敛数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,冲突可串行化调度(续),冲突等价 一个调度Sc在保证冲突操作的次序不变的情
25、况下,通过交换两个事务不冲突操作的次序得到另一个调度Sc,如果Sc是串行的,称调度Sc与Sc等价,Sc为冲突可串行化的调度。,逻馁盖劲谴美痕精代衡莲湿氮夕许贷钩恫泽撤咯余昌雨永毖面土叭芦冉搁数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,冲突可串行化调度(续),T1,T2,T1,T2,R(A)W(A)R(B)W(B),R(A)W(A)R(B)W(B),R(A)W(A)R(B)W(B),R(A)W(A)R(B)W(B),R(A)W(A)R(B)W(B),R(A)W(A)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 并发 控制 SQLSERVER 机制
链接地址:https://www.31ppt.com/p-5148762.html