- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第11章 分布式数据管理 分布式数据库管理 主要内容: 共享数据的并发访问控制(访问同步,即状态一致性);(多个操作对一个数据对象) 分布式数据的复制和一致性(数据同步);(一个操作对多个数据) 系统失败后的数据恢复(数据可靠性)。 基本概念: DB、DBMS、SQL、关系型、对象型… 分布式数据库 不复制、部分复制、完全复制 复制的益处:改进响应、增强可靠性、减少目录管理、易实现负载均衡。 事务 事务(Transaction):一系列逻辑相关的对一个或多个数据对象的操作。 事务保证数据库的一致性,并在有限的时间内结束; 查询是只读事务,更新是至少修改一个数据对象的事务。 事务调度:分布式系统中,一组并发事务中操作的交错顺序。 事务 有效的事务需要具有原子执行性: “全或无”操作:要么全部完成,要么一个也不完成; 多个事务并发执行对结果的影响,和这些事务串行执行的效果一样。(合格的事务调度--串行事务调度) 多个不能满足原子执行性的事务并发操作时可能会产生冲突(不一致的结果状态): 不一致的检索; 不一致的更新。 事务冲突-例 事务T1:(A帐户转帐$10到B帐户) begin 1 read A (obtaining A_balance) 2 read B (obtaining B_balance) 3 write A_balance - $10 to A 4 write B_balance + $10 to B end 事务冲突-例 调度1(冲突,不可串行调度): T1(1) read A (obtaining A_balance) T1(2) read B (obtaining B_balance) T1(3) write A_balance - $10 to A T2(1) read B (obtaining B_balance) T2(2) write B_balance - $5 to B T1(4) write B_balance + $10 to B 调度2(不冲突,可串行调度): T1(1) read A (obtaining A_balance) T2(1) read B (obtaining B_balance) T2(2) write B_balance - $5 to B T1(2) read B (obtaining B_balance) T1(3) write A_balance - $10 to A T1(4) write B_balance + $10 to B 事务冲突 两个事务产生冲突的必要条件:它们在同时操作一个数据对象,且至少有一个操作是写操作。 有三种事务冲突存在: r-w(读-写)冲突 w-r(写-读)冲突 w-w(写-写)冲突 解决事务冲突 解决冲突的一个方法是串行执行事务:即一个时刻只执行一个事务。从而确保从一个一致状态转移到另一个一致状态。对n个事务有n!种串行执行调度方案,所有这些方案最终到达同一个一致状态。显然,串行执行事务降低了系统的并发性。 另一个方法是通过一个“好的”并发事务调度(即“好的”事务操作的交错顺序)实现串行执行事务同样的结果,这样的调度称为可串行调度。 可串行性理论 目标:检查并发事务调度是否为可串行调度,从而得到可串行调度的并发调度。 ri[x]、wi[x]表示事务Ti对数据对象x的读和写操作,如: 事务: T1=w1[x]w1[y]r1[z] T2=r2[z]r2[y]w2[x] T3=w3[z]r3[z]w3[x] 调度:L1=w1[x]r2[z]r2[y]w2[x]w1[y]r1[z]w3[z]r3[z]w3[x] L2=w1[x]w1[y]r1[z]r2[z]r2[y]w2[x]w3[z]r3[z]w3[x] L3=w1[x]w1[y]r1[z]r2[z]w3[z]r2[y]r3[z]w2[x]w3[x] (其中L2是串行调度) 可串行性理论 等价调度的定义: 如果调度L有两个操作wi[x]和rj[x],我们说rj[x]从wi[x]读取当且仅当: (a)wi[x]rj[x]; (b)没有wk[x]使wi[x] wk[x]rj[x]。 两个调度等价当且仅当: (1)两个调度中每个读操作读自同一个写操作; (2)两个调度有同样的最终写。 如例中 L2=w1[x]w1[y]r1[z]r2[z]r2[y]w2[x]w3[z]r3[z]w3[x] L3=w1[x]w1[y]r1[z]r2[z]w3[z]r2[y]r3[z]w2[x]w3[x] 是等价调度。 可串行性理论 当一个并发调度等价于一个串行调度时,它就是可串行调度。
文档评论(0)