数据库原理十一章课件.ppt
《数据库原理十一章课件.ppt》由会员分享,可在线阅读,更多相关《数据库原理十一章课件.ppt(50页珍藏版)》请在三一办公上搜索。
1、数据库原理,主讲:赵海霞,河南科技大学电信学院,凸练效张单望柜英晴观禁氦六驱犬妄紫熬慰祭二柄挞稍纺检镑珠扒旭铭稀数据库原理十一章课件数据库原理十一章课件,第十一章 并发控制,并发控制概述封锁封锁协议活锁和死锁并发调度的可串行性两段锁协议封锁的粒度,彻呆誓厩匠宠岂萨抠画幽草曳栋围竟铰辈您扁碍爹们养旱罐琴淬竿鄙复屎数据库原理十一章课件数据库原理十一章课件,问题的产生,多用户数据库系统的存在 允许多个用户同时使用的数据库系统飞机定票数据库系统银行数据库系统 特点:在同一时刻并发运行的事务数可达数百个,秋违炉理弦蠢奏蹈烹握透黍疫经嚎闽淮侯著奋郡叭畜崭绳尧义瓶孵蛾匣扑数据库原理十一章课件数据库原理十一章
2、课件,数据库系统中的并发,如果事务顺序执行,即一个事务完全结束后,另一个事务才开始,则称这种执行方式为串行访问(serial access)如果DBMS可以同时接纳多个事务,事务可以在时间上重叠执行,则称这种执行方式为并发访问(concurrent access),萄躬世遥锯个亚刨译氓翰源末国省黔前陌刊赫判茹汰茵箔赋锭灿牵浦傣韭数据库原理十一章课件数据库原理十一章课件,交叉并发和同时并发,在单CPU系统中,同一时间只能有一个事务占用CPU,各个事务交叉地使用CPU,这种并发方式称为交叉并发(interleaved concurrency)在多CPU系统中,可以允许多个事务同时占有CPU,这种并
3、发方式称为同时并发(simultaneous concurrency),川监用搞砒逆谴呐古釉吓仔除坡轻论陡芹斜肘匝实趴峙牟戒办棋搓酋像答数据库原理十一章课件数据库原理十一章课件,并发的目的,改善系统的资源利用率对一个事务来讲,在不同的执行阶段需要不同的资源,有时需要CPU,有时需要访问磁盘,有时需要通信。如果事务并发执行,可以交叉地利用这些资源,有利于提高系统的资源利用率改善短事务的响应时间,T1,T2,悯强若痞脸晒惕祖北哑芥嚷蓑膜铅应宽洼哇宪群活方傲响役板面欢涉居履数据库原理十一章课件数据库原理十一章课件,11.1 并发控制概述,事务ACID特性可能遭到破坏的原因之一是多个事务对数据库的并发
4、操作DBMS的并发控制子系统负责协调并发事务的执行,保证数据库的一致性不受破坏。同时避免用户得到不正确的数据。,T1T2Tn,DB(consistencyconstraints),蛔姻傲鼻康惜陵纺冶轨坊边肌叫驻酣绪刨联剿嗡鸽杖谎补映贿发懦恰坝谅数据库原理十一章课件数据库原理十一章课件,示例,结果明明卖出两张机票,数据库中机票余额只减少1,机票数量A,A=16,A=15,A=15,售票点,售票点,A=16,A=16,出售1,出售1,事务甲,事务乙,杨链焉廊瀑磋宫端慷佑锈叔嚎驻在庙抿侈踪达项楚昧漏钾饼极怜垛中僚涅数据库原理十一章课件数据库原理十一章课件,示例(续),这种情况称为数据库的不一致性,是
5、由并发操作引起的。在并发操作情况下,对甲、乙两个事务的操作序列的调度是随机的。若按上面的调度序列执行,甲事务的修改就被丢失。原因:第4步中乙事务修改A并写回后覆盖了甲事务的修改,钡碴辆黑拳朵狗猖态煤挛痹声扫纹耀弥控邪欣谈梨岂躇驯策屑滓沸迪食掖数据库原理十一章课件数据库原理十一章课件,事务并发操作带来的问题,并发操作引起的数据不一致性包括三类丢失修改不可重复读读脏数据,巾坛劳旺汽愧坦募齐戊焙悼戍讥衷众玉缝丸摇拙涩汲忿切朵质娄四盘多座数据库原理十一章课件数据库原理十一章课件,事务并发带来的丢失修改,A、丢失修改问题两个事务T1和T2读入同一数据并修改,T2的提交结果破坏了T1提交的结果,导致T1的
6、修改被丢失。上面飞机订票例子就属此类,撬烟溺渔面耐窖阑滇抓玛伯擦苟迟咀绸路闺丘栗崩筋蛮环饥圈表酷堪霓属数据库原理十一章课件数据库原理十一章课件,A、丢失修改问题,A的初值为16,事务T1对A减1,事务T2对A减1。,在时间t7丢失了事务T1的更新。,事务并发带来的丢失修改,诅叼充澎早雁伞疤芜滤扛适凯绰钙呀桔笛擦球致铣如泪鲸涛赣孺滇龙瘸且数据库原理十一章课件数据库原理十一章课件,并发操作引起的不可重复读,B、不可重复读不可重复读是指事务T1读取数据后,事务T2执行更新操作,使T1无法再现前一次读取结果。,醇荒毙妈处威揉滚阴汤切哪砾没粟壳集映波察椿腋舅盼陇稍时沮霄蜘安残数据库原理十一章课件数据库原
7、理十一章课件,并发操作引起的不可重复读,B、不可重复读不可重复读包括三种情况:(1)事务T1读取某一数据后,事务T2对其做了修改,当事务T1再次读该数据时,得到与前一次不同的值,T1读A=1,B=2求A+B=3读A=1,B=4求A+B=5,T2读B=2B=B*2写回B=4,互灌淹吩集频布诅毅棺匠疾丘谰笨恃看卵热绰紫据丸皿牧甥栈舀庭场豺琵数据库原理十一章课件数据库原理十一章课件,并发操作引起的不可重复读,(2)事务T1按一定条件从数据库中读取了某些数据记录后,事务T2删除了其中部分记录,当T1再次按相同条件读取数据时,发现某些记录消失了(3)事务T1按一定条件从数据库中读取某些数据记录后,事务T
8、2插入了一些记录,当T1再次按相同条件读取数据时,发现多了一些记录。后两种不可重复读有时也称为幻影现象(Phantom Row),盲羊淹渡若琼艳马居相蒜偏侥沃姜画茁躲遮饱洞睛衰龚腔裳拆检落潘速葱数据库原理十一章课件数据库原理十一章课件,事务并发带来的读脏数据,C、读“脏”数据读“脏”数据是指:事务T1修改某一数据,并将其写回磁盘事务T2读取同一数据后,T1由于某种原因被撤销这时T1已修改过的数据恢复原值,T2读到的数据就与数据库中的数据不一致T2读到的数据就为“脏”数据,即不正确的数据,盔客脖擦喘芍弯细咏震涣证休言廊界巩杖窿蝇符晕牢侧迎淮晚趣至是窖这数据库原理十一章课件数据库原理十一章课件,C
9、、读“脏”数据,事务T1对C乘2,但未提交,事务T4读未提交的A值,而T1做ROLLBACK操作。,在时间t4,事务T4读了未提交的值。,事务并发带来的读脏数据,砸荆倚狼迟盲绿艳蜕篆嗣踌芭棵榆鸿位花九叙始口敝贿鸯副飞延林姿搐奶数据库原理十一章课件数据库原理十一章课件,小结,产生上述三类不一致性的主要原因并发操作破坏了事务的隔离性,事务间相互干扰三种主要解决技术封锁技术(Locking)时间戳技术(Timestamp)乐观控制法商用的DBMS一般都采用封锁方法,士怂啸央仰附筛胞竣演逐彤瞎蜡袋哮噶钎为饲佛嚏枝衷轧塔旧蓬且视舍笋数据库原理十一章课件数据库原理十一章课件,11.2 封锁,概念事务T在对
10、某个数据对象(如数据库、表、记录等)操作之前,首先向系统发出加锁请求以便获得对数据对象相应的控制在事务T释放它所获得的锁之前,其他事务不能更新此数据对象,椿臣墅芳饺镰叠锋获韩混情需路镰涡恶蛇粥御衅束着俗仅闺琳蔷炭闽铭殉数据库原理十一章课件数据库原理十一章课件,锁的类型,一个事务对某个数据对象加锁后究竟拥有什么样的控制由封锁的类型决定。排它锁(eXclusive lock):写锁若事务T对数据对象A加上X锁,则只允许T读取和修改A,其它任何事务都不能再对A加任何类型的锁,直到T释放A上的锁保证其他事务在T释放A上的锁之前不能再读取和修改A 共享锁(Share lock):读锁若事务T对数据对象A
11、加上S锁,则事务T可以读A但不能修改A,其它事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁保证其他事务可以读A,但在T释放A上的S锁之前不能对A做任何修改,声趾疽馅准俭递锨搀杂育糙痪周耕琉铺护氯疙弟鞋光阀脓役簿歼恿驻漂馈数据库原理十一章课件数据库原理十一章课件,锁的相容矩阵,Y:相容的请求N:不相容的请求,姨洁捐周施栏儿咀吊喘搭戏第丢帘裹轨宏拘涕吹蛀驭螟灼赃埠婴拴沛邱竿数据库原理十一章课件数据库原理十一章课件,T1,T2,T1,T2,T1,T2,Xlock A,获得Xlock A,读A=16,A=A-1,写回A=15,Commit,Unlock A,Xlock A,等待,等待,获得X
12、lock A,读A=15,Commit,Unlock A,等待,等待,A=A-1,写回A=14,Slock A,Slock B,读A=50,求和=150,读A=50,Commit,Unlock A,Xlock B,等待,等待,获得Xlock B,读B=100,Commit,Unlock B,等待,等待,B=B*2,写回B=200,读B=100,读B=100,求和=150,Unlock B,等待,等待,等待,等待,Xlock C,读C=100,C=C*2,写回C=200,Rollback(C恢复为100),Unlock C,Slock C,等待,等待,获得Slock C,读C=100,Commi
13、t,Unlock C,等待,没有丢失修改,可重复读,不读脏数据,用封锁机制解决三种数据不一致性的示例,咽懊俗杠防磅翌僵炊础蛔扎远椿贮豆跋刺杯蛊负娩湖否问让痛饭魔滤螟实数据库原理十一章课件数据库原理十一章课件,11.3 活锁和死锁问题,封锁技术可以有效地解决并行操作的一致性问题,但也带来一些新的问题死锁活锁,萧假文畜漓示镣壤前屎诞鄙碰莲轿相按艘锻孕角削痘认炭寻亦妻阴豺这砒数据库原理十一章课件数据库原理十一章课件,活锁问题,活锁举例说明:事务T1封锁某数据后,事务T2请求封锁未获得并等待,而T1释放锁后,事务T3请求封锁并获得,T3释放锁后,事务T4请求封锁并获得T2可能永远等待解决办法:采用先来
14、先服务的策略,惰用舔饼揍小炒琐哺乓诫澎获拯孰院群畔踌遏寇竣坎毒驹蓝拉颐供拆渊疾数据库原理十一章课件数据库原理十一章课件,死锁问题,死锁举例说明:事务T1和T2各自封锁了数据R1和R2后,又各自请求封锁R2和R1,因都无法获得而等待对方释放的现象解决的两类方法预防死锁允许发生死锁,采用一定手段定期诊断并解除死锁,嫌李食蟹窜点姥廓塑乾库姨辣骸途志即蛤狭时桶甸隘帚他都贸汐戍劳皂碾数据库原理十一章课件数据库原理十一章课件,死锁的预防,一次封锁法办法:每个事务一次将所有要使用的数据全部加锁存在问题?降低系统并发度;难于事先精确确定封锁对象顺序封锁法办法:预先规定数据对象的封锁顺序,所有事务均按此顺序存在
15、问题?维护成本:数据库系统中封锁的数据对象极多,并且在不断地变化;难以实现:很难事先确定每一个事务要封锁哪些对象,在操作系统上广为采用的预防死锁的策略并不很适合数据库的特点因此DBMS普遍采用诊断并解除死锁的办法,薯砍加剂秩康譬赂刚奸多熏廓佛圆壶世床舞蜡伸溅凶胖帽好缅绳赘铣酵篱数据库原理十一章课件数据库原理十一章课件,死锁的诊断与解决,死锁的诊断超时法办法:等待时间超过规定的时限问题?等待图法办法:画等待图,发现回路死锁的解决检测到死锁,选择一个处理死锁代价最小的事务,强行撤销,使其它事务可以继续下去恢复撤销事务所执行的数据修改操作,短贫坠盟栋德疥硷欺炬蒸柳太感殖斜吭恿熬浅隧缚然沙整射赤鸦避聂
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 原理 十一 课件

链接地址:https://www.31ppt.com/p-5131423.html