2第11章并发控制1

上传人:仙*** 文档编号:152624203 上传时间:2022-09-16 格式:PPT 页数:30 大小:1.44MB
收藏 版权申诉 举报 下载
2第11章并发控制1_第1页
第1页 / 共30页
2第11章并发控制1_第2页
第2页 / 共30页
2第11章并发控制1_第3页
第3页 / 共30页
资源描述:

《2第11章并发控制1》由会员分享,可在线阅读,更多相关《2第11章并发控制1(30页珍藏版)》请在装配图网上搜索。

1、L/O/G/O第十一章第十一章 并发控制并发控制褚龙现褚龙现软件学院软件学院回顾回顾-定义事务定义事务v 显式定义方式显式定义方式 BEGIN TRANSACTION BEGIN TRANSACTION SQL 语句语句1 SQL 语句语句1 SQL 语句语句2 SQL 语句语句2 。COMMIT ROLLBACKv 隐式方式隐式方式当用户没有显式地定义事务时,当用户没有显式地定义事务时,DBMSDBMS按缺省规定自动划分事务按缺省规定自动划分事务软件学院软件学院回顾回顾-故障故障v故障是不可避免的故障是不可避免的 系统故障:计算机软、硬件故障系统故障:计算机软、硬件故障 人为故障:操作员的失

2、误、恶意的破坏等人为故障:操作员的失误、恶意的破坏等。v数据库的恢复数据库的恢复把数据库从错误状态恢复到某一已知的正确状态把数据库从错误状态恢复到某一已知的正确状态(亦称为一致状态或完整状态亦称为一致状态或完整状态)软件学院软件学院回顾回顾-恢复的实现技术恢复的实现技术v 恢复操作的基本原理:恢复操作的基本原理:冗余冗余利用存储在系统其它地方的冗余数据来重建数据库中利用存储在系统其它地方的冗余数据来重建数据库中已被破坏或不正确的那部分数据已被破坏或不正确的那部分数据v 恢复机制涉及的关键问题恢复机制涉及的关键问题1.如何建立冗余数据如何建立冗余数据n数据转储(数据转储(backup)n登录日志

3、文件(登录日志文件(logging)2.如何利用这些冗余数据实施数据库恢复如何利用这些冗余数据实施数据库恢复软件学院软件学院回顾回顾-检查点恢复技术检查点恢复技术v 两个问题两个问题 搜索整个日志将耗费大量的时间搜索整个日志将耗费大量的时间 REDO处理:重新执行,浪费了大量时间处理:重新执行,浪费了大量时间v 具有检查点(具有检查点(checkpoint)的恢复技术)的恢复技术 在日志文件中增加检查点记录(在日志文件中增加检查点记录(checkpoint)增加重新开始文件增加重新开始文件 恢复子系统在登录日志文件期间动态地维护日志恢复子系统在登录日志文件期间动态地维护日志软件学院软件学院 并

4、发控制并发控制1教教 学学 内内 容容封锁封锁2软件学院软件学院教教 学学 目目 标标难难 点点 理解并发控制需求理解并发控制需求重重点点 掌握封锁方法掌握封锁方法 了解死锁的产生了解死锁的产生 并发产生的错误并发产生的错误 封锁机制封锁机制软件学院软件学院教教学学具具体体内内容容v 并发控制概述并发控制概述v 封锁封锁v 死锁死锁软件学院软件学院11.1 并发控制概述并发控制概述v多用户数据库系统多用户数据库系统的存在的存在 允许多个用户同时使用的数据库系统允许多个用户同时使用的数据库系统n飞机定票数据库系统飞机定票数据库系统特点:在同一时刻并发运行的事务数可达数百个特点:在同一时刻并发运行

5、的事务数可达数百个v不同的多事务执行方式不同的多事务执行方式 (1)(1)事务串行执行事务串行执行 (2)(2)交叉并发方式交叉并发方式 (3)(3)同时并发方式同时并发方式软件学院软件学院11.1 并发控制概述并发控制概述v并发控制机制的任务并发控制机制的任务 对并发操作进行正确调度对并发操作进行正确调度 保证事务的隔离性保证事务的隔离性 保证数据库的一致性保证数据库的一致性v并发操作带来的数据不一致性并发操作带来的数据不一致性 丢失修改(丢失修改(Lost Update)不可重复读(不可重复读(Non-repeatable Read)读读“脏脏”数据(数据(Dirty Read)软件学院软

6、件学院11.1.1 丢失更新丢失更新v 两个事务两个事务T1和和T2读入同一数据并修改,读入同一数据并修改,T2的提交结果破的提交结果破坏了坏了T1提交的结果,导致提交的结果,导致T1的修改被丢失的修改被丢失T1T2 R(A)=16R(A)=16 AA-1 W(A)=15WAA-1W(A)=15软件学院软件学院11.1.2 不可重复读不可重复读v 不可重复读是指事务不可重复读是指事务T T1 1读取数据后,事务读取数据后,事务T T2 2执行更新操作执行更新操作,使,使T T1 1无法再现前一次读取结果无法再现前一次读取结果(1)(1)事务事务T T1 1读取某一数据后,读取某一数据后,事务事

7、务T T2 2对其做了修改对其做了修改,当事务,当事务T1T1再次读该数据时,得到与前一次不同的值再次读该数据时,得到与前一次不同的值 (2)(2)事务事务T1T1按一定条件从数据库中读取了某些数据记录后,按一定条件从数据库中读取了某些数据记录后,事务事务T2T2删除了其中部分记录删除了其中部分记录,当,当T1T1再次按相同条件读取数再次按相同条件读取数据时,发现某些记录消失了据时,发现某些记录消失了 (3)(3)事务事务T1T1按一定条件从数据库中读取某些数据记录后,按一定条件从数据库中读取某些数据记录后,事事务务T2T2插入了一些记录插入了一些记录,当,当T1T1再次按相同条件读取数据时,

8、再次按相同条件读取数据时,发现多了一些记录。发现多了一些记录。软件学院软件学院11.1.3 读脏数据读脏数据 读读“脏脏”数据是指:数据是指:n事务事务T1T1修改某一数据,并将其写回磁盘修改某一数据,并将其写回磁盘n事务事务T2T2读取同一数据后,读取同一数据后,T1T1由于某种原因被撤销由于某种原因被撤销n这时这时T1T1已修改过的数据恢复原值,已修改过的数据恢复原值,T2T2读到的数据读到的数据就与数据库中的数据不一致就与数据库中的数据不一致nT2T2读到的数据就为读到的数据就为“脏脏”数据,即不正确的数据数据,即不正确的数据 软件学院软件学院11.1.4 并发控制方法并发控制方法v数据

9、不一致性:由于数据不一致性:由于并发操作破坏了事务的隔离性并发操作破坏了事务的隔离性v并发控制就是要用并发控制就是要用正确的方式调度并发操作正确的方式调度并发操作,使一,使一个用户事务的执行不受其他事务的干扰,从而避免个用户事务的执行不受其他事务的干扰,从而避免造成数据的不一致性造成数据的不一致性v并发控制的主要技术并发控制的主要技术 封锁封锁(Locking)(Locking)时间戳时间戳(Timestamp)(Timestamp)乐观控制法乐观控制法v商用的商用的DBMS一般都采用封锁方法一般都采用封锁方法 软件学院软件学院11.2 封锁封锁v封锁就是事务封锁就是事务T在对某个数据对象(例

10、如表、记在对某个数据对象(例如表、记录等)操作之前,先向系统发出请求,对其加锁录等)操作之前,先向系统发出请求,对其加锁v加锁后事务加锁后事务T就对该数据对象有了一定的控制,就对该数据对象有了一定的控制,在事务在事务T释放它的锁之前,其它的事务不能更新释放它的锁之前,其它的事务不能更新此数据对象。此数据对象。软件学院软件学院11.2 封锁封锁v一个事务对某个数据对象加锁后究竟拥有什么样一个事务对某个数据对象加锁后究竟拥有什么样的控制由封锁的类型决定。的控制由封锁的类型决定。v基本封锁类型基本封锁类型 排它锁(排它锁(Exclusive Locks,简记为,简记为X锁)锁)共享锁(共享锁(Sha

11、re Locks,简记为,简记为S锁)锁)软件学院软件学院11.2.1 排它锁排它锁v排它锁又称为写锁排它锁又称为写锁v若事务若事务T对数据对象对数据对象A加上加上X锁,则只允许锁,则只允许T读取读取和修改和修改A,其它任何事务都不能再对,其它任何事务都不能再对A加任何类型加任何类型的锁,直到的锁,直到T释放释放A上的锁上的锁v保证其他事务在保证其他事务在T释放释放A上的锁之前不能再读取和上的锁之前不能再读取和修改修改A 软件学院软件学院11.2.2 共享锁共享锁v共享锁又称为读锁共享锁又称为读锁v若事务若事务T对数据对象对数据对象A加上加上S锁,则其它事务只能锁,则其它事务只能再对再对A加加

12、S锁,而不能加锁,而不能加X锁,直到锁,直到T释放释放A上的上的S锁锁v保证其他事务可以读保证其他事务可以读A,但在,但在T释放释放A上的上的S锁之锁之前不能对前不能对A做任何修改做任何修改 软件学院软件学院11.2.3 锁的相容性锁的相容性Y=Yes,相容的请求,相容的请求N=No,不相容的请求,不相容的请求 T1 T2XS-XNNYSNYY-YYY软件学院软件学院11.2.4 锁的作用锁的作用v使用封锁机制解决丢失修改问题使用封锁机制解决丢失修改问题v使用封锁机制解决不可重复读问题使用封锁机制解决不可重复读问题v使用封锁机制解决读使用封锁机制解决读“脏脏”数据问题数据问题软件学院软件学院1

13、1.2.5 活锁活锁v 事务事务T1T1封锁了数据封锁了数据R Rv 事务事务T2T2又请求封锁又请求封锁R R,于是,于是T2T2等待。等待。v T3T3也请求封锁也请求封锁R R,当,当T1T1释放了释放了R R上的封锁之后系统首先批准上的封锁之后系统首先批准了了T3T3的请求,的请求,T2T2仍然等待。仍然等待。v T4T4又请求封锁又请求封锁R R,当,当T3T3释放了释放了R R上的封锁之后系统又批准了上的封锁之后系统又批准了T4T4的请求的请求v T2T2有可能有可能永远等待永远等待,这就是活锁的情形,这就是活锁的情形 软件学院软件学院11.2.5 活锁活锁v避免活锁:避免活锁:采

14、用先来先服务的策略采用先来先服务的策略 当多个事务请求封锁同一数据对象时当多个事务请求封锁同一数据对象时 按请求封锁的先后次序对这些事务排队按请求封锁的先后次序对这些事务排队 该数据对象上的锁一旦释放,首先批准申请队该数据对象上的锁一旦释放,首先批准申请队列中第一个事务获得锁列中第一个事务获得锁软件学院软件学院11.2.6 死锁死锁v 事务事务T1T1封锁了数据封锁了数据R1R1,T2T2封锁了数据封锁了数据R2R2v T1T1又请求封锁又请求封锁R2R2,因,因T2T2已封锁了已封锁了R2R2,于是,于是T1T1等待等待T2T2释放释放R2R2上的锁上的锁v 接着接着T2T2又申请封锁又申请

15、封锁R1R1,因,因T1T1已封锁了已封锁了R1R1,T2T2也只能等待也只能等待T1T1释放释放R1R1上的锁上的锁v 这样这样T1T1和和T2T2互相等待,永远不能结束,形成互相等待,永远不能结束,形成死锁死锁 v解决死锁的方法解决死锁的方法 预防死锁预防死锁 死锁的诊断与解除死锁的诊断与解除软件学院软件学院11.2.6 死锁死锁死锁的预防死锁的预防一次封锁法一次封锁法v要求每个事务必须一次将所有要使用的数据全要求每个事务必须一次将所有要使用的数据全部加锁,否则就不能继续执行部加锁,否则就不能继续执行v存在的问题存在的问题 降低系统并发度降低系统并发度 难于事先精确确定封锁对象难于事先精确

16、确定封锁对象软件学院软件学院11.2.6 死锁死锁死锁的预防死锁的预防顺序封锁法顺序封锁法v 顺序封锁法是预先对数据对象规定一个封锁顺序,所有事务顺序封锁法是预先对数据对象规定一个封锁顺序,所有事务都按这个顺序实行封锁都按这个顺序实行封锁v 顺序封锁法存在的问题顺序封锁法存在的问题 维护成本维护成本数据库系统中封锁的数据对象极多,并且在不断地变化数据库系统中封锁的数据对象极多,并且在不断地变化 难以实现:很难事先确定每一个事务要封锁哪些对象难以实现:很难事先确定每一个事务要封锁哪些对象 软件学院软件学院11.2.6 死锁死锁死锁的诊断死锁的诊断超时法超时法v如果一个事务的等待时间超过了规定的时

17、限,就认如果一个事务的等待时间超过了规定的时限,就认为发生了死锁为发生了死锁v优点:实现简单优点:实现简单v缺点缺点 有可能误判死锁有可能误判死锁 时限若设置得太长,死锁发生后不能及时发现时限若设置得太长,死锁发生后不能及时发现软件学院软件学院11.2.6 死锁死锁死锁的诊断死锁的诊断等待图法等待图法v 用事务等待图动态反映所有事务的等待情况用事务等待图动态反映所有事务的等待情况 事务等待图是一个有向图事务等待图是一个有向图G G=(=(T T,U U)T T为结点的集合,每个结点表示正运行的事务为结点的集合,每个结点表示正运行的事务U U为边的集合,每条边表示事务等待的情况为边的集合,每条边

18、表示事务等待的情况 若若T T1 1等待等待T T2 2,则,则T T1 1,T T2 2之间划一条有向边,从之间划一条有向边,从T T1 1指向指向T T2 2v 并发控制子系统周期性地(比如每隔数秒)生成事务等并发控制子系统周期性地(比如每隔数秒)生成事务等待图,检测事务。如果发现图中存在回路,则表示系统待图,检测事务。如果发现图中存在回路,则表示系统中出现了死锁。中出现了死锁。软件学院软件学院11.2.6 死锁死锁v解除死锁解除死锁 选择一个处理死锁代价最小的事务,将选择一个处理死锁代价最小的事务,将其撤消其撤消 释放此事务持有的所有的锁,使其它事释放此事务持有的所有的锁,使其它事务能继

19、续运行下去务能继续运行下去软件学院软件学院小小 结结v 数据共享与数据一致性是一对矛盾数据共享与数据一致性是一对矛盾v 数据库的价值很大程度上取决于它能提供的数据共享度数据库的价值很大程度上取决于它能提供的数据共享度v 数据共享在很大程度上取决于系统允许对数据并发操作数据共享在很大程度上取决于系统允许对数据并发操作的程度的程度v 数据并发程度又取决于数据库中的并发控制机制数据并发程度又取决于数据库中的并发控制机制v 数据的一致性也取决于并发控制的程度。施加的并发控数据的一致性也取决于并发控制的程度。施加的并发控制愈多,数据的一致性往往愈好制愈多,数据的一致性往往愈好L/O/G/O下次课程内容下次课程内容两阶段封锁两阶段封锁

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!