数据库系统概论(第五版)ppt第11章课件.ppt
《数据库系统概论(第五版)ppt第11章课件.ppt》由会员分享,可在线阅读,更多相关《数据库系统概论(第五版)ppt第11章课件.ppt(111页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、AnIntroductiontoDatabaseSystem资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值xx大学信息学院大学信息学院数据库系统概论An Introduction to Database System第十一章第十一章 并发控制并发控制AnIntroductiontoDatabaseSystem资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值并发控制并发控制v多用户数据库系统多用户数据库系统允许多个用户同时使用的数据库系统允许多
2、个用户同时使用的数据库系统n飞机定票数据库系统飞机定票数据库系统n银行数据库系统银行数据库系统n特点:在同一时刻并发运行的事务数可达数百上千个特点:在同一时刻并发运行的事务数可达数百上千个AnIntroductiontoDatabaseSystem资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值并发控制(续)并发控制(续)v多事务执行方式多事务执行方式(1)事务串行执行)事务串行执行n每每个个时时刻刻只只有有一一个个事事务务运运行行,其其他他事事务务必须等到这个事务结束以后方能运行必须等到这个事务结束以后方能运行n不不
3、能能充充分分利利用用系系统统资资源源,发发挥挥数数据据库库共共享资源的特点享资源的特点T1T2T3事务的串行执行方式事务的串行执行方式AnIntroductiontoDatabaseSystem资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值并发控制(续)并发控制(续)n在在单单处处理理机机系系统统中中,事事务务的的并并行行执执行行是是这这些些并并行行事事务务的的并并行行操操作作轮轮流流交交叉叉运行运行n单单处处理理机机系系统统中中的的并并行行事事务务并并没没有有真真正正地地并并行行运运行行,但但能能够够减减少少处处理
4、理机机的的空闲时间,提高系统的效率空闲时间,提高系统的效率(2)交叉并发方式()交叉并发方式(InterleavedConcurrency)AnIntroductiontoDatabaseSystem资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值并发控制(续)并发控制(续)(3)同时并发方式()同时并发方式(simultaneousconcurrency)n多多处处理理机机系系统统中中,每每个个处处理理机机可可以以运运行行一一个个事事务务,多多个个处处理理机机可可以以同同时时运运行行多多个个事事务务,实实现现多多个个
5、事事务务真真正正的并行运行的并行运行n最理想的并发方式,但受制于硬件环境最理想的并发方式,但受制于硬件环境n更复杂的并发方式机制更复杂的并发方式机制v本本章章讨讨论论的的数数据据库库系系统统并并发发控控制制技技术术是是以以单单处处理理机机系系统统为为基础的基础的AnIntroductiontoDatabaseSystem资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值并发控制(续)并发控制(续)v事务并发执行带来的问题事务并发执行带来的问题n会产生多个事务同时存取同一数据的情况会产生多个事务同时存取同一数据的情况n可可
6、能能会会存存取取和和存存储储不不正正确确的的数数据据,破破坏坏事事务务隔隔离离性性和和数据库的一致性数据库的一致性v数据库管理系统必须提供并发控制机制数据库管理系统必须提供并发控制机制v并并发发控控制制机机制制是是衡衡量量一一个个数数据据库库管管理理系系统统性性能能的的重要标志之一重要标志之一AnIntroductiontoDatabaseSystem资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值第十一章第十一章并发控制并发控制11.1并发控制概述并发控制概述11.2封锁封锁11.3封锁协议封锁协议11.4活锁和死锁
7、活锁和死锁11.5并发调度的可串行性并发调度的可串行性11.6两段锁协议两段锁协议11.7封锁的粒度封锁的粒度*11.8其他并发控制机制其他并发控制机制11.9小结小结AnIntroductiontoDatabaseSystem资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值11.1并发控制概述并发控制概述v事务是并发控制的基本单位事务是并发控制的基本单位v并发控制机制的任务并发控制机制的任务n对并发操作进行正确调度对并发操作进行正确调度n保证事务的隔离性保证事务的隔离性n保证数据库的一致性保证数据库的一致性AnInt
8、roductiontoDatabaseSystem资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值T1的修改被的修改被T2覆盖了!覆盖了!并发控制概述(续)并发控制概述(续)并发操作带来数据的不一致性实例并发操作带来数据的不一致性实例例例11.1飞机订票系统中的一个活动序列飞机订票系统中的一个活动序列甲售票点甲售票点(事务事务T1)读出某航班的机票余额读出某航班的机票余额A,设,设A=16;乙售票点乙售票点(事务事务T2)读出同一航班的机票余额读出同一航班的机票余额A,也为,也为16;甲售票点卖出一张机票,修改余额甲售
9、票点卖出一张机票,修改余额AA-1,所以,所以A为为15,把把A写回数据库;写回数据库;乙售票点也卖出一张机票,修改余额乙售票点也卖出一张机票,修改余额AA-1,所以,所以A为为15,把,把A写回数据库写回数据库n结果明明卖出两张机票,数据库中机票余额只减少结果明明卖出两张机票,数据库中机票余额只减少1AnIntroductiontoDatabaseSystem资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值并发控制概述(续)并发控制概述(续)v这种情况称为数据库的不一致性,是由并发操作引起的。这种情况称为数据库的不一
10、致性,是由并发操作引起的。v在并发操作情况下,对在并发操作情况下,对T1、T2两个事务的操作序列的调度两个事务的操作序列的调度是随机的。是随机的。v若按上面的调度序列执行,若按上面的调度序列执行,T1事务的修改就被丢失。事务的修改就被丢失。n原因:第原因:第4步中步中T2事务修改事务修改A并写回后覆盖了并写回后覆盖了T1事务的事务的修改修改AnIntroductiontoDatabaseSystem资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值并发控制概述(续)并发控制概述(续)v并发操作带来的数据不一致性并发操作带
11、来的数据不一致性1.丢失修改(丢失修改(LostUpdate)2.不可重复读(不可重复读(Non-repeatableRead)3.读读“脏脏”数据(数据(DirtyRead)v记号记号nR(x):读数据读数据xnW(x):写数据写数据xAnIntroductiontoDatabaseSystem资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值1.丢失修改丢失修改v两两个个事事务务T1和和T2读读入入同同一一数数据据并并修修改改,T2的的提提交交结果破坏了结果破坏了T1提交的结果,导致提交的结果,导致T1的修改被丢失。
12、的修改被丢失。v上面飞机订票例子就属此类上面飞机订票例子就属此类AnIntroductiontoDatabaseSystem资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值丢失修改(续)丢失修改(续)T1T2 R(A)=16 R(A)=16 AA-1 W(A)=15 AA-1 W(A)=15丢失修改丢失修改AnIntroductiontoDatabaseSystem资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值2.不可重复读不可重复读v不可重
13、复读是指事务不可重复读是指事务T1读取数据后,事务读取数据后,事务T2执行更新操作,使执行更新操作,使T1无法再现前一次读取结果。无法再现前一次读取结果。AnIntroductiontoDatabaseSystem资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值不可重复读(续)不可重复读(续)v不可重复读包括三种情况:不可重复读包括三种情况:(1)事务)事务T1读取某一数据后,读取某一数据后,事务事务T2对其做了修对其做了修改改,当事务,当事务T1再次读该数据时,得到与前一次不再次读该数据时,得到与前一次不同的值同的值
14、AnIntroductiontoDatabaseSystem资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值不可重复读(续)不可重复读(续)nT1读取读取B=100进行运算进行运算nT2读取同一数据读取同一数据B,对其进,对其进行修改后将行修改后将B=200写回数据写回数据库。库。nT1为了对读取值校对重读为了对读取值校对重读B,B已为已为200,与第一次读取,与第一次读取值不一致值不一致T1T2 R(A)=50 R(B)=100 求和求和=150R(B)=100BB*2W(B)=200 R(A)=50 R(B)=20
15、0 求和求和=250 (验验算不算不对对)不可重复读不可重复读 例如:例如:AnIntroductiontoDatabaseSystem资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值不可重复读(续)不可重复读(续)(2)事务)事务T1按一定条件从数据库中读取了某些数据记录后,按一定条件从数据库中读取了某些数据记录后,事务事务T2删除了其中部分记录删除了其中部分记录,当,当T1再次按相同条件读取数再次按相同条件读取数据时,发现某些记录神秘地消失了。据时,发现某些记录神秘地消失了。(3)事务)事务T1按一定条件从数据库中
16、读取某些数据记录后,按一定条件从数据库中读取某些数据记录后,事事务务T2插入了一些记录插入了一些记录,当,当T1再次按相同条件读取数据时,再次按相同条件读取数据时,发现多了一些记录。发现多了一些记录。后两种不可重复读有时也称为后两种不可重复读有时也称为幻影幻影现象(现象(PhantomRow)AnIntroductiontoDatabaseSystem资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值3.读读“脏脏”数据数据读读“脏脏”数据是指:数据是指:n事务事务T1修改某一数据,并将其写回磁盘修改某一数据,并将其写回
17、磁盘n事务事务T2读取同一数据后,读取同一数据后,T1由于某种原因被撤销由于某种原因被撤销n这这时时T1已已修修改改过过的的数数据据恢恢复复原原值值,T2读读到到的的数数据据就就与与数数据库中的数据不一致据库中的数据不一致nT2读到的数据就为读到的数据就为“脏脏”数据,即不正确的数据数据,即不正确的数据AnIntroductiontoDatabaseSystem资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值读读“脏脏”数据(续)数据(续)T1T2 R(C)=100 CC*2W(C)=200R(C)=200 ROLLB
18、ACK C恢复恢复为为100例如例如读读“脏脏”数据数据 nT1将将C值修改为值修改为200,T2读到读到C为为200nT1由于某种原因撤销,其由于某种原因撤销,其修改作废,修改作废,C恢复原值恢复原值100n这时这时T2读到的读到的C为为200,与数据库内容不一致,就与数据库内容不一致,就是是“脏脏”数据数据 AnIntroductiontoDatabaseSystem资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值并发控制概述(续)并发控制概述(续)v数据不一致性:由于数据不一致性:由于并发操作破坏了事务的隔离性并
19、发操作破坏了事务的隔离性v并发控制就是要用并发控制就是要用正确的方式调度并发操作正确的方式调度并发操作,使一个用户,使一个用户事务的执行不受其他事务的干扰,从而避免造成数据的不事务的执行不受其他事务的干扰,从而避免造成数据的不一致性一致性v对数据库的应用有时允许某些不一致性,例如有些统计工对数据库的应用有时允许某些不一致性,例如有些统计工作涉及数据量很大,读到一些作涉及数据量很大,读到一些“脏脏”数据对统计精度没什数据对统计精度没什么影响,可以降低对一致性的要求以减少系统开销么影响,可以降低对一致性的要求以减少系统开销v参见爱课程网参见爱课程网11.1节动画节动画并发操作带来的数据不一致性并发
20、操作带来的数据不一致性AnIntroductiontoDatabaseSystem资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值并发控制概述(续)并发控制概述(续)v并发控制的主要技术并发控制的主要技术n封锁封锁(Locking)n时间戳时间戳(Timestamp)n乐观控制法乐观控制法n多版本并发控制多版本并发控制(MVCC)AnIntroductiontoDatabaseSystem资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值第十一章
21、第十一章并发控制并发控制11.1并发控制概述并发控制概述11.2封锁封锁11.3封锁协议封锁协议11.4活锁和死锁活锁和死锁11.5并发调度的可串行性并发调度的可串行性11.6两段锁协议两段锁协议11.7封锁的粒度封锁的粒度*11.8其他并发控制机制其他并发控制机制11.9小结小结AnIntroductiontoDatabaseSystem资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值11.2封锁封锁v什么是封锁什么是封锁v基本封锁类型基本封锁类型v锁的相容矩阵锁的相容矩阵AnIntroductiontoDataba
22、seSystem资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值什么是封锁什么是封锁v封锁就是事务封锁就是事务T在对某个数据对象(例如表、记录等)操在对某个数据对象(例如表、记录等)操作之前,先向系统发出请求,对其加锁作之前,先向系统发出请求,对其加锁v加锁后事务加锁后事务T就对该数据对象有了一定的控制,在事务就对该数据对象有了一定的控制,在事务T释释放它的锁之前,其它的事务不能更新此数据对象。放它的锁之前,其它的事务不能更新此数据对象。v封锁是实现并发控制的一个非常重要的技术封锁是实现并发控制的一个非常重要的技术An
23、IntroductiontoDatabaseSystem资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值基本封锁类型基本封锁类型v一个事务对某个数据对象加锁后究竟拥有什么样一个事务对某个数据对象加锁后究竟拥有什么样的控制由封锁的类型决定。的控制由封锁的类型决定。v基本封锁类型基本封锁类型n排它锁(排它锁(ExclusiveLocks,简记为,简记为X锁)锁)n共享锁(共享锁(ShareLocks,简记为,简记为S锁)锁)AnIntroductiontoDatabaseSystem资金是运动的价值,资金的价值是随时间变化
24、而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值排它锁排它锁v排它锁又称为写锁排它锁又称为写锁v若事务若事务T对数据对象对数据对象A加上加上X锁,则只允许锁,则只允许T读取和读取和修改修改A,其它任何事务都不能再对,其它任何事务都不能再对A加任何类型的加任何类型的锁,直到锁,直到T释放释放A上的锁上的锁v保证其他事务在保证其他事务在T释放释放A上的锁之前不能再读取和上的锁之前不能再读取和修改修改AAnIntroductiontoDatabaseSystem资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就
25、是原有资金的时间价值共享锁共享锁v共享锁又称为读锁共享锁又称为读锁v若事务若事务T对数据对象对数据对象A加上加上S锁,则事务锁,则事务T可以读可以读A但不能修改但不能修改A,其它事务只能再对,其它事务只能再对A加加S锁,而不锁,而不能加能加X锁,直到锁,直到T释放释放A上的上的S锁锁v保证其他事务可以读保证其他事务可以读A,但在,但在T释放释放A上的上的S锁之锁之前不能对前不能对A做任何修改做任何修改AnIntroductiontoDatabaseSystem资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值锁的相容矩阵
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 系统 概论 第五 ppt 11 课件
限制150内