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

    11并发控制.ppt

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

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

    11并发控制.ppt

    第11章 数据库并发控制,11.1 事务的基本概念11.2 并发控制概述11.3 封锁11.4 并发调度的可串行性11.5 两段锁协议11.6 封锁的粒度,蹋嗜脊尊坤士湃惮擎日侍致轩歉缨迟硕耗笋巡沾轿熄智旦胆沃乒步嚷叔桌11并发控制11并发控制,第11章 数据库并发控制,问题的提出:数据库是一个共享资源,应该允许多个用户程序并行地存取数据,当对数据库进行并行操作时,有可能出现数据不一致的情况。并行操作:在单处理机系统中,事务的并行执行实际上是这些并行事务的操作轮流交叉进行。,梅堰肉临佐耐涉艘椎舟叠涝买应络赶械辽弄绪猪慢苛画瘤宠乃老鸭告心刀11并发控制11并发控制,数据库技术,并发操作举例 考虑飞机订票系统。设有两个订票点,机票余票A=15。,取A=15修改A=A-1写回数据库A=14,取A=15修改A=A-1写回数据库A=14,T,甲售票点,乙售票点,结果明明卖出两张机票,数据库中机票余额只减少1,族膳现源豆锰卢监甚饶诌件量铬枢齐敞汁水沮宠叫左揪桐圃束芽螺仗舰畔11并发控制11并发控制,11.1 事务的基本概念,定义是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位事务和程序比较在关系数据库中,一个事务可以是一条或多条SQL语句,也可以包含一个或多个程序。一个程序通常包含多个事务SQL Server 中事务分类(1)系统事务:一条语句就是一个事务(2)用户定义事务:,偷滋租帧乌陇巴跑桑陵李购庐搪眼膊闻匀尚婶峦硕昧施市油靡各揍瘪摆翻11并发控制11并发控制,系统提供的事务语句如下:ALTER TABLE、CREATE、DELETE、DROP、GRANT、INSERT、OPEN、SELECT、UPDATE等用户定义事务BEGIN TRANSACTION BEGIN TRANSACTION SQL 语句1 SQL 语句1 SQL 语句2 SQL 语句2。COMMIT ROLLBACK,COMMIL:表示提交,即提交事务的所有操作。具体地说就是将事务中所有对数据库的更新写回到磁盘上的物理数据库中去,事务正常结束。ROLLBACK:表示回滚,即在事务运行的过程中发生了某种故障,事务不能继续执行,系统将事务中对数据库的所有已完成的操作全部撤销,滚到事务开始时的状态,呕慧偏赚坑晋叠溪密丝藤硕服瘤码羽徽舜菠耪蔫锄腹晓狰磕振砾钎琳拴守11并发控制11并发控制,11.1 事务的基本概念,事务的ACID特性:原子性(Atomicity)事务是数据库的逻辑工作单位,事务中包括的诸操作要么都做,要么都不做。一致性(Consistency)事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。隔离性(Isolation)一个事务的执行不能被其他事务干扰。即并发执行的各个事务之间不能互相干扰。多个并发执行的结果和分别单独执行单个事务的结果完全一样。持续性(Durability)指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。,饰首甲鄙船宣溺摈干钟姥允舵散屈仪承间瘸嗣愈喉笔溜币焦船樊堑琳闸循11并发控制11并发控制,11.2 并发控制概述,并发控制机制的任务对并发操作进行正确调度保证事务的隔离性保证数据库的一致性,躬赘宪驮侯刮疽爽田抡谤饵跌桨普噶膏冉余惧洞毒声叹症忍奈臣症叼颊邹11并发控制11并发控制,前面飞机票示例可表示为:,事务T1取A=15修改A=A-1写回数据库A=14,事务T2取A=15修改A=A-1写回数据库A=14,T,11.2 并发控制概述,造成数据不一致的原因:(1)在并发操作情况下,对甲、乙两个事务的操作序列的调度是随机的(2)T2事务修改A并写回后覆盖了T1事务的修改.,蛊摇两迹唾伤供楞检爪哨稽集蹬苇荔喘栖巧夸附难缅韵绣寒遍密呆思而黑11并发控制11并发控制,并发操作带来的数据不一致性丢失修改(Lost Update)不可重复读(Non-repeatable Read)读“脏”数据(Dirty Read)记号R(x):读数据xW(x):写数据x,弱衡耘工骆侩物匠福冈真焰强倔乓磊雇随剩空献拌辰墨所苫饺昔灿簇甭涅11并发控制11并发控制,1.丢失修改,两个事务T1和T2读入同一数据并修改,T2的提交结果破坏了T1提交的结果,导致T1的修改被丢失。,丢失修改,奸萍蒂某绒蚊通苫蟹坟赢红挽谁皂娜厂晾投吱朗梳逝洱语响饿北描评耘豁11并发控制11并发控制,2.不可重复读,不可重复读是指事务T1读取数据后,事务T2 执行更新操作,使T1无法再现前一次读取结果。,盗贿山抛韩短米独舍龚变罕肮腰受钉娥沤聪矩淮钮拓琐榷硕荡先倡擅伦咱11并发控制11并发控制,3.读“脏”数据,读“脏”数据是指:事务T1修改某一数据,并将其写回磁盘事务T2读取同一数据后,T1由于某种原因被撤销这时T1已修改过的数据恢复原值,T2读到的数据就与数据库中的数据不一致T2读到的数据就为“脏”数据,即不正确的数据,汁驾别巩睫项兜潦趋旧狰愈铂羹引淬祸弛互予籽酉利后顺显赶耍孤泅煞宦11并发控制11并发控制,读“脏”数据,T1将C值修改为200,T2读到C为200T1由于某种原因撤销,其修改作废,C恢复原值100这时T2读到的C为200,与数据库内容不一致,就是“脏”数据,咋山堕铃匀人次棋妆挫寓勋省济雇拇羹沛赁耗扇读宅底腕课瘸柳挂莎搂蒙11并发控制11并发控制,11.2 并发控制概述,并发控制的主要技术有封锁(Locking)时间戳(Timestamp)乐观控制法商用的DBMS一般都采用封锁方法,匀弓诊焕斟缎盐队益擅长恰期镊癌宰真烈印肾钎契兵虫精汇连津逊瓶济斤11并发控制11并发控制,11.3 封锁,什么是封锁基本封锁类型锁的相容矩阵,浓殴错兑必燎逼农依歼纷秒功绝曼佃阂掷窿悟焙蜜埠嘴行奔在幅擎哀炼波11并发控制11并发控制,什么是封锁,封锁就是事务T在对某个数据对象(例如表、记录等)操作之前,先向系统发出请求,对其加锁加锁后事务T就对该数据对象有了一定的控制,在事务T释放它的锁之前,其它的事务不能更新此数据对象。,基本封锁类型排它锁(Exclusive Locks,简记为X锁)共享锁(Share Locks,简记为S锁),锣敌脸鼠撬慎瞅望惨代震演荆歪轴理啡赌滴磊寻掏赘义唉昨船第严镀蔓怎11并发控制11并发控制,排它锁又称为写锁若事务T对数据对象A加上X锁,则只允许T读取和修改A,其它任何事务都不能再对A加任何类型的锁,直到T释放A上的锁保证其他事务在T释放A上的锁之前不能再读取和修改A 共享锁又称为读锁若事务T对数据对象A加上S锁,则其它事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁保证其他事务可以读A,但在T释放A上的S锁之前不能对A做任何修改,表瓦搪炎聪撮得施盯琐诵抬涸跑舰遏红帘糯拜谷汹澳锰薛故箕敢崔刊谐供11并发控制11并发控制,锁的相容矩阵,Y=Yes,相容的请求N=No,不相容的请求,T1 T2,降睦晕弃驻屎拴掺波匣毋裙趋搀序绚跺弘耶怕眉露践癣窍冲利架雀汀泪淡11并发控制11并发控制,使用封锁机制解决丢失修改问题,事务T1在读A进行修改之前先对A加X锁当T2再请求对A加X锁时被拒绝T2只能等待T1释放A上的锁后T2获得对A的X锁这时T2读到的A已经是T1更新过的值15T2按此新的A值进行运算,并将结果值A=14送回到磁盘。避免了丢失T1的更新。,没有丢失修改,兄篇避黍冲膝冕周盆契写淀乐溯量堑啼惩君隋寥蠕郊刊葫险猩辟凌送眨陵11并发控制11并发控制,使用封锁机制解决不可重复读问题,事务T1在读A,B之前,先对A,B加S锁其他事务只能再对A,B加S锁,而不能加X锁,即其他事务只能读A,B,而不能修改当T2为修改B而申请对B的X锁时被拒绝只能等待T1释放B上的锁T1为验算再读A,B,这时读出的B仍是100,求和结果仍为150,即可重复读T1结束才释放A,B上的S锁。T2才获得对B的X锁,可重复读,烽姜拈打篮铱抽秘狠扦液依声拟酮藕滨姐快祝扰顽员帕咯毖痉亡寓轮荷淳11并发控制11并发控制,11.4 活锁和死锁,封锁技术可以有效地解决并发操作的一致性问题,但也带来一些新的问题死锁活锁,杠代泄镑派衔耗辙肠豢潍纱垒粉烙枕犊搬洋防掳符奉痉绩粤理惊棒疟城摹11并发控制11并发控制,11.4.1 活锁,事务T1封锁了数据R事务T2又请求封锁R,于是T2等待。T3也请求封锁R,当T1释放了R上的封锁之后系统首先批准了T3的请求,T2仍然等待。T4又请求封锁R,当T3释放了R上的封锁之后系统又批准了T4的请求T2有可能永远等待,这就是活锁的情形,命进靖谐淫亿者必葫伎荣览著所舰害杀么檬应轰锰昼独寅原闯眶掐稚企荫11并发控制11并发控制,避免活锁:采用先来先服务的策略当多个事务请求封锁同一数据对象时按请求封锁的先后次序对这些事务排队该数据对象上的锁一旦释放,首先批准申请队列中第一个事务获得锁,穗昼奉愁卜馋代镜瘟撑船炙匈上滤媚役伪先丹舀柴赐污社实贤椭蜒肇焚沮11并发控制11并发控制,11.4.2 死锁,事务T1封锁了数据R1T2封锁了数据R2T1又请求封锁R2,因T2已封锁了R2,于是T1等待T2释放R2上的锁接着T2又申请封锁R1,因T1已封锁了R1,T2也只能等待T1释放R1上的锁这样T1在等待T2,而T2又在等待T1,T1和T2两个事务永远不能结束,形成死锁,外蚕恫亮筏牛豹嚼癣义虾悄哟竟抡夜吞瓷拦潦伎拌斟腻汾伟哇淹脆塞驯臆11并发控制11并发控制,死 锁,嫡介窍涸差屡侨卢芬鞠牛炕宋辟欢先纂顷舟崎史摸踪阿恢蝗戍躬钉倡逻吼11并发控制11并发控制,解决死锁的方法,两类方法预防死锁一次封锁法 顺序封锁法2.死锁的诊断与解除,饭回遵灾侨浪诡怜僳柴嗅奴绍兼晌痊屡凄流突吮蔷纺菇固旱储研捅致潜摘11并发控制11并发控制,(1)一次封锁法,要求每个事务必须一次将所有要使用的数据全部加锁,否则就不能继续执行存在的问题降低系统并发度难于事先精确确定封锁对象,薪膀鸿涕与盾车怨馈谋概吧痞展峙搜合孽久蔽蜗骄页酪衡肿淑尤恢疾刑邢11并发控制11并发控制,(2)顺序封锁法,顺序封锁法是预先对数据对象规定一个封锁顺序,所有事务都按这个顺序实行封锁。顺序封锁法存在的问题维护成本 数据库系统中封锁的数据对象极多,并且在不断地变化。难以实现:很难事先确定每一个事务要封锁哪些对象,齿抠挞婴郑冷测坡嗜坠莲严权入柴始孙傅徐泄婿容桨咀苞排掠昌象棕咯撰11并发控制11并发控制,2.死锁的诊断与解除,死锁的诊断超时法事务等待图法,经钡昧篷儒乱贸妒踏溪蓟邪隙六斜忆孕怀淡崔类湘灿秘淘悦剪熄简粮载鄙11并发控制11并发控制,(1)超时法,如果一个事务的等待时间超过了规定的时限,就认为发生了死锁优点:实现简单缺点有可能误判死锁时限若设置得太长,死锁发生后不能及时发现,溢三渣甲债塑抹掣惋垢盒坤檀雍笋惋闪涌昭随箍涟腐堑纬末诫睹街恒菠缨11并发控制11并发控制,(2)等待图法,用事务等待图动态反映所有事务的等待情况事务等待图是一个有向图G=(T,U)T为结点的集合,每个结点表示正运行的事务U为边的集合,每条边表示事务等待的情况若T1等待T2,则T1,T2之间划一条有向边,从T1指向T2,里隘搁嫉断苞哺姓舌孟捷蔑费桌裹蚀撩文度啊蛹震洗哗武称排惕景邹消直11并发控制11并发控制,事务等待图,并发控制子系统周期性地(比如每隔数秒)生成事务等待图,检测事务。如果发现图中存在回路,则表示系统中出现了死锁解除死锁选择一个处理死锁代价最小的事务,将其撤消释放此事务持有的所有的锁,使其它事务能继续运行下去,堡黎砚墩字屑牌讥茫间彰违峭洒攀件宗助狗敦梨隶代畦停仁揭脏郝赌扯耙11并发控制11并发控制,11.5 并发调度的可串行性,DBMS对并发事务不同的调度可能会产生不同的结果什么样的调度是正确的?,将所有事务串行起来的调度策略。虽以不同的顺序串行执行事务可能会产生不同的结果,但由于不会将数据库置于不一致状态,所以都是正确的。,鸯你盟来氏去誊颤隔纫雍胜伞褒晾个肩褒素冉简庭梧变逮迈臼徽滴参寥慰11并发控制11并发控制,11.5.1 可串行化调度,可串行化(Serializable)调度多个事务的并发执行是正确的,当且仅当其结果与按某一次序串行地执行这些事务时的结果相同可串行性(Serializability)是并发事务正确调度的准则一个给定的并发调度,当且仅当它是可串行化的,才认为是正确调度,汇望权慧患袱跑蝴纸沂铱企绿殉努吁慈围乍搐甜颧垢毙釜沫趴满恶茂供幢11并发控制11并发控制,例现在有两个事务,分别包含下列操作:事务T1:读B;A=B+1;写回A事务T2:读A;B=A+1;写回B现给出对这两个事务不同的调度策略,活减谅懈益汲凿蛰择费序仕突梭搽牟迢渭蛇寂改勤逛卧酪碌毙倘恶栋戍阀11并发控制11并发控制,串行化调度,正确的调度,串行调度(a),假设A、B的初值均为2。按T1T2次序执行结果为A=3,B=4 串行调度策略,正确的调度,宫谩州胺澎妓护耿沫掠交档噶搓寞坦费开圭情诺烁饭淡莎捎棉往赘汹哦团11并发控制11并发控制,串行化调度,正确的调度,串行调度(b),假设A、B的初值均为2。T2T1次序执行结果为B=3,A=4 串行调度策略,正确的调度,偿宏涩侮赔矮若苞更堵牟弦纤待正菇眉懂桌眯框诅绍僵柜勒才吁哄俺祖言11并发控制11并发控制,不可串行化调度,错误的调度,不可串行化的调度,执行结果与(a)、(b)的结果都不同是错误的调度,裸煽腕竹幂州服赢矗桐轻躬拦庸郊馁笔靳阿久杂采蓝毯疡滁辨珠靡酝邹某11并发控制11并发控制,可串行化调度,正确的调度,可串行化的调度,执行结果与串行调度(a)的执行结果相同是正确的调度,的孺戍氮誓伐入吮刨老赣苹轮峦歹镜彬激三撒厅歼气夺焰张孩字欣憨眠拌11并发控制11并发控制,11.5.2 冲突可串行化调度,可串行化调度的充分条件一个调度Sc在保证冲突操作的次序不变的情况下,通过交换两个事务不冲突操作的次序得到另一个调度Sc,如果Sc是串行的,称调度Sc为冲突可串行化的调度一个调度是冲突可串行化,一定是可串行化的调度,胞扮棉普孜隙铬驮篱擅铸闸毅富逃坤衷守云凡赌黎归诀蠕抒败校啊雨粱阉11并发控制11并发控制,冲突操作冲突操作是指不同的事务对同一个数据的读写操作和写写操作R1(x)与W2(x)/*事务T1读x,T2写x*/W1(x)与W2(x)/*事务T1写x,T2写x*/其他操作是不冲突操作不同事务的冲突操作和同一事务的两个操作不能交换(Swap),虫亨弓散铺坟遣溪浇塔毅袄蛙砌那熙批饰你释侈抵恋令搁卢丘悄枉在棋茂11并发控制11并发控制,例今有调度Sc1=r1(A)w1(A)r2(A)w2(A)r1(B)w1(B)r2(B)w2(B)把w2(A)与r1(B)w1(B)交换,得到:r1(A)w1(A)r2(A)r1(B)w1(B)w2(A)r2(B)w2(B)再把r2(A)与r1(B)w1(B)交换:Sc2r1(A)w1(A)r1(B)w1(B)r2(A)w2(A)r2(B)w2(B)Sc2等价于一个串行调度T1-T2,Sc1冲突可串行化的调度,冲突可串行化调度是可串行化调度的充分条件,不是必要条件,探槽募擒纱源扑佑风绥舟烩炯钨夕月洱耶额鉴奉门张谢迸另辨法奥憾毗炎11并发控制11并发控制,11.6 两段锁协议,封锁协议 运用封锁方法时,对数据对象加锁时需要约定一些规则 何时申请封锁持锁时间何时释放封锁等两段封锁协议(Two-Phase Locking,简称2PL)是最常用的一种封锁协议,理论上证明使用两段封锁协议产生的是可串行化调度,谰斋页磅凤廷涛啥亮灼晴娟猪冤迄汹蜕慎荐散驰浙鞘灌负腕脆凄织鼎基几11并发控制11并发控制,两段锁协议 指所有事务必须分两个阶段对数据项加锁和解锁 在对任何数据进行读、写操作之前,事务首先要获得对该数据的封锁 在释放一个封锁之后,事务不再申请和获得任何其他封锁,“两段”锁的含义事务分为两个阶段 第一阶段是获得封锁,也称为扩展阶段事务可以申请获得任何数据项上的任何类型的锁,但是不能释放任何锁 第二阶段是释放封锁,也称为收缩阶段事务可以释放任何数据项上的任何类型的锁,但是不能再申请任何锁,徽必擎久凌骗吊锡梦婆瑟忌详奠屁坎昨衬镜嘶唉净锭摘呛挺了粘冠许钦厦11并发控制11并发控制,事务Ti遵守两段锁协议,其封锁序列是:Slock A Slock B Xlock C Unlock B Unlock A Unlock C;|扩展阶段|收缩阶段|事务Tj不遵守两段锁协议,其封锁序列是:Slock A Unlock A Slock B Xlock C Unlock C Unlock B;,爆夯唁匝帖近休沸品咏给魔尹织巫坍秽颂尔严镜懂截揖洲忙玻豹却莉午苇11并发控制11并发控制,事务遵守两段锁协议是可串行化调度的充分条件,而不是必要条件。若并发事务都遵守两段锁协议,则对这些事务的任何并发调度策略都是可串行化的两段锁协议与防止死锁的一次封锁法一次封锁法要求每个事务必须一次将所有要使用的数据全部加锁,否则就不能继续执行,因此一次封锁法遵守两段锁协议但是两段锁协议并不要求事务必须一次将所有要使用的数据全部加锁,因此遵守两段锁协议的事务可能发生死锁,九兜信珊匣恐亭轰靴讣嚼窝嘱垫莉怂骸蚤凿淮赏寒衬鲁建滓叫保绍乎呼银11并发控制11并发控制,例 遵守两段锁协议的事务发生死锁,T1Slock BR(B)=2Xlock A等待等待,T2Slock AR(A)=2Xlock A等待,遵守两段锁协议的事务可能发生死锁,拓怀岭杆试廖弄捞辣嫁玻造度下角媳喝笨永再幼异懈卷叁定刺光氏雹醉垂11并发控制11并发控制,封锁粒度,封锁对象的大小称为封锁粒度(Granularity)封锁的对象:逻辑单元,物理单元 例:在关系数据库中,封锁对象:逻辑单元:属性值、属性值集合、元组、关系、索引项、整个索引、整个数据库等物理单元:页(数据页或索引页)、物理记录等,勾水皱劫滥政温秃摧藩尺澈勺腰汽挖陇袁糟痉减枢偿焦庐瞳七敝登哪用笔11并发控制11并发控制,选择封锁粒度原则,封锁粒度与系统的并发度和并发控制的开销密切相关封锁的粒度越大,数据库所能够封锁的数据单元就越少,并发度就越小,系统开销也越小;封锁的粒度越小,并发度较高,但系统开销也就越大,煽佩纶厩机铣捌坟贺那杠彪拙淄更菌掖辫馁叙侠匈羽棋棍导臆耿荤同锐缚11并发控制11并发控制,多粒度封锁(Multiple Granularity Locking)在一个系统中同时支持多种封锁粒度供不同的事务选择选择封锁粒度 同时考虑封锁开销和并发度两个因素,适当选择封锁粒度需要处理多个关系的大量元组的用户事务:以数据库为封锁单位需要处理大量元组的用户事务:以关系为封锁单元只处理少量元组的用户事务:以元组为封锁单位,秋届救侈限润惺辕虾夯学车注描裔郭滴哎苗卷淹拇奥凤炎搅区靡铜辛湛烯11并发控制11并发控制,11.6.1 多粒度封锁,多粒度树以树形结构来表示多级封锁粒度根结点是整个数据库,表示最大的数据粒度叶结点表示最小的数据粒度,拎屠榴剩蕴撩启奋修约襟酱巴济闸友松狭锐奎钥镰毛醉粘幕牢驮接禁苹臭11并发控制11并发控制,例:三级粒度树。根结点为数据库,数据库的子结点为关系,关系的子结点为元组。,三级粒度树,区尸答胞葫荆恋挑盟伶秘创朔哀纳凛拐耪榴为墩疤淬传兴陋崖魁刑硫喧令11并发控制11并发控制,多粒度封锁协议,允许多粒度树中的每个结点被独立地加锁对一个结点加锁意味着这个结点的所有后裔结点也被加以同样类型的锁在多粒度封锁中一个数据对象可能以两种方式封锁:显式封锁和隐式封锁,显式封锁:是应事务的要求直接加到数据对象上的封锁;隐式封锁:是该数据对象没有独立加锁,是由于其上级结点加锁而使该数据对象加上了锁。,腻象石淋死气戚滁钓恭挚象墩忘吏憾闯峙远吝帮垦咸辣咎亡堂也征太劳疙11并发控制11并发控制,系统检查封锁冲突时要检查显式封锁还要检查隐式封锁例如事务T要对关系R1加X锁系统必须搜索其上级结点数据库、关系R1还要搜索R1的下级结点,即R1中的每一个元组如果其中某一个数据对象已经加了不相容锁,则T必须等待,洒煎次蝎巍神弛霖六坷迎磋瞩岛缕骤壤虐冲绸候侠冶眨愤辆靡蓖性蔚皆陕11并发控制11并发控制,对某个数据对象加锁,系统要检查 该数据对象有无显式封锁与之冲突 所有上级结点检查本事务的显式封锁是否与该数据对象上的隐式封锁冲突:(由上级结点已加的封锁造成的)所有下级结点看上面的显式封锁是否与本事务的隐式封锁(将加到下级结点的封锁)冲突,喂宫博千恒舷帆遵颤瘟广彪房逝减娶仑庇备脱扩腥绥恼矛郑撮哀干甄链蚊11并发控制11并发控制,11.6.2 意向锁,引进意向锁(intention lock)目的提高对某个数据对象加锁时系统的检查效率,意向锁:如果对一个结点加意向锁,则说明该结点的下层结点正在被加锁对任一结点加锁,必须先对它的上层结点加意向锁例如,对任一元组加锁时,必须先对它所在的数据库和关系加意向锁,磋必程禹狗寨榆慈歇颖兆葬泣钾箕吵际鉴跳盲巩向疡敦揭湛钾烈蚜蔼祷姆11并发控制11并发控制,11.6.2 意向锁,意向锁类型:意向共享锁(Intent Share Lock,简称IS锁)意向排它锁(Intent Exclusive Lock,简称IX锁)共享意向排它锁(Share Intent Exclusive Lock,简称SIX锁),垫烟及梭绅侦膝雁墟洪查渝瓣衬阅欲烧酮般函学送受碗木黄版纺耀略尘指11并发控制11并发控制,IS锁如果对一个数据对象加IS锁,表示它的后裔结点拟(意向)加S锁。例如:事务T1要对R1中某个元组加S锁,则要首先对关系R1和数据库加IS锁 IX锁如果对一个数据对象加IX锁,表示它的后裔结点拟(意向)加X锁。例如:事务T1要对R1中某个元组加X锁,则要首先对关 系R1和数据库加IX锁 SIX锁如果对一个数据对象加SIX锁,表示对它加S锁,再加IX锁,即SIX=S+IX。例:对某个表加SIX锁,则表示该事务要读整个表(所以要对该表加S锁),同时更新个别元组(所以要对该表加IX锁)。,11.6.2 意向锁,贮抖肩拴芦政睬衬奔淤诚挣柯滚轰逞词泥卵苗纱睁喜凰报年撩端焙饮拈宴11并发控制11并发控制,11.6.2 意向锁,意向锁的相容矩阵,鄙榆悠砸鞋煮疲床碴也讣叉骇沙恃桂颈勇歼栖洱志考印哆藻赞佩井绢毋壹11并发控制11并发控制,11.6.2 意向锁,具有意向锁的多粒度封锁方法申请封锁时应该按自上而下的次序进行释放封锁时则应该按自下而上的次序进行 例如:事务T1要对关系R1加S锁要首先对数据库加IS锁检查数据库和R1是否已加了不相容的锁(X或IX)不再需要搜索和检查R1中的元组是否加了不相容的锁(X锁)具有意向锁的多粒度封锁方法提高了系统的并发度减少了加锁和解锁的开销在实际的数据库管理系统产品中得到广泛应用,蝇呐电优阜岸借君奋炳刃珍莎庄肩姨脆梁闲仪弦胚删蕾夏森蓑四峨威武蔡11并发控制11并发控制,SQL SERVER的并发措施,1.事务分三种:显式事务、隐性事务或自动提交事务。2.数据库必须至少包含一个数据文件和一个事务日志文件。数据和事务日志信息从不混合在同一文件中,并且每个文件只能由一个数据库使用。3.SQL Server锁可在数据库内的不同粒度级别上应用,允许一个事务锁定不同类型的资源,可为行、页、键、键范围、索引、表或数据库加锁。4.SQL Server有多种锁模式:共享锁、更新锁、排它锁、意向锁、架构锁和大容量更新锁。,怖忻蒜蝉米箔栈斥抵塞得溺介漫目阂茸了丧绵筐连讳恨眩逐腋蒜效兵恭堪11并发控制11并发控制,接牧衍博厨萍掌论撵段狡誓早芍霸量潞乡扶汛煮硒伺吻绕朗增续耶哩姿灿11并发控制11并发控制,习题:,P305 1、2、6,崩絮明验动实缚杉战育腔浩彬倦网庄浊原阜棋迪簿恫讣陌耻宠犁城役匹狈11并发控制11并发控制,

    注意事项

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

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




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开