此处下载

Download Report

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