[文学研究]《数据库系统概论》讲义.ppt

  1. 1、本文档共45页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[文学研究]《数据库系统概论》讲义

郭文明 2003.06.05 《电信资源管理系统》立项可行性说明 郭文明 2003.06.05 8. 并发控制 事务处理技术主要包括数据库恢复和并发控制。 当多个用户并发地存取数据库时可能产生多个事务同时存取同一数据的情况。如果对并发操作不加控制就可能破坏数据的一致性。 并发控制的核心问题 对并发操作进行正确调度,有效控制。 在保证一致性的前提下最大限度地提高并发度。 8. 并发控制 不同事务中各个步骤的执行顺序必须以某种方式进行规范,控制这些步骤的功能由DBMS的调度器部件完成。保证并发执行的事务能保持一致性的整个过程称为并发控制。 8.1 并发操作 DBMS在处理用户提交事务时的策略,即事务调度。调度是一个或多个事务的操作按时间排列的一个序列。表示事务的指令在系统中执行的时间顺序。 如果一个调度的动作是事务顺序排列,顺序执行,也即事务没有混合,那么称这一调度为串行调度。 如果一个调度的动作是事务之间可以混合,那么称这一调度为并行调度。 8.1 并发操作 事务的调度 一组事务的调度必须保证 包含了所有事务的操作指令 一个事务中指令的顺序必须保持不变。 串行调度 在串行调度中,属于同一事务的指令紧挨在一起。 对于有n个事务的事务组,可以有n!个有效调度。 并行调度 在并行调度中,来自不同事务的指令可以交叉执行。 当并行调度等价于某个串行调度时,则称它是正确的。 8.1 并发操作 并行 Vs 串行 基本比较 并行事务可能会破坏数据库的一致性。 串行事务效率低。 并行的优点 一个事务由不同的步骤组成,所涉及的系统资源也不同。这些步骤可以并发执行,以提高系统的吞吐量。 系统中存在着周期不等的各种事务,串行会导致难于预测的时延。如果各个事务所涉及的是数据库的不同部分,采用并发会减少平均响应时间。 8.1 并发操作 事务执行示例 8.1 并发操作 8.1 并发操作 8.1 并发操作 8.1 并发操作 8.2 并发操作事务一致性 并发操作带来的数据不一致性包括三类: 丢失修改:两个事务T1和T2读入同一数据并修改,一个事务T2的提交破坏了另一个事务T1提交的结果,导致T1的修改丢失。 不可重复读:事务T1读取数据后,事务T2执行更新操作,使T1无法再次显现前一次的读取结果。 事务T2执行update,T1两次读取值不一样; 事务T2执行delete,T1两次读取记录数不一样; 事务T2执行insert,T1两次读取记录不一样; 读‘脏’数据:事务T2执行更新操作,事务T1读取数据后,事务T2撤消了原来的操作,使T1读取数据为‘脏’数据。 8.2 并发操作事务一致性 8.2 并发操作事务一致性 8.2 并发操作事务一致性 8.2 并发操作事务一致性 产生三类数据不一致性的主要原因是并发操作破坏了事务的隔离性。 并发控制就是要用正确的方式调度并发操作,使一个用户事务的执行不受其他事务的干扰,从而避免造成数据的不一致性。 并发控制的主要技术是封锁、时间戳和有效性确认。 8.3 封锁 封锁的定义 封锁就是一个事务对某个数据对象加锁,取得对它一定的控制,限制其它事务对该数据对象使用。 并发控制的基本方法就是封锁。 封锁的类型 排它锁(X锁,eXclusive lock,写锁):事务T对数据对象R加上X锁,则其它事务对R的任何封锁请求都不能成功,直至T释放R上的X锁。 共享锁(S锁,Share lock,读锁):事务T对数据对象R加上S锁,则其它事务对R的X锁请求不能成功,而对R的S锁请求可以成功。 8.3 封锁 8.3 封锁 封锁粒度 封锁对象:属性值、属性值集合、元组、关系、某索引项、整个索引、整个数据库、物理页、块。 封锁粒度大,则并发度低,封锁机构简单,开销小。 封锁粒度小,则并发度高,封锁机构复杂,开销高。 在同一个系统中同时支持多种封锁粒度供不同的事务选择,这种封锁方法称为多粒度封锁。 理想的情况是只封锁与规定的操作有关的的数据对象,这些数据对象称作事务的完整性相关域。 8.3 封锁 8.3 封锁 8.3 封锁 意向(预约)封锁 在分层封锁中,封锁了上层节点就意味着封锁了所有内层节点。 隐式封锁是该数据对象没有显式加锁,是由于其上级节点加锁而使该数据对象加上了锁。 如果有事务T1对某元组加了S锁,而事务T2对该元组所在的关系准备加X锁,需依次判断该关系、该关系所在库、该关系中所有元组是否有S锁和X锁,否则隐含地X封锁了该元组,从而造成矛盾。 依次判断上下级对象是否有封锁冲突,效率低下。 8.3 封锁 意向(预约)封锁 引入意向锁I(Intend Lock):当为某节点加上I锁,表明其某些内层节点已发生事实上的封锁;对某一对象加锁时,必须对它的上层节点加意向锁。 I锁的实施是从封锁层次的根开始,依次占据路径上的所有节点,直至要

文档评论(0)

jiupshaieuk12 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:6212135231000003

1亿VIP精品文档

相关文档