并控制最新课件_第1页
并控制最新课件_第2页
并控制最新课件_第3页
并控制最新课件_第4页
并控制最新课件_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、问题的提出问题的提出:数据库是一个共享资源,应该允许数据库是一个共享资源,应该允许多个用户程序并行地存取数据,多个用户程序并行地存取数据,当对数据库进行当对数据库进行并行操作时,有可能出现并行操作时,有可能出现数据不一致数据不一致的情况。的情况。并行操作并行操作:在单处理机系统中,:在单处理机系统中,事务事务的并行执行的并行执行实际上是这些并行事务的操作轮流交叉进行。实际上是这些并行事务的操作轮流交叉进行。并发操作举例并发操作举例 考虑飞机订票系统。设有两个订票点,机票余票考虑飞机订票系统。设有两个订票点,机票余票A=15A=15。取取A=15修改修改A=A-1写回数据库写回数据库A=14取取

2、A=15修改修改A=A-1写回数据库写回数据库A=14T结果明明卖出两张机票,数据库中机票余额只减少结果明明卖出两张机票,数据库中机票余额只减少1 1 并发控制PPT课件 (2)COMMIL : 表示提交表示提交,即提交事务的所有操作。即提交事务的所有操作。具体地说就是将事务中所有对数据库的更新写回到磁盘上的物理具体地说就是将事务中所有对数据库的更新写回到磁盘上的物理数据库中去,事务正常结束。数据库中去,事务正常结束。ROLLBACK : 表示回滚,即在事务运行的过程中发生了某种故表示回滚,即在事务运行的过程中发生了某种故障,事务不能继续执行,系统将事务中对数据库的所有已完成的障,事务不能继续

3、执行,系统将事务中对数据库的所有已完成的操作全部撤销,滚到事务开始时的状态操作全部撤销,滚到事务开始时的状态前面飞机票示例可表示为:前面飞机票示例可表示为:事务事务T1取取A=15修改修改A=A-1写回数据库写回数据库A=14事务事务T2取取A=15修改修改A=A-1写回数据库写回数据库A=14T造成数据不一致的原因造成数据不一致的原因:(1)在并发操作情况下,对甲、乙两个事务的操作序列的调度是随在并发操作情况下,对甲、乙两个事务的操作序列的调度是随机的机的(2)T2事务修改事务修改A并写回后覆盖了并写回后覆盖了T1事务的修改事务的修改.丢失修改丢失修改读读“脏脏”数据数据 n T1将将C值修

4、改为值修改为200,T2读读到到C为为200n T1由于某种原因撤销,其修由于某种原因撤销,其修改作废,改作废,C恢复原值恢复原值100n 这时这时T2读到的读到的C为为200,与,与数据库内容不一致,就是数据库内容不一致,就是“脏脏”数据数据 Y=Yes,相容的请求,相容的请求N=No,不相容的请求,不相容的请求 T1 T2XS-XNNYSNYY-YYYn 事务事务T1在读在读A进行修改进行修改之前先对之前先对A加加X锁锁n 当当T2再请求对再请求对A加加X锁时锁时被拒绝被拒绝n T2只能等待只能等待T1释放释放A上上的锁后的锁后T2获得对获得对A的的X锁锁n 这时这时T2读到的读到的A已经

5、是已经是T1更新过的值更新过的值15n T2按此新的按此新的A值进行运值进行运算,并将结果值算,并将结果值A=14送送回到磁盘。避免了丢失回到磁盘。避免了丢失T1的更新。的更新。没有丢失修改没有丢失修改n 事务事务T1在读在读A,B之前,先对之前,先对A,B加加S锁锁n 其他事务只能再对其他事务只能再对A,B加加S锁,锁,而不能加而不能加X锁,即其他事务只能锁,即其他事务只能读读A,B,而不能修改,而不能修改n 当当T2为修改为修改B而申请对而申请对B的的X锁锁时被拒绝只能等待时被拒绝只能等待T1释放释放B上的上的锁锁n T1为验算再读为验算再读A,B,这时读出,这时读出的的B仍是仍是100,

6、求和结果仍为,求和结果仍为150,即可重复读即可重复读n T1结束才释放结束才释放A,B上的上的S锁。锁。T2才获得对才获得对B的的X锁锁 可重复读可重复读死死 锁锁 事务等待图事务等待图串行调度串行调度(a)n 假设A、B的初值均为2。n 按T1T2次序执行结果为A=3,B=4 n 串行调度策略,正确的调度 串行调度(b)n 假设A、B的初值均为2。n T2T1次序执行结果为B=3,A=4 n 串行调度策略,正确的调度 不可串行化的调度 n 执行结果与(a)、(b)的结果都不同n 是错误的调度 可串行化的调度 n 执行结果与串行调度执行结果与串行调度(a)的执行结果相同的执行结果相同n 是正

7、确的调度是正确的调度 T1Slock BR(B)=2 Xlock A等待等待等待等待T2 Slock AR(A)=2 Xlock A等待等待遵守两段锁协议的事务可能发生死锁遵守两段锁协议的事务可能发生死锁 数据库数据库关系关系Rn关系关系R1元组元组元组元组元组元组元组元组 三级粒度树三级粒度树意向锁的相容矩阵意向锁的相容矩阵锁模式锁模式描述描述共享锁共享锁(S(S锁锁) )用于不更改或不更新数据的操作(只读操作),如用于不更改或不更新数据的操作(只读操作),如 SELECT SELECT 语句。语句。更新锁更新锁(U(U锁锁) )用于可更新的资源中。防止当多个会话在读取、锁定以及用于可更新的

8、资源中。防止当多个会话在读取、锁定以及随后可能进行的资源更新时发生常见形式的死锁。随后可能进行的资源更新时发生常见形式的死锁。排它锁排它锁(X(X锁锁) )用于数据修改操作,例如用于数据修改操作,例如 INSERTINSERT、UPDATE UPDATE 或或 DELETEDELETE。确保不会同时对同一资源进行多重更新。确保不会同时对同一资源进行多重更新。意向锁意向锁用于建立锁的层次结构。意向锁的类型为:意向共享用于建立锁的层次结构。意向锁的类型为:意向共享 (IS)(IS)、意向排它意向排它 (IX) (IX) 以及与意向排它共享以及与意向排它共享 (SIX)(SIX)。架构锁架构锁在执行依赖于表架构的操作时使用。架构锁的类型为:架在执行依赖于表架构的操作时使用。架构锁的类型为:架

温馨提示

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

评论

0/150

提交评论