数据库系统概论(九).ppt

  1. 1、本文档共76页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十一章 并发控制 第十一章 并发控制 11.1 问题的产生 11.2 事务的并发执行可能产生的不一致性★ 11.3 串行化调度★ 11.4 并发控制机制★ 11.5 SQL Server 的加锁机制(自学) 11.1 问题的产生 多用户数据库系统的存在 允许多个用户同时使用的数据库系统 飞机定票数据库系统 银行数据库系统 特点:在同一时刻并发运行的事务数可达数百个 事务串行执行 每个时刻只有一个事务运行,其他事务必须等到这个事务结束以后方能运行。 不能充分利用系统资源,发挥数据库共享资源的特点。 事务交叉并发方式 在单处理机系统中,事务的并行执行是这些并行事务的并行操作轮流交叉运行。 单处理机系统中的并行事务并没有真正地并行运行,但能够减少处理机的空闲时间,提高系统的效率。 事务同时并发方式 多处理机系统中,每个处理机可以运行一个事务,多个处理机可以同时运行多个事务,实现多个事务真正的并行运行。 问题的产生 事务并发执行带来的问题 会产生多个事务同时存取同一数据的情况 可能会存取和存储不正确的数据,破坏事务一致性和数据库的一致性 11.2 事务的并发执行可能产生的不一致性 产生的不一致性的根本原因 操作冲突 11.3 串行化调度 11.3.1 调度 11.3.2 可串行化调度 11.3.1 调度 调度:安排多个事务中的操作的执行次序。 设有事务,T1:R1(x) W1(y) T2:R2(x) W2(x) T3:R3(y) W3(y) T1:read(A); A:=A-50; write(A); read(B); B:=B+50; write(B). read(A); A:=A-50; write(A); read(B); B:=B+50; write(B). read(A); A:=A-50; write(A); read(B); B:=B+50; write(B). read(A); A:=A-50; write(A); read(B); B:=B+50; write(B). read(A); A:=A-50; write(A); read(B); B:=B+50; write(B). 11.3.2 可串行化调度 并发事务的不同调度方式产生不同的结果,当且仅当并发执行的结果等价于某一次序串行执行的结果时,该调度是正确的,这种调度称为可串行化调度。 可串行性是并发事务正确性的准则,所有并发调度都必须是可串行化调度。 冲突可串行化调度 冲突操作是指不同的事务对同一个数据的读写操作和写写操作 Ri (x)与Wj(x) /* 事务Ti读x,Tj写x*/ Wi(x)与Wj(x) /* 事务Ti写x,Tj写x*/ 其他操作是不冲突操作 不同事务的冲突操作和同一事务的两个操作不能交换 冲突可串行化调度(续) 一个调度Sc在保证冲突操作的次序不变的情况下,通过交换两个事务不冲突操作的次序得到另一个调度Sc’,如果Sc’是串行的,称调度Sc为冲突可串行化的调度。 可串行化调度的充分条件:一个调度是冲突可串行化,一定是可串行化的调度 冲突可串行化调度(续) [正例]今有调度Sc1=r1(A)w1(A)r2(A)w2(A)r1(B)w1(B)r2(B)w2(B) 11.4 并发控制机制 用户请求执行事务的时刻是随机的,系统如何在一种动态的环境下保证调度的可串行性? 并发控制机制的任务是维持数据库的一致性,或者说维持事务调度的可串行性的前提下,如何提高并行度。 封锁机制 基于时标的并发控制机制 其它的并发控制技术 多版本(Multiversion)并发控制技术 乐观的并发控制 封锁机制 11.4.1 基本思想 11.4.2 锁的类型 11.4.3 加锁粒度及其选择 11.4.4 加锁与释放的时机 11.4.5 附加协议——两段锁协议 11.4.6 活锁(饿死)和死锁 11.4.1 基本思想 防止操作冲突 11.4.2 锁的类型 共享锁(读锁):如果数据项被某事务用共享锁加锁,其它事务仍可用共享锁读它。 互斥锁(写锁):如果数据项被某事务用互斥锁加锁,其他事务欲操作这一数据项,必须等待该事务释放此互斥锁。 相容矩阵 锁LOCK(x)的三种状态:读锁、写锁和解锁

文档评论(0)

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

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

1亿VIP精品文档

相关文档