Transcript 此处下载
第九章 分布式数据库系统 Distributed Database System DDBS • 分布式数据库 – 逻辑上是一个统一的数据库系统 – 物理上分散在不同的场地(节点) – 各场地通过计算机网络连接在一起 – 统一由一个分布式数据库管理系统( DDBMS ) 管理 • 特点 – 分布性: • 数据的分布性 • 事务的分布性 – 协调性:逻辑上整体、具整体完整性约束 2 • 局部数据库(LDB) – 分散在各个场地的数据库是局部数据库 (LDB) – 本身是一个完整的数据库系统,具有本地真 实的数据库、本地用户、本地DBMS • 全局数据库(GDB) – 是一组局部数据库的集合 • 一组数据库系统的集合 • 是一个逻辑数据库(虚拟的) 3 • 数据的分布性 – 分布式数据存储 • 复制 • 分片 • 复制 + 分片 – 数据的冗余 • 提高数据的可用性、并发性、减少网络传输 • 增加了数据更新的开销,副本一致性问题 4 • 事务的分布性 – 局部事务 • 仅访问当地数据库的事务 – 全局事务 • 需访问其他场地数据库的事务 5 • 分布式数据库环境下的访问代价 – 磁盘读写 – 网络传输 • 分布式数据库的目标 – 部门组织分布,降低成本 – 数据资源共享,提高数据库的利用率 6 • • • • • • • 全局外模式 全局概念模式 分片模式 分布模式 局部概念模式 局部内模式 局部数据库 7 • 全局外模式 – 全局应用的用户视图,全局概念模式的子集 • 全局概念模式 • 分片模式 • 分布模式 • 局部概念模式 • 局部内模式 • 局部数据库 8 • 全局外模式 • 全局概念模式 – 是全局概念视图 – 全局概念模式名、属性名、域 • 分片模式 • 分布模式 • 局部概念模式 • 局部内模式 • 局部数据库 9 • 全局外模式 • 全局概念模式 • 分片模式 – 定义分片片段以及全局关系到片段的映象 – 是一对多的,一个全局关系可对应多个片段,一个片段只 来自全局关系 • • • • 分布模式 局部概念模式 局部内模式 局部数据库 10 • • • • 全局外模式 全局概念模式 分片模式 分布模式 – 分片的物理分配视图 • 局部概念模式 • 局部内模式 • 局部数据库 11 • • • • • 全局外模式 全局概念模式 分片模式 分布模式 局部概念模式 – 局部数据库中的概念模型,关于本地数据库的描述 – 如果局部数据库中还有独立应用,则应有局部外模式,提 供给本地应用使用 • 局部内模式 • 局部数据库 12 • • • • • • 全局外模式 全局概念模式 分片模式 分布模式 局部概念模式 局部内模式 – 局部数据库的物理描述 • 局部数据库 13 • • • • • • • 全局外模式 全局概念模式 分片模式 分布模式 局部概念模式 局部内模式 局部数据库 – 本地的局部数据库 14 • 分布式数据储存 – 复制 • • • • 多个副本储存在多个节点 数据可用性 并行度的增加 冗余 – 分片 • 水平分片:r1 ∪ r2 • 垂直分片: r1 × r2 – 复制和分片 • 分片的要求 – 完备性 – 可重构性:垂直分片含主码属性 15 • 分布的透明性 – 数据项的命名 • 别名—真实名字的映射 • 物理位置透明 – 数据项的复制 • 副本的表示 • site17.account.f3.r2 – 数据项的分片 • 由优化器实现分片的连接 – 由分片表和副本表实现片段和副本的位置透明性 – 分片与副本的数据更新 • 方案 – 生成全局数据字典(数据目录),管理透明映射 16 • 由全局DBA管理、维护 DDBMS的结构 LDB 全局数据字典 LDBMS GDBMS CM 网络 全局数据字典 全局数据字典 CM GDBMS LDBMS CM GDBMS LDBMS LDB LDB 17 • 全局数据字典 – 存放数据概念模式、分片模式、分布模式的定义及 各模式之间映象的定义 – 存放有关用户存取权限的定义 – 存放数据完整性约束条件的定义 18 • 分布式数据库的基本原则 – 对用户(最终用户、程序员)来说,一个分布式系 统应该看起来完全象一个非分布式系统 19 • 分布式事务模型 – 事务的ACID – 局部事务、全局事务 – 局部事务管理器 • • • • 保证本地节点上执行的事务的ACID 本次事务可能是全局事务的一部分 维护一个易于恢复的日志 参与适当的并发控制 – 事务协调器 • • • • 协调该节点上发起的事务(全局或局部)的执行 启动事务的执行 分发事务 协调事务的终止(在所有节点上提交或中止) 20 TC1 TM1 事务协调器 事务管理器 TCn TMn 21 • 故障 – 节点故障 – 消息丢失 – 网络故障 22 • 提交 – 原子性 • 事务T必须要么在所有节点上提交,要么在所有 节点上都中止 – 两阶段提交 – 三阶段提交 23 • 两阶段提交 – 阶段1(决定阶段) • 协调器 prepare T • 节点事务管理器 ready T 或 abort T – 阶段2(执行阶段) • 收到有一个abort T ,则abort T • 收到所有ready T ,则commit T • 节点commit T并写Log后,发出acknowledge T • 收到所有acknowledge ,则complete T – 阻塞: • 协调器发出prepare T 后故障,处于不定状态 – 双方针对超时均可重发 24 – 三阶段提交 • 阶段1 – 同两阶段方式 • 阶段2 – 收到有一个abort T ,则abort T – 收到所有ready T ,则precommit T – 节点precommit T之后,写Log,发出acknowledge T • 阶段3 – 收到所有ack,则commit T – 节点commit 后,发出ack T – 收到所有ack T后,complete T • 恢复 – 只要有一个具有commit T,则提交 – 只要有一个precommit T,已ready T,可提交 – 都没有收到precommit T,则回滚 25 • 协议的比较 – 两阶段提交 • 有阻塞的可能,使用较广 – 三阶段提交 • 对于网络链路故障的处理能力偏弱 26 • 分布系统的实现 – 数据存取中间件 • 数据分布的描述 • 用户可透明地使用数据 – 数据复制 / 同步技术 • 数据更新在多副本中的一致 – 事务分布 ??? 27 • Sybase Enterprise Connect • 数据库互联与复制解决方案 • 提供在同 / 异构数据源中进行分布事务复制、 位置透明、与应用独立的数据存取功能 • 集成 – Repliaction Server / Replication Agent (复制服务器/代理) – Jconnect(J连接) – Open Server/Open Client (开放式服务器/客户机) – Omni Connect / Direct Connect (总连接/直接连接) 28 总部 ASA/ASE 企业数据 复制服务器 SQL Remote ASA 联机用 户 SQLRemote SQLRemote SQLRemote ASA 远程移动用户 ASA的远程工作组 (办事处 2) ASA的远程工作组 (办事处 1) 主点 Replication Agents Adaptive Server Enterprise /IQ Replication Server DB2 AS/400 ORACLE ODBC/DRDA DirectCONNECT OmniCONNECT SQL Adaptive Server Enterprise Adaptive Server Anywhere Oracle Informix Microsoft SQL Server OS/390 DB2 Replication Toolkit for MVS IMS/VSAM SA 移动用户 Remote Adaptive Server Anywhere SEE B Sybase Enterprise Event Broker 复制点 30 Replication Agents for A Data Server A DirectConnect for B Replication Server Data Server B Replication Server DirectConnect for A Database A Replication Agents for B Database B 31 32 33 34 35 36