大连理工大学算法分析与设计20145章_分布式数据库中的事务管理和恢复2014-12-25讲述

上传人:最**** 文档编号:117122472 上传时间:2019-11-18 格式:PPT 页数:109 大小:1.46MB
返回 下载 相关 举报
大连理工大学算法分析与设计20145章_分布式数据库中的事务管理和恢复2014-12-25讲述_第1页
第1页 / 共109页
大连理工大学算法分析与设计20145章_分布式数据库中的事务管理和恢复2014-12-25讲述_第2页
第2页 / 共109页
大连理工大学算法分析与设计20145章_分布式数据库中的事务管理和恢复2014-12-25讲述_第3页
第3页 / 共109页
大连理工大学算法分析与设计20145章_分布式数据库中的事务管理和恢复2014-12-25讲述_第4页
第4页 / 共109页
大连理工大学算法分析与设计20145章_分布式数据库中的事务管理和恢复2014-12-25讲述_第5页
第5页 / 共109页
点击查看更多>>
资源描述

《大连理工大学算法分析与设计20145章_分布式数据库中的事务管理和恢复2014-12-25讲述》由会员分享,可在线阅读,更多相关《大连理工大学算法分析与设计20145章_分布式数据库中的事务管理和恢复2014-12-25讲述(109页珍藏版)》请在金锄头文库上搜索。

1、第五章分布式数据库中的事务管理和恢复 1 徐喜荣 (xirongxu ) 2012年11月2013年1月 第五章分布式数据库中的事务管理和恢复 2 1. 分布式事务概述 2. 分布式事务的执行和恢复 3. 两阶段提交协议 4. 分布式数据库中的数据更新 分布式事务增强数据库一致性 总结 分布式数据库中的事务管理和恢复 第5章 第五章分布式数据库中的事务管理和恢复 3 一、事务定义 u事务是访问或更新各种数据项的最小逻辑工作单位。它是一个操作 序列,也即是使数据库从一个一致状态转变为另外一个一致状态的 正确程序。 u事务是恢复和并发控制的基本单位。 u例如:在关系数据库中,一个事务可以是一条SQ

2、L语句、一组SQL 语句或整个程序。 u事务和程序不同,一个程序中可包含多个事务。 1.1 分布式事务定义和特性 1 分布式事务概述 第五章分布式数据库中的事务管理和恢复 4 事务通常是以BEGIN TRANSACTION开始,以COMMIT或 ROLLBACK结束。 COMMIT表示提交,即提交事务的所有操作。具体地说就是将事务中 所有对数据库的更新写回到磁盘上的物理数据库库中去,事务正常结束。 ROLLBACK表示回滚滚,即在事务运行过程中发生某种故障,事务不能 继续执 行,系统将事务中对数据库的所有已完成操作全部撤消,回滚滚到 事务务开始时时的状态态。这里的操作指对数据库的更新操作。 一

3、、事务定义 1.1 分布式事务定义和特性 1 分布式事务概述 第五章分布式数据库中的事务管理和恢复 5 例5.1 银银行转账转账 事务务,把一笔金额额从一个账户账户 甲转给转给 另一个账户账户 乙。 BEGIN TRANSACTION 读账户读账户 甲的余额额BALANCE; BALANCE=BALANCE-AMOUNT;(AMOUNT 为转账为转账 金额额) 写回BALANCE; IF(BALANCE $100 REFRESH Every day 本快照的数据取自关系BOOK中单价大于$100的书的元组。它的定义和 创建日期存放在数据字典中,数据存储在数据库中,且被每日刷新一次 。 如有必要

4、,可用REFRESH SNAPSHOT HP_BOOK语句强行刷新。 第五章分布式数据库中的事务管理和恢复 95 u快照方法的优缺点 快照方法不考虑数据的辅助副本,只关心每一数据的主文本和在这些 主文本上定义的任意多个快照。快照与视图一样,可以定义为一个或 多个主文本的部分拷贝或/和全部拷贝。 采用快照方法可以完成复杂的查询, 但又不阻止更新,因为其中数据 被暂时“凝固”, 不受更新操作的影响,所以不会妨碍其他事务对有 关数据的更新操作。为了与主文本保持同步,当主文本被更新时, 需刷新快照。 快照方法既避免了某些并发控制的开销,又便于复杂查询的完成,是 提高系统可用性的有效方法。 快照是一个只

5、读关系,其中数据只能读而不能写。即对查询操作可使 用快照,也可使用主文本,对更新操作还是在主文本上进行。 4.3 快照方法 4 分布式数据库中的数据更新 第五章分布式数据库中的事务管理和恢复 96 u分布式数据库中存在的信息是对客观世界的反映。客观世界要保持合理 的状态存在,总是要有一定规则的,这种规则反映到分布式数据库中, 就是分布式数据库中的数据要满足一定约束条件,这种约束条件称之为 一致性约束。 u一致性约束可以分为两大类: 一类是客观世界本身存在的一定规则,即业务规则的一致性约束; 另一类是分布式数据库管理的需要,如为了提高系统效率和可靠性 采用冗余数据,即冗余数据的一致性约束。 5

6、分布式事务增强数据库一致性 第五章分布式数据库中的事务管理和恢复 97 u业务规则(business rule)可以被分为 有效性约束:主要是域约束,例如数据项的取值范围等; 数据依赖约束: 实体完整性约束和参照引用完整性约束。 u如果一个数据库中的数据满足全部业务规则,就说它是一致的数据库 。 u程序员编写的事务,以及事务优化器对事务进行的优化,必须保证在 每个事务执行时所有业务规则都得到遵守。 u数据库管理员和数据库的用户,对分布式数据库系统必须支持的业务 规则都应有确切的了解。 5.1 业务规则的一致性 5 分布式事务增强数据库一致性 第五章分布式数据库中的事务管理和恢复 98 u例如,

7、考虑在银行业务中的一些事务 银行的现金存取处理是一个事务 本事务强制实施下述业务规则:一个账户的存款余额必须大于零。 银行的转账处理是另一个事务 本事务强制遵守下面两条业务规则: 一个账户的存款余额必须大于等于零. 事务结束时,两账户中存款总和, 必须与事务开始时两账户的存款之和相同。 此规则保证在转账事务期间金额不会添加或扣除。 银行的雇员定期把存款利息记入每个账户 当执行该事务后, 每个账户的结算金额增加10%。在这个事务中强制遵守 下述业务规则:所有账户存款之和比事务开始时各账户存款总和大于10% (假定利息是总额的10%)。 5.1 业务规则的一致性 5 分布式事务增强数据库一致性 第

8、五章分布式数据库中的事务管理和恢复 99 u业务规则要强制执行 用户编写的事务中, 由DBMS事务优化器产生的事务中 在产生的分布式执行方案中,要编入业务规则的强制条件 或者从数据字典中获取相关业务规则,并在生成分布式事务的时候使用它 。 u多数商用分布式DBMS的事务优化器,在产生分布式事务时只加入少数 几类业务规则,为了补救这种不足,需要: 程序员必须编写加进业务规则的分布式事务; 必须定期对数据库进行扫描,检测不一致的数据,并予以清除; 找出那些没有实施的,不能由事务优化器加上的强行业务规则。 5.1 业务规则的一致性 5 分布式事务增强数据库一致性 第五章分布式数据库中的事务管理和恢复

9、 100 5.2 冗余数据的一致性 5 分布式事务增强数据库一致性 u分布式数据库冗余设计的理由 提高系统的可用性和可靠性 如果用户由于某种原因无法访问某个成员数据库,它可以访问另 外一个成员数据库上的相同片段。 提高“读”事务的本地性 降低通信成本,特别是对读出比写入频率高得多的那些应用。 例如,一个片段存放在该事务的原发站点中,那么就免除了传输 请求和返回结果的花费(本地性)。 但是,如果事务包含对片段的更新,则其所有副本也必须做同样 的更新,这时反而增加而不是降低通信成本。 第五章分布式数据库中的事务管理和恢复 101 u例子 北京 上海 T1(Interest利息): Read(x)

10、x=x*1.1 write(x) T2(Withdrawl提款): Read(x) x=x-20 write (x) 假定包含的片段的副本驻留在北京和上海两个成员站点的数据库中, 同时假定一个请求(事务T1)是在北京发出,而另一个请求T2在上海发出。 这两个请求在两个成员站点中可以不同的顺序执行。 5.2 冗余数据的一致性 5 分布式事务增强数据库一致性 第五章分布式数据库中的事务管理和恢复 102 设数据x的初始值为50。计算在两个DBMS按不同顺序执行这两个请求的结果。 设置x=50, T2T1的执行顺序得到 x=33 (x-20)*1.1=(50-20)*1.1 T1T2的执行顺序得到

11、x=35 (x*1.1)-20=50*1.1-20 x在这两个成员数据库中的值是有分歧的。数据库管理员或者允许成员数据库中 的冗余数据出现暂时的分歧,而后使它们归于一致;或者保证事务在包含冗余数据 的站点以相同的顺序执行事务,保证数据的一致性,从而防止包含冗余数据的成员 数据库产生分歧。 5.2 冗余数据的一致性 5 分布式事务增强数据库一致性 北京上海 初始值 50 Withdrawal事务减20 30 Interest事务增加10% 33 初始值 50 Interest事务增加10% 55 Withdrawal 事务减20 35 表1 在两个站点更新冗余的数据 第五章分布式数据库中的事务管

12、理和恢复 103 u异步复制器 为了更好地管理冗余数据(多副本的复制数据),数据库厂家推出的数据复制器 ,采用一种级联策略对复制片段或复制表中的数据值进行同步更新。 复制器强制用户更新数据的主副本,然后把更新迁移到其余的副本上。用户 可以从辅助副本检索数据,但是禁止用户更新辅助副本。 复制数据使用户可以把一个数据库分拆开来,把信息存放在更接近于使用信息 最多的用户。由于信息存储在各地而不在一个中央站点,响应时间得到改善。 同时,用户得以避免从中央站点访问数据的通信费用。 复制数据库的应用 向分站点发送只读数据; 在一个周期结束时从分站点对中心站点复制这个周期内改变过的数据; 复制数据并建立决策

13、支持系统; 建立关键数据的备份副本。 5.2 冗余数据的一致性 5 分布式事务增强数据库一致性 第五章分布式数据库中的事务管理和恢复 104 u不同复制器的差别 何时在主副本上获取数据 主副本获取的数据,在其传输到不同成员数据库中的辅助副本之前, 先复制到一个获取文件或队列中。获取有关数据更新的信息可采用如 下几种方法: 数据驱动:当事务更新主副本时, 获取有关数据更新信息, 并将其 复制到一个获取文件或队列中。有的复制器使用数据库触发器在 数据更新时获取数据,另外一些复制器使用由成员DBMS建立的 恢复日志。 计时器驱动:由系统在用户定义的时间间隔自动获取相关数据更 新的信息。 如Oracl

14、e7 Complex Snapshot属于这一类方法。 应用程序驱动: 由应用中的事件引发系统从主副本把数据复制到 获取文件或队列中。如Prism Warehouse Manager采用这种方法 。 5.2 冗余数据的一致性 5 分布式事务增强数据库一致性 第五章分布式数据库中的事务管理和恢复 105 u不同复制器的差别 何时把主副本上获取的数据用到辅助副本上 数据驱动: 在主副本上由更新事务所做的更新, 立即复制, 传输和 应用于辅助副本。HP的Allbase/Replicate, Open Ingres Replicator和Sybase Replication Server采用这种方法。

15、 计时器驱动: 更新事务在主副本上的更新, 在用户定义的区间应用 于辅助副本。IBM的Data Propagator/ Replicational, Oracle7 Simple Snapshot属于这一类方法。 应用程序驱动:一个应用程序中的事件,将引发系统从获取文件 或队列对辅助副本进行更新。Prism Warehouse Manager采用 这种方法。 5.2 冗余数据的一致性 5 分布式事务增强数据库一致性 第五章分布式数据库中的事务管理和恢复 106 设有关系S,T,如图所示, (1)计算连接ST (2)计算半连接S T, TS (3)假设每个属性域长度均为1B,C0=0, C1=1

16、, 则 计算R=ST 选择度; 公式为 =Card(R)/Card(S) 计计算ST收益; 公式为为Benefit1(ST )=(1-)*Size(S)*Card(S)*C1 计计算ST代价; 公式为为Cost(ST )= C0+C1*size (D)*val(DT) BCD 356 359 683 596 416 584 DEI 669 878 856 389 S T 第五章分布式数据库中的事务管理和恢复 107 u解: (1)ST BCDEI 35669 68389 59669 41669 (2) S T BCD 356 683 596 416 TS DEI 669 389 第五章分布式数据库中的事务管理和恢复 10

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号