第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文档。上传文档
查看更多
清华大学计算机系  冯建华 §10.5事务的并发执行 为什么要并发执行? 事务的串行执行虽然简单,但效率不高; 没有充分利用计算机的磁盘I/O和CPU计算可以并行工作的特性; 利用磁盘I/O和CPU的并行性,并发地执行多个事务,可以: 提高系统的吞吐量,即单位时间内执行的事务数 减少事务的平均响应时间,即一个事务从开始执行到完成所需要的平均时间。否则: 如果事务串行执行,那么短事务就不得不等待排在它前面的长事务的漫长执行,从而导致难以预测的时间延迟! §10.5事务的并发执行 并发执行的基础 并发执行与并行执行的区别? DBMS如何并发执行多个事务? 通过事务调度: 调度是指一组事务中指令交叉执行的序列。 一组事务的一个调度必须保证: 包含这组事务的全部指令; 必须保持各条指令在各个事务中出现的顺序,即调度不能改变单个事务中指令的先后关系。这种关系是由程序员决定的,它保证了单个事务的一致性。 调度的目的: 就是用于确定那些可以保证数据库一致性的一组事务的所有指令的执行序列! §10.5事务的并发执行 调度的分类 串行调度: 由来自各个事务的指令序列组成; 属于同一个事务的指令在调度中紧挨在一起。 串行调度的方案: 对于有N个事务的事务组,共有N!个可能的串行调度方案; 举例:包含两个事务T1和T2的调度1。 §10.5事务的并发执行 调度的分类 并发调度: 由来自各个事务的全部指令组成; 属于不同事务的指令在调度中交叉在一起,但仍然保持在各自事务中的先后顺序。 并发调度的执行: 操作系统先选一个事务执行一段时间; 然后切换上下文,执行别的事务一段时间,接着又切换回去,如此下去…… §10.6调度的可串行化 调度的目的? 调度的等价性 如果一个并发调度的执行效果与一个包含相同事务的串行调度的执行效果是相同的,我们就说它们是等价的; 事务的串行执行可以保证数据库的一致性,这时不言而喻的; 因此,与之等价的并发调度也可以保证数据库的一致性。 是不是任何一个并发调度都能变成一个与之等价的、包含相同事务的串行调度? §10.6调度的可串行化 调度的简化 事务并发执行时,只有访问相同数据项的读/写操作 read和write才会在事务间产生影响; 对于数据项Q,在 read(Q) 和write(Q)指令之间,事务可对驻留在事务局部缓冲区中数据项Q的拷贝执行任意操作; 从调度角度来看,事务的重要操作是read与write指令,通常调度中只显示这些指令。 §10.6调度的可串行化 调度中指令的可交换性 对于一个调度S来说,假设Im和In(mn)分别是属于事务Ti和Tj的两条连续的读写指令: 如果Im和In分别访问不同的数据项,则交换Im和In的顺序不会影响调度中任何事务的执行结果; 如果Im和In访问相同的数据项Q,则两者的顺序就不能随便交换,需要看Im和In是不是冲突指令。 §10.6调度的可串行化 调度中指令的可交换性 ① ② ④ ③ §10.6调度的可串行化 指令的冲突 当Im和In是不同事务在相同数据项上的操作,且其中至少有一条是write指令时,称Im和In是冲突的 例如,左图的调度3中: T1的write(A)与T2的read(A)是冲突的; T2的write(A)与T1的read(B)是不冲突的。 不冲突的指令可以交换先后顺序。 §10.6调度的可串行化 非冲突指令的交换 * 第10章 事务与故障恢复 讲课内容: 从用户的观点看,数据库上一些操作的集合通常被认为是一个独立的单元。事务就是构成单一逻辑工作单元的操作集合。不论是否发生故障,数据库系统必须保证事务的正确执行:或者执行整个事务或者属于该事务的操作一个也不执行。 ■事务的概念     ■调度的可恢复性 ■事务的状态     ■隔离性的实现 ■原子性和持久性的实现■SQL中事务的定义 ■事务的并发执行   ■冲突可串行化的判定 ■调度的可串行化   ■本章总结 DBMS总体结构回顾:事务管理器 用户 应用界面 索引 统计数据 数据文件 数据字典 应用程序 交互查询 数据库模式 应用程序目标码 嵌入式DML预编译器 DML编译器 DDL解释器 查询计算引擎 事务管理器 缓冲区管理器 文件管理器 查询处理器 存储管理器 数据库管理系统 磁盘存储器 权限及完整性管理器 日志 §10.1事务的概念 背景知识 古老而典型的例子: 提起事务,就会用到银行中两个账户之间转帐的例子,即从账户A转XX元钱到账户B,它同时涉及到两个不同账户的读写操作。 事务中涉及数据库访问的基本操作: 读,read(X): 从数据库中传送数据项X到执行read操作的那个事务的局部缓冲区。 写,write(X): 从执行write的那个事务的局部缓冲区中把数据项X传回数据库。 §10.1事务的概念 背景知识 事务

文档评论(0)

考试教学资料 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档