数据库系统及应用11.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文档。上传文档
查看更多
数据库系统及应用11.ppt

实现串行调度的调度器是很容易实现的。例如,可以按照事务的第一个操作到达调度器的先后来决定事务的执行次序,系统中只允许一个事务在执行,其他事务的操作暂缓执行,只有当前执行的事务提出了COMMIT或ROLLBACK操作时,才开始执行下一个事务。这种调度一定是可串行化的调度,也是最简单的调度策略,但这种方法实际上是不可取的,这使用户不能充分共享数据库资源。 目前,DBMS普遍采用封锁方法实现并发操作调度的可串行性,从而保证调度的正确性。 两段锁(Two-Phase Locking,简称2PL)协议就是保证并发调度可串行性的封锁协议。除此之外,还有其它一些方法,如时间戳方法等来保证调度的正确性。 1. 两段封锁协议 两段封锁协议是最常用的一种封锁协议,理论上已经证明使用两段封锁协议产生的是可串行化调度。 11.5 两段锁协议 两段锁协议是指每个事务的执行可以分为两个阶段对数据加锁和解锁。两段锁封锁协议要求所有事务均遵守下列规则: ① 一个事务对任何数据(读、写)操作之前,首先要申请获得对该数据的封锁; ② 一个事务解除一个封锁之后,不再申请和获得任何其它封锁 加锁阶段:也称增生阶段、扩展阶段或申请封锁阶段。在该阶段可以进行加锁操作,即事务可以申请获得任何数据上的任何类型的锁,但是不能释放任何锁。在对任何数据进行读操作之前要申请并获得S锁,在进行写操作之前要申请并获得X锁。加锁不成功,则事务进入等待状态,直到加锁成功才继续执行。 解锁阶段:也称衰退阶段、收缩阶段或释放封锁阶段。在该阶段事务可以释放任何数据上的任何类型的锁,但是不能再申请任何锁。当事务释放了一个封锁以后,事务进入解锁阶段,在该阶段只能进行解锁操作不能再进行加锁操作。 例11.2 T1的封锁序列是 T2的封锁序列是 Lock S(A) Lock S(A) …… …… Lock S(B) UnLock A …… …… Lock X(C) Lock S(B) …… …… UnLock B Lock X(C) …… …… UnLock A UnLock C …… …… UnLock C UnLock B 很明显,T1遵守两段封锁协议,T2没有遵守两段封锁协议。 2. 两段封锁法与可串行化调度的关系 遵守两段封锁协议的事务称为两 段式事务。如果所有事务都是两段式 的,那么它们的并发调度是可串行化 的。 并行执行的所有事务均遵守两段锁协议,则对这些事务的所有并行调度策略都是可串行化的。 所有遵守两段锁协议的事务,其并行执行的结果一定是正确的。 事务遵守两段锁协议是可串行化调度的充分条件,而不是必要条件 可串行化的调度中,不一定所有事务都必须符合两段锁协议。 两段封锁法可以这样来实现:事务开始后就处于加锁阶段,一直到执行ROLLBACK和COMMIT之前都是加锁阶段。ROLLBACK和COMMIT使事务进入解锁阶段,即在ROLLBACK和COMMIT模块中DBMS释放所有封锁。 注意: 两段锁协议与防止死锁的一次封锁法 一次封锁法要求每个事务必须一次将所有要使用的数据全部加锁,否则就不能继续执行,因此一次封锁法遵守两段锁协议; 但是两段锁协议并不要求事务必须一次将所有要使用的数据全部加锁,因此遵守两段锁协议的事务可能发生死锁。 注意: 两段锁协议与三级封锁协议 两类不同目的的协议 两段锁协议:保证并发调度的正确性 三级封锁协议:在不同程度上保证数据一致性 遵守第三级封锁协议必然遵守两段协议 11.6 封锁的粒度 封锁对象的大小 基本表、元组、数据项或数据库 物理单元 数据页 数据块 选择封锁时,既要考虑封锁开销成本,又要提高并发操作的性能。因此,在并发事务中根据需要设置不同的封锁粒度,并适当选择封锁粒度以求得最优的效果。 意向锁 如果对一个节点加意向锁,则说明该节点的下层节点正在被加锁;对任一节点加锁时,必须先对它的上层节点加意向锁。 三种意向

文档评论(0)

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

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

1亿VIP精品文档

相关文档