第10章_数据库并发性.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Confidential / All Right Reserved 第十章 数据库并发性 第十章 数据库并发性 10.1 并发性概述 10.1 并发性概述 10.1 并发性概述 10.1.1 事务的概念 工作单元 为了保证数据库中数据的一致性,对于应用程序来说,常常必须一步完成一系列数据的变动。 10.1.1 事务的概念 任何一个成功与数据库连接的应用程序都自动启动一个事务。 10.1.1 事务的概念 事务的四个特性 10.1.2 事务的串行调度、并发调度及可串行化 10.1.2 事务的串行调度、并发调度及可串行化 例:有两个事务T1和T2,它们都要预订某列次火车的硬座 车票1张和卧铺3张,因此它们包含了下列操作: 10.1.2 事务的串行调度、并发调度及可串行化 串行调度的结果总是正确的 10.1.2 事务的串行调度、并发调度及可串行化 并发调度效率高,但结果不一定正确 10.1.2 事务的串行调度、并发调度及可串行化 10.1.3 并发操作带来的四个问题 10.1.3 并发操作带来的四个问题 1. 丢失更新 10.1.3 并发操作带来的四个问题 2. 未提交读 10.1.3 并发操作带来的四个问题 3. 不可重复读 10.1.3 并发操作带来的四个问题 4. 幻象读 10.1.3 并发操作带来的四个问题 4. 幻象读 10.2 封锁 封锁 封锁协议 活锁和死锁 10.2.1 封锁 10.2.1 封锁 锁相容矩阵 10.2.2 封锁协议 10.2.2 封锁协议 1. 一级封锁协议 10.2.2 封锁协议 例:一级封锁协议解决丢失更新问题 10.2.2 封锁协议 2. 二级封锁协议 10.2.2 封锁协议 例:二级封锁协议解决未提交读问题 10.2.2 封锁协议 3. 三级封锁协议 10.2.2 封锁协议 例:三级封锁协议解决不可重复读问题 10.2.2 封锁协议 不同级别的封锁协议 10.2.3 活锁和死锁 10.2.3 两阶段锁协议 10.2.3 两阶段锁协议 例,事务T1遵守两阶段锁协议,其封锁序列是: 10.3 DB2隔离级别 DB2通用数据库试图实现并行性的方法之一就是使用隔离级别,这种方法将决定如何在访问的事务中使用数据时锁定该数据或将其与其它事务隔离。 10.3 DB2隔离级别 1. 可重复读 10.3 DB2隔离级别 1. 可重复读 10.3 DB2隔离级别 2. 读稳定性 10.3 DB2隔离级别 2. 读稳定性 10.3 DB2隔离级别 3. 游标稳定性 10.3 DB2隔离级别 3. 游标稳定性 10.3 DB2隔离级别 4. 未提交读 10.3 DB2隔离级别 10.3 DB2隔离级别 5. 隔离级别的选择 ⑴ 扩展阶段 事务可以获得锁,但不能释放锁。在对任何数据进行读、写操作之前,首先要申请并获得对该数据的封锁; 事务可以释放锁,但不能获得新锁。在释放一个封锁之后,事务不再申请和获得任何其它封锁。 ⑵ 收缩阶段 Slock(A) Slock(B) Xlock(C) Unlock(A) Unlock(B) Unlock(C) 扩展阶段 收缩阶段 Slock(A) Unlock(A) Slock(B) Xlock(C) Unlock(C) Unlock(B) 又如,事务T1不遵守两阶段协议,其封锁序列是: 可复重读(Repeatable read); 读稳定性(Read stability) ; 游标稳定性(Cursor stability); 未提交读(Uncommitted read)。 可重复读(RR)会锁定应用程序在工作单元中引用的所有行。 例:用户扫描1000行并对它们进行过滤,尽管只有10行 满足条件,但仍会锁定全部的1000行。 利用可重复读,不可能出现丢失更新、存取未提交的数据和幻象读的情况。 例:select * from student where ClsNo=‘0018’; 读稳定性(RS)隔离级锁定作为结果表中的那一部分行。 例:用户有一张包含1000行记录的表,查询结果返回10 行记录,则仅有10条记录被锁定。 使用读稳定性的应用程序不能读未提交的数据,但不能阻止通过插入操作在结果集中加入新行,即得到新增的幻象行。 例:select * from student where ClsNo=‘0018’; 游标稳定性(CS,或称光标稳定性)隔离级锁定工作单元工作期间光标所在的任何行。对该行的锁定将保持到取出下一行记录或整个工

文档评论(0)

ffpg + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档