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