网站大量收购独家精品文档,联系QQ:2885784924

8并发控制的.ppt

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

并发控制;数据库是一个共享资源,可供多个用户使用。 为了充分利用数据库资源,应该允许多个用户或应用程序同时对数据库的同一数据对象进行读写操作,这种操作称为并发操作。 当多个用户并发存取同一数据时,若不加控制就可能会存取和存储不正确的数据,破坏数据库的一致性,所以DBMS必须提供并发控制机制。;并发控制机制的提出;这种数据库的不一致是由并发操作引起的;8.1并发操作引起的丢失修改;并发操作引起的不可重复读;并发操作引起的读脏数据;小结;8.2 封锁;锁的类型;锁的相容矩阵;T1;8.4 活锁和死锁问题;Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd.;死锁问题;Xlock R1 . . . Xlock R2 等待 等待 等待 .;数据库中解决死锁问题主要有两类方法: 一类方法是采用一定措施来预防死锁的发生 另一类方法是允许发生死锁,然后采用一定手段定期诊断系统中有无死锁,若有则解除之。 目前,DBMS在解决死锁问题上普遍采用的是第二种方法,即诊断并解除死锁的方法。;死锁的诊断与解决;死锁的检测 (1)超时法 预先规定一个最大等待时间,如果一个事务的等待时间超过某时限,则认为发生死锁。 优点是实现简单。 缺点是时间过短,会误判死锁;时间过长,又不能及时发现死锁,会造成处理死锁时间滞后。因此设定一个合理等待时间非常关键。 (2)等待图法;(2)等待图法 事务等待图是一个有向图G?=?(T,W),所有正在运行的事务构成了有向图的节点集T。如果事务Ti需要的数据已经被事务Tj封锁,就从Ti到Tj画一条有向边,即Ti等待Tj。显然当有向图中出现回路即表明出现了死锁,如图;8.5 事务调度的可串行性;事务调度的可串行性;并发事务的不同调度策略;8.6 两段锁协议;两段锁协议的性质;T1;8.7 封锁的粒度;多粒度封锁;在多粒度封锁中,一个数据对象被封锁的方式有两种:显式封锁和隐式封锁。 显式封锁:直接加到数据对象上的封锁; 隐式封锁:指该数据对象并没有被直接加锁,但包含它的一个大粒度数据对象(称为上级节点)被封锁了,它也就隐含的封锁了。如一个关系被封锁了,则该关系的元组也???封锁了。 显式封锁和隐式封锁的效果是相同的。;多粒度封锁的问题;意向锁的含义是对任一结点加锁时,必须先对它的上层结点加意向锁。 如事务T要对某个元组加X锁,则首先要对关系和数据库加意向锁。换言之,对关系和数据库加意向锁,表示它的后裔结点某个元组拟(意向)加锁。 引进意向锁后,系统对某一数据对象加锁时不必逐个检查与下一级结点的封锁冲突。 如事务T要对关系R加X锁时,系统只要检查根结点数据库和R本身是否已加了不相容的锁(如发现已经加了IX,则与X冲突),而不再需要搜索和检查R中的每一个元组是否加了X锁或S锁。;常用的意向锁有3种:意向共享锁(简称IS锁),意向排他锁(简称IX锁)和共享意向排他锁(简称SIX锁): (1)IS锁。如果对一个数据对象加IS锁,表示它的后裔结点拟(意向)加S锁;如要对某个元组加S锁,则要首先对关系和数据库加IS锁。 (2)IX锁。如果对一个数据对象加IX锁,表示它的后裔结点拟(意向)加X锁;如要对某个元组加X锁,则要首先对关系和数据库加IX锁。 (3)SIX锁。如果对一个数据对象加SIX锁,表示对它加S锁,再加IX锁,即SIX=?S + IX。;具有意向锁的多粒度封锁方法的特点

文档评论(0)

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

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

1亿VIP精品文档

相关文档