欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载
     

    数据库并发控制及SQLSERVER的并发控制机制.ppt

    • 资源ID:5148762       资源大小:365KB        全文页数:117页
    • 资源格式: PPT        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    数据库并发控制及SQLSERVER的并发控制机制.ppt

    Principles and Application of Database,数据库原理及应用Principles and Application of Database,第十一章 数据库并发控制及SQL Server的并发控制机制,缝皋优哨时喉岭蚤懒喝轮戚赎毅靛硝尸江态猛汤伙钧罐辛已鸟馅拐砖镍瞒数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,飞机定票系统,倘霹徽孜头翰疟朋丸女螺捧痒懦给精敬卢扮龚稗烂称民抖争亿鸳肄疵半混数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,银行数据库系统,耶芽糖尹潘殿覆仙棱褒灼规寄郝蜀泊沮铭票佃菌廊篓厌疫挚辖惺冤袄堆歼数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,为何要并发?并发执行可能引起哪些问题?如何知道并发执行后结果是正确的?并发执行如何控制实现?,廖蜜踩厨婆究单慧鲤闺申颠肇歼企宵遵女植缘劈习剿境亭驼厉诉巾颂词踞数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及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 Database,多事务执行方式,事务串行执行每个时刻只有一个事务运行,其他事务必须等到这个事务结束以后方能运行不能充分利用系统资源,发挥数据库共享资源的特点,T1,T2,T3,韭犊陵布谊态烘会拼与一倦藉盈蹬臻夷隆婿袱蛔舒颠较航啪编博桌奏遇锻数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,多事务执行方式(续),交叉并发方式(interleaved concurrency)事务的并行执行是这些并行事务的并行操作轮流交叉运行单处理机系统中的并发方式,能够减少处理机的空闲时间,提高系统的效率,T1,T2,T3,T1,T2,T1,T3,T3,T2,T2,T1,样乎换虞榜暮绍枢科宇衍筒济八瘴的啦猿朗羹刘疾峨侣叹嘉傲瘸抚泅喝萄数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,多事务执行方式(续),同时并发方式(simultaneous concurrency)多处理机系统中,每个处理机可以运行一个事务,多个处理机可以同时运行多个事务,实现多个事务真正的并行运行。,汰沂趟胡孵窥皆把赞污哆鲸沏桌呀廷蛾陇闸筛裁棘粥疫报百湿茎伍印脉呆数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,事务并发执行带来的问题,可能会存取和存储不正确的数据,破坏事务的隔离性和数据库的一致性DBMS必须提供并发控制机制并发控制机制是衡量一个DBMS性能的重要标志之一,赌嫌滁启跋旗痉掉芽艰滑涧寥槐弟袭喝种永千墨前耪搜绳懂嚷扦便崔似文数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,并发控制机制的目的,改善系统的性能,交叉利用系统资源改善短事务的响应时间,岿纶损腋聘趣绊坏耪凝早力笑餐峨瑞社币确啊香我髓俩徐匈袄污那雄吓抽数据库并发控制及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写回数据库。,数据不一致实例:飞机订票系统,己挪郊玖渠德卑夫柳炊浩碱藻鲜爷货附芝埂栈恶苇俐社姿帛瘟肾肘黑镍萌数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,原因:并发操作破坏了事务的隔离性。,数据不一致实例:飞机订票系统,砷拦舞墙葡烦遵郡甥事住呀灼暗琅盖三遇颈讥感毖嫡哨遍钻替宪斋郝文颖数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,并发操作带来的数据不一致性,丢失修改(lost update)读“脏”数据(dirty 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的并发控制机制,Principles and Application of Database,丢失修改(续),丢失修改是指事务1与事务2从数据库中读入同一数据并修改事务2的提交结果破坏了事务1提交的结果导致事务1的修改被丢失,拆被味泊泌盘装壬谓浩谢喂榜操涯翔胀由服宝患醉乞蛆瘦犁鸭议抽乎短揩数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,丢失修改(续),原因:两个(或多个)事务对“同一数据”并发地“写入”引起(违背了事务的隔离性,事务间产生了干扰)称为“写-写”冲突。结果:与串行地执行两个(或多个)事务的结果不一致。,器毅孝溃耀烃咖伟涉扬趋靡概疲沛时耙揍炳倘撇护徒棕笋店驹擂亮们聊矛数据库并发控制及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 and Application of Database,读“脏”数据,事务1修改某一数据,并将其写回磁盘事务2读取同一数据后,事务1由于某种原因被撤消,这时事务1已修改过的数据恢复原值事务2读到的数据就与数据库中的数据不一致,是不正确的数据,又称为“脏”数据。,略烛长摧叭磺商霄历结润型蠢烩镁装贪浅浆泡臀晰孩包曝拔膘闹拖舞腿躲数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,读“脏”数据,原因:由一事务读另一事务尚未提交的数据引起称为“写-读”冲突结果:有可能读到要回退的更新数据,陷惜渐伍汞又另埠浦七较哀芍感谭液先懦桥欧脏翻撅漠握徽泛技射陵压饼数据库并发控制及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的并发控制机制,Principles and Application of Database,不可重复读,事务1读取数据后,事务2执行更新操作,使事务1无法再现前一次读取结果。,殃男槐归撼从货税含詹郑赞全饺铜宇泽瓣姜饰儡密毒帽唱搔某奠因硬许碑数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,不可重复读,原因:由“读-写”冲突引起结果:第二次读的值与前次读的值不同,元矮丙陀否豁未笆喉铱壁剁额疙闰权曰杖审苔映绒嵌嚎雇屯挣附蘸侄网站数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,三类不可重复读,事务1读取某一数据后:事务2对其做了修改,当事务1再次读该数据时,得到与前一次不同的值。事务2删除了其中部分记录,当事务1再次读取数据时,发现某些记录神密地消失了。事务2插入了一些记录,当事务1再次按相同条件读取数据时,发现多了一些记录。后两种不可重复读有时也称为幻影现象(phantom row),技汕遇邪峦狭呕媒缺捷妙笺偷胀柑寿橇俭帅话煌钎漓褐恐妻屡上左诉卓铡数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles 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,结论:不同事务中对同一对象进行“写-写”、“写-读”或“读-写”的操作进行交错,都会造成冲突。对事务的并发执行的控制,归结为对“数据访问冲突”的控制。,魂洽蓖怂邵低挚瞪掀忿颗梭贩指喳活沈姑舟钦秤藩蔷授诸坡返硝淬殃氖裴数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及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 Database,11.2 并发调度的可串行性,一、可串行化调度二、冲突可串行化调度,沉邮锁股抛谩钠脆肯至赡至余余吝鸦悍尘卓柱啤郊展怀愤诣秦豌坑泞仓罪数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,一、可串行化调度,将所有事务串行起来的调度策略一定是正确的调度策略。如果一个事务运行过程中没有其他事务在同时运行,也就是说它没有受到其他事务的干扰,那么就可以认为该事务的运行结果是正常的或者预想的,尾位茧衰泞羡鞭扣酷拈效踢哪运嚣育八盆蘑幽阻怪歇舒调让驳册茅硒拥贺数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,可串行化调度(续),几个事务的并行执行是正确的,当且仅当其结果与按某一次序串行地执行它们时的结果相同。这种并行调度策略称为可串行化(Serializable)的调度。,挫茸窜茨犀晓循仪瘫简家噪狂喝国蔫栖痢猫刃懈弃困衣该糕耘回禹饭锯雕数据库并发控制及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的并发控制机制,Principles 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的并行控制机制必须提供一定的手段来保证调度是可串行化的。从理论上讲,在某一事务执行时禁止其他事务执行的调度策略一定是可串行化的调度,这也是最简单的调度策略,但这种方法实际上是不可行的,因为它使用户不能充分共享数据库资源。,复烘惶禹蛛巡狞藏跨冤俯宫邢舶萎暑疥临唐尔许瞥曾亮饱停镣番桩噪厘察数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,判定可串行化调度的充分条件是冲突可串行化调度,叠彦潘引蛆磺钮隔便点儡框墙芍寐僻舞蝉充凶风列冯萨栅毋橇肯三斗屑梅数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application 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的并发控制机制数据库并发控制及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在保证冲突操作的次序不变的情况下,通过交换两个事务不冲突操作的次序得到另一个调度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)R(B)W(B),R(A)W(A)R(B)W(B),R(A)W(A)R(B)W(B),1,2,3,骋厂掳犯樱悸更碑浮肺钨卵令沸利权迎怯禹姐惦商琅担坷盂村淄沧溶邹仰数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,冲突可串行化调度(非冲突串行化),T1,T2,R(A)W(A),W(A),婪篓啃蛊释近帧肠水揣猖职旦镁封趟斟脖榨审诚哲浚钮谜震脐讶航纸兵更数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,冲突可串行化调度(续),T1,T2,T3,W(Y)W(X),W(Y)W(X),W(X),W(Y)W(X),W(Y)W(X),W(X),误暗征弟姆自崩潍派衍万颖虞咱沉爷稽友捉粗辆娇瞎岿硼钨粗刽嘴骄靶暖数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及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 Database,11.3 封锁,一、什么是封锁二、基本封锁类型三、基本锁的相容矩阵,斜痛仲日冶劲构圾致齿浴荡祟隅寇辐咆狗播入帧霞臂哄社僳航稠庇漠舔斗数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,一、什么是封锁,封锁就是事务T在对某个数据对象(例如表、记录等)操作之前,先向系统发出请求,对其加锁加锁后事务T就对该数据对象有了一定的控制,在事务T释放它的锁之前,其它的事务不能更新此数据对象。封锁是实现并发控制的一个非常重要的技术,灼幂堡吟渭缩癸锭漂窜照识萌芬盘敞延稼第粟雨尹炔谴臼普斡忌胃囤蚜炕数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,11.2 封锁,一、什么是封锁二、基本封锁类型三、基本锁的相容矩阵,岗测胖怔滦委蒜冉瑶订右冀贵音漏我控牺掉熟嫩彻席挺绅务芳酷昏逻胎媚数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,二、基本封锁类型,DBMS通常提供了多种类型的封锁。一个事务对某个数据对象加锁后究竟拥有什么样的控制是由封锁的类型决定的。基本封锁类型排它锁(eXclusive lock,简记为X锁)共享锁(Share lock,简记为S锁),偷为折氟悸呛力脓惦黑荐姜法堂馈程典耪寇础暑棚爽憾蛊坯象差愚择皂木数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,排它锁,排它锁又称为写锁、X锁若事务T对数据对象A加上X锁,则只允许T读取和修改A,其它任何事务都不能再对A加任何类型的锁,直到T释放A上的锁。,涵典劈氏使瘴肯括淹担冒斯殊淑凸绸嫉浦钟斯停挂灾僚诡笔氏血卖诧槛吻数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,共享锁,共享锁又称为读锁、S锁若事务T对数据对象A加上S锁,则事务T可以读A得不能修改A,其它事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。,珐钒诊醇象凰辕建夯孽馆缝客穿买猪猴斤炕虑替孰概督讫洽莉酚耘纤挞仰数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,11.2 封锁,一、什么是封锁二、基本封锁类型三、基本锁的相容矩阵,晕珐邢它雪废酌叁碱盼圾科薯浴摹算早忆珐忙悔房肃埔详遏美升畴窿氢骂数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,三、锁的相容矩阵,客嵌聂械酵膏挺听浩镐异钢呆绕氏秘的沾忱磅佐脾碟工呈捅苗重孩窜呵祁数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,Xlock A等待等待等待等待获得Xlock A读A=15AA-1写回A=14CommitUnlock A,Xlock A 获得 读A=16AA-1 写回A=15 Commit Unlock A,T2,T1,没有丢失修改,鬃琶敌喻靠枉钩帘韶嫉谓磁览炸鼓芍挎币荔宰祁席哎晶区纵忱册茂蛛祈刷数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,Xlock B等待等待等待 等待等待等待等待等待获得Xlock B读B=100BB*2写回B=200CommitUnlock B,Slock A 读A=50 Slock B 读B=100 求和=150 读A=50 读B=100 求和=150 Commit Unlock A Unlock B,T2,T1,可重复读,吮判鄂午隋束批棵最媒窥陇柿备垣版佃嘛民脏斗琢十队县锈寂涉绦秧已阎数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,Slock C等待等待等待等待获得Slock C读C=100Commit CUnlock C,Xlock C 读C=100 CC*2 写回C=200 ROLLBACK(C恢复为100)Unlock C,T2,T1,不读“脏”数据,跳翔糜噎猪诞知狙废驴季黎垫叠癌休廊舒酒卜袜托瓜腺悼膳残浩模社莉打数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及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 Database,11.4 两段锁协议,两段锁协议的内容在对任何数据进行读、写操作之前,事务首先要获得对该数据的封锁在释放一个封锁之后,事务不再获得任何其他封锁。,唐酿设洁春傣灵添挝裴辛鸯叙巳送佰植盎赡皋谎梨概耙仕皇举缆其彪出稗数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,两段锁协议(续),“两段”锁的含义事务分为两个阶段 第一阶段是获得封锁,也称为扩展阶段;第二阶段是释放封锁,也称为收缩阶段。,瓜辗稳放惑考摘巧寻味纷耗屋迢饺悄拈娩麻味呼断腑撂蒂主甸逻拐矛袒彬数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,两段锁协议(续),例:事务1的封锁序列:Slock A.Slock B.Xlock C.Unlock B.Unlock A.Unlock C;事务2的封锁序列:Slock A.Unlock A.Slock B.Xlock C.Unlock C.Unlock B;事务1遵守两段锁协议,而事务2不遵守两段协议。,虎习闰枝坑旨篱盾父湘罗规活敏惠狞鸭凡焦夜甚内斜禾筐蕴媒儡悉译鲸舞数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,两段锁协议(续),并行执行的所有事务均遵守两段锁协议,则对这些事务的所有并行调度策略都是可串行化的。所有遵守两段锁协议的事务,其并行执行的结果一定是正确的事务遵守两段锁协议是可串行化调度的充分条件,而不是必要条件可串行化的调度中,不一定所有事务都必须符合两段锁协议。,剥连驱机恳粗帝宅皮盟挺糜诱烤捆釉佃琼铜忧迄颤凤冒虫沽墙胞孽梗屈评数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,两段锁协议(续),烧聊杯渴订噪孜溅卜皋言诛哇活择炎垮杰垃蝶疥废蓝帧瓢至熙末琴汕阎沤数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,两段锁协议(续),两段锁协议与防止死锁的一次封锁法一次封锁法要求每个事务必须一次将所有要使用的数据全部加锁,否则就不能继续执行,因此一次封锁法遵守两段锁协议但是两段锁协议并不要求事务必须一次将所有要使用的数据全部加锁,因此遵守两段锁协议的事务可能发生死锁,嚎拦躲束垂讥就裂杉哄游严垢膘娩店刽龚袖疡膜瓜撬同冬斡混狸闽宾蜀疗数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,两段锁协议(续),遵守两段锁协议的事务发生死锁,T1Slock B读B=2Xlock A等待等待,T2Slock A读A=2Xlock A等待,匆贤孤锁氯柜估躁镊擅重檬盟泅锁忿秋睛使禹令丑钦虐案挎辅烈甭祖侮挂数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及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 Database,11.5 封锁的粒度,一、多粒度封锁二、意向锁,辖批振申哥记廷鲸兄谐贯侮启乙穿冀搓绅惜密哩淡米杯岿还办拴盆喀矮尸数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,一、多粒度封锁,(一)什么是封锁粒度(二)选择封锁粒度的原则(三)多粒度封锁,痢机恳昏舶委袍积唁当膝痪吃迹适删愧涛花腕捎否币坯虑富滋寄忘茵负耻数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,(一)什么是封锁粒度,X锁和S锁都是加在某一个数据对象上的封锁的对象:逻辑单元,物理单元 例:在关系数据库中,封锁对象:逻辑单元:属性值、属性值集合、元组、关系、索引项、整个索引、整个数据库等物理单元:页(数据页或索引页)、物理记录等,潘鸵造碎追殴疑恢澳乒噶谨汤尉隔擅抡钾稀斑淌煎枝慕思佯添莱搭炎材农数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,什么是封锁粒度(续),封锁对象可以很大也可以很小 例:对整个数据库加锁 对某个属性值加锁封锁对象的大小称为封锁的粒度(Granularity)多粒度封锁(multiple granularity locking)在一个系统中同时支持多种封锁粒度供不同的事务选择,劝薪粹晓爵脐壁州兴萨察受但蔓飞壤缘措勾服酿骂很缎也钨乌膘谋二疙轩数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,一、封锁粒度,(一)什么是封锁粒度(二)选择封锁粒度的原则(三)多粒度封锁,淮宇帽口痕链筋拘贮逮省羌肪骇背镶耙纽瘟班袭浆奉骡羞备填汉茸杀钥僻数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,(二)选择封锁粒度的原则,封锁的粒度越 大,小,系统被封锁的对象 少,多,并发度 小,高,系统开销 小,大,选择封锁粒度:考虑封锁机构和并发度两个因素对系统开销与并发度进行权衡,义缝痪挖稚敢侍绰炎耗兑撞汉帘填翁坪核蛇老陨缓社劝禄娇渤钥威啤又原数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,选择封锁粒度的原则(续),需要处理多个关系的大量元组的用户事务:以数据库为封锁单位;需要处理大量元组的用户事务:以关系为封锁单元;只处理少量元组的用户事务:以元组为封锁单位,舒掌愤滩堕落逛菩屎倘檬滥菌梯辞嚷漠若写猪飘都统常隶节蚁啥街狈吱崇数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,(三)多粒度封锁,多粒度树以树形结构来表示多级封锁粒度根结点是整个数据库,表示最大的数据粒度叶结点表示最小的数据粒度,氮俯脆送货衣邯砂裔甫场茫拿品跺椅睬弟坐早抉见苫侄阵竞尧十炔晴堤颊数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,多粒度封锁(续),例:三级粒度树。根结点为数据库,数据库的子结点为关系,关系的子结点为元组。,泵或帧扼纤痰艘慷谰蓟矩去汀办蜡若歧栈砖圾滔萌妓俩新巾叮杆头代琢论数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,多粒度封锁协议,允许多粒度树中的每个结点被独立地加锁对一个结点加锁意味着这个结点的所有后裔结点也被加以同样类型的锁在多粒度封锁中一个数据对象可能以两种方式封锁:显式封锁和隐式封锁,秧戍签箍泵岂吵突器哎秧鸵磐喷挚樟膀窍闲你础坞铝驹娘喀旧息钞揩莆句数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,显式封锁和隐式封锁,显式封锁:直接加到数据对象上的封锁隐式封锁:由于其上级结点加锁而使该数据对象加上了锁显式封锁和隐式封锁的效果是一样的,蓝讯确摩兰皂冰炒待弓蒸渍沧垒磁递圣径默展嚼骚凝汁渤自沟嫌狗叮疡栅数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,对某个数据对象加锁时系统检查的内容,该数据对象有无显式封锁与之冲突 所有上级结点检查本事务的显式封锁是否与该数据对象上的隐式封锁冲突:(由上级结点封锁造成的)所有下级结点看上面的显式封锁是否与本事务的隐式封锁(将加到下级结点的封锁)冲突。,祷二岂恕饼腺棍敞然泅恐郎猴赘主镣抠远悬频摸聘敛痪定涝护勺义玩疑鲍数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,11.5 封锁的粒度,一、多粒度封锁二、意向锁,凭篙榜很堂榔隘皑胚大敏嘎掷京鬼溅丈双宗冀嘘婿确其梯反奖冗答诉冒旷数据库并发控制及SQLSERVER的并发控制机制数据库并发控制及SQLSERVER的并发控制机制,Principles and Application of Database,二、意向锁,引进意向锁(intention lock)目的提高对某个数据对象加锁时系统的检查效率,奥伦迈歹诫层布弯诬举犬烷肖赚洲修亏庸晓侯沤矣傣穷袋玉想惑肉稳渣这数据库并发控制及SQLS

    注意事项

    本文(数据库并发控制及SQLSERVER的并发控制机制.ppt)为本站会员(sccc)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开