- 1、本文档共50页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据库系统与应用第7章 并发控制 电子科技大学 胡旺 scuhuwang@126.com 本章内容 事务的并发执行 并发执行可能引起的问题 可串行化 基于锁的并发控制协议 *活锁与死锁 *多粒度封锁 7.1 事务的并发执行 改善系统的资源利用率 减少短事务的等待时间 调度(schedule) 一个或多个事务的操作按时间排序的一个序列。 7.2 并发执行可能引起的问题 脏数据(dirty data)是对未提交事务所写数据的统称。 不可重复读(unrepeatable read) 丢失更新(lost update) 7.3 可串行化 回顾:事务ACID特性中的隔离性? 串行调度 串行调度:不同事务的活动在调度中是一个接一个执行的,没有交叉的运行。 可串行化调度 调度是可串行化的:多个事务交叉调度的结果与某一个串行调度的结果相同 DBMS认为事务串行调度的结果保持了数据库的一致性,都是正确的 一个调度如果是可串行化的,系统认为其调度是一个正确的调度,保持了数据库的一致性 【例】:左表中事务的另外一种调度方式 【例】:左表中事务的另外一种调度方式 如果将事务的并发执行完全交给操作系统,则任何一种调度方式都有可能出现。 有的调度能保持数据库的一致,有的调度却会产生错误的结果。 DBMS必须对事务的运行加以控制,确保交叉调度完毕后的结果与某一串行调度的结果相同,数据库不会出现不一致的状态。 简记符号 WRITE简写为W, READ简写为R, WT(X):事务T写数据库元素X, RT(X):事务T读数据库元素X, S表示一个调度。 调度(事务序列)表示: S = R1(A) R2(A) W1(A) W2(A) R2(B) R1(B) W2(B) W1(B) 读相同数据:不冲突 若事务Ti 和Tj都是读取数据A,则Ri(A),Rj(A)指令不发生冲突。 读写相同数据:冲突 若事务Ti 和Tj一个是读数据,一个是写数据,则事务的执行顺序是重要的。Ri(A)和Wj(A)指令是冲突的。 写相同数据:冲突 若事务Ti 和Tj都是写数据A,则Wi(A)和Wj(A)指令也是冲突的。 读写不同数据:不冲突 调度中两个事务发生冲突,必须: 对同一数据对象进行操作 两个操作指令中有一个是写操作W 冲突等价: 若调度S中属于不同事务的两条操作指令是不冲突的,则可以交换两条指令的执行顺序,得到一个新的调度S′。称调度S与调度S′冲突等价的(conflict equivalent)。 冲突可串行化: 若一个调度冲突等价于一个串行调度,则该调度是冲突可串行化的。 调度S: S= R1(A) W1(A) R2(A) W2(A) R1(B) W1(B) R2(B) W2(B) R1(B)与W2(A)指令不冲突,可以交换执行顺序; R1(B)与R2(A)指令不冲突,可以交换执行顺序; W1(B)与W2(A)指令不冲突,可以交换执行顺序; W1(B)与R2(A)指令不冲突,可以交换执行顺序。 调度S′(交换执行顺序): S’ = R1(A) W1(A) R1(B) W1(B) R2(A) W2(A) R2(B) W2(B) 冲突可串行是可串行性的充分条件 调度S和调度S’是视图等价的,因为两个调度中: 事务T1读取的都是数据库的初始值 事务T2读取的数据都是事务T1修改后的值 数据库中药品A、B的最终状态都是由事务T2写入的。 视图可串行化 如果某个调度视图等价于一个串行调度,则称这个调度是视图可串行化的 如果调度是冲突可串行化的,则该调度一定是视图可串行化的。但反过来未必成立。 设调度S1为事务T1、T2、T3的一个可能调度: S1 = R1(A) W3(A) R2(B) W1(B) 经过非冲突指令顺序的调整,得到调度S2: S2 = R2(B) R1(A) W1(B) W3(A) 调度S1和调度S2是冲突等价的。 又因为调度S2为一串行调度,因此调度S1是冲突可串行化的。 对于调度S1和S2,事务T1读取的A、事务T2读取的B都是数据库的初始值;数据库最终的A、B值都是由事务T3和T1写入的。 因此,调度S1和S2是视图可串行化的。 判定一个调度是否是冲突可串行化的,可以使用前驱图(precedence graph) 前驱图中若存在环,则表示调度S是不可串行化的。反之,若前驱图中不存在环,表示调度S是冲突可串行化的,可用拓扑排序得到调度S 的一个等价的串行调度。 【例】 S = R1(A) W1(A) R2(A) W2(A) R1(B) W1(B) R2(B) W2(B) 冲突指令W1(A)在R2(A)前,W1(B)在R2(B)前,因此存在从T1到T2的有向边。 【例】 S =
您可能关注的文档
- 第八章 电子科技大学C语言课件.pdf
- 云多媒体教室 桌面云+多媒体教学软件课件.pdf
- new第10章 触发器的创建及使用.ppt
- 第十一章 全球重要虫媒病毒流行状况.pdf
- 胆机常用电子管主要参数特性曲线与脚位.pdf
- 2010行业状况、法律环境和监管基本情况(电力).pdf
- 第1篇: 计算机网络体系结构.ppt
- 第三章 沟通密码2012.pdf
- 3-数据类型,运算符和表达式.ppt
- 第22讲 用Live Communications Server 2003组建企业即时通信系统.doc
- 高中英语听力教学中的跨文化理解能力培养与教学效果分析教学研究课题报告.docx
- 初中生心理健康讲座对学生心理素质培养的实践与思考教学研究课题报告.docx
- 元宇宙社交场景中的虚拟社交网络构建策略报告.docx
- 元宇宙教育平台虚拟校园环境设计与应用研究报告.docx
- 银发金融产业未来竞争格局与产品创新战略分析.docx
- 人工智能技术在无人机集群避障中人工势场法的应用与改进教学研究课题报告.docx
- 职业教育数字化转型中的数字教育资源评价与优化研究报告.docx
- 2025年过敏性疾病治疗药物市场技术创新与研发投入分析报告.docx
- 中小学、幼儿园数字化改造提升申请报告可行性研究报告.doc
- 2025年适老化改造在老年社区物流配送体系中的应用与优化报告.docx
文档评论(0)