分布式数据库系统及其应用
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(3) 本地映射透明
Read(Terminal, $S#); SELECT sname INTO $sname FROM Supplier1 AT Site1 WHERE s#=$S#; if not found THEN SELECT sname INTO $sname FROM Supplier2 AT Site2 WHERE s#=$S#; Write (Terminal, $sname);
Read (Terminal, $S#) SELECT sname INTO $sname FROM Supplier WHERE s#=$S#; Write(Terminal, $sname);
(2) 位置透明
Read(Terminal, $S#); SELECT sname INTO $sname FROM Supplier1 WHERE s#=$S#; if not found THEN SELECT sname INTO $sname FROM Supplier2 WHERE s#=$S#; Write (Terminal, $sname);
Annual Bonus app
London
London Emp New York
NY Emp
Internet
Bei Jing Payroll app
故障, 降低了 可用性
Bei Jing BJ Emp
London Payroll app
New York Payroll app
Annual Bonus app
预备知识
• 数据库系统概论课中
– SQL – 事务, ACID 性质 – 2PL, 恢复, 日志,…
• 计算机网络 (LAN,WAN,…) • 分布式程序设计, RPC,…
分布式数据库体系结构的目标
• • • • 可伸缩性 可用性 负载平衡 易于编程
分布式 DB 体系结构
(1) 共享内存
P M
London
Lon, NY Emp New York
NY, BJ Emp
Internet
Bei Jing Payroll app
复制增加了可用性
Bei Jing BJ, Lon Emp
异构与自治
应用
证卷票据 tape
选择新的投资
RDBMS
Files
• 同构型(Homogeneous)
各个Site上的DB数据模型相同, 进一步可分为 同构同质型 和 同构异质型
纽约和北京的应用 运行很慢!
Bei Jing
London Payroll app
New York Payroll app
London
London Emp New York
NY Emp
Internet
Bei Jing Payroll app
较好!!
Bei Jing BJ Emp
London Payroll app
全局数据库控制和通讯系统
规范化数据 规范化命令 规范化数据 规范化命令
数据处理器1 数据库1
……….
数据处理器n 数据库n
DDBMS的参考模型
选择体系结构的其他因素
• 数据的地域分布 • 数据 “聚类” • 代价
数据库
数据库
数据库
本地DBMS 本地模式
本地DBMS
本地DBMS
本地模式
本地模式
本地模式
全局模式
全局模式
全局模式
全局模式
用户类1
用户类2
用户类3
用户类4
全局模式与本地模式
并行与分布式DB系统
• 相似性大于差异性! • 并行DB
– 高速连接 – 同构软件 – 高性能与透明是其主要目标
• 分布式DB
– 地域分布 – 数据共享是目标 (可以运行在异构, 自治环境) – 操作可能不连惯
分布式数据库的问题
• 异构型(Heterogeneous)
各个Site上的DB数据模型不同.
• 集中型
DDB的全局控制信息位于一个中心Sie上
• 分散型
每个Site上包含有全局控制信息的一个Copy
• 可变型
DDB分成两组, 一组Site包含全局控制信息Copy(主 Site), 另一组不含全局Copy(辅Site)
• 基于运行环境
– 集中式, 分布式, 并行, Cluster, Web, 移动, 嵌 入, 数据网格等数据库 – 主动, 实时数据库等
• 事务处理
数据库系统
• 数据库-可以存储长时间的信息集合 • 数据库管理系统-允许用户使用专门的数 据定义语言和操作语言, 支持超大数据量 数据的长时间存储,并能正确控制多个用 户对数据的立即存取的软件 • 用户- 包括DBA, 终端用户, 应用程序员等
• 因此, 分布式数据库是要考虑在具有多处理 器并可能是自治,异构情况下的数据管理
– 受影响的内容有:
• • • • • 数据组织 查询处理 存取结构 并发控制 恢复处理
• 另外要讨论事务监视器( transaction monitors)
– 协调事务执行
• 多 DBMSs • 高性能
– 工作流功能 – 管理与客户(终端)的通讯等
分布数据独立
• 数据独立性
数据库系统的主要目标之一
– 数据逻辑独立 – 数据物理独立
• 数据分布独立
用户(程序)使用DDB如同使用集中式DB那样不必关心 全局数据的分布情况 – 分片透明性 – 位置透明性 – 局部数据模型透明性 – 无透明性
• 例子 简单查询
从终端接受一个供应商号, 查询该供应商的名字. 已知分段: Supplier 分成 Supplier1 和Supplier2 分配: Supplier1 在 Site1 Supplier2 在Site2和Site3上 (1) 分段透明
• 定期地, 总公司统一地访问职工数据
– E.g. 总公司修改影响所有职工的利益计划 – E.g. 根据公司的全体净利润, 销售确定年终分红与 公司发展计划的等
London Payroll app
New York Payroll app
EMP London New York
Internet
Bei Jing Payroll app
后端 (服务器)
事务处理困难的问题
• • • • • • • • • 可靠性- 系统应该极少故障 可用性- 系统应该总是正常运转 响应时间- 1-2秒 吞吐量- 每秒数千个事务 可伸缩性- 从小, 跳跃到INTERNET规模 可构造性- 满足上述需求并且代价低 原子性 持久性 分布性
• 分布式数据库的可用性
– 集中式的故障模型:
• 处理器故障
– 分布式的故障模型:
• 一个或多个处理器故障 • 网络故障 • 网络分割
– 数据必须保持同步
分布式数据库应用举例
• 假定在广州的用户给出如下查询:采摘葡萄地区的降雨 量Rain>1700mm的葡萄酒的名字,年份,及采摘区的日照 信息. • 已知 wine(year, name, producer, area, country) weather(year, area, country, sun, rain) 另已知 wine表数据根据其country值分别存放在巴黎, 罗马, 旧金山. Weather表数据分拆为weather-R(year, area, country, rain) 存放在北京和weather-S(year, area, country, sun)存放在广州. • 两种处理方式
集中式数据库系统
P M 软件:
应用程序 SQL 查询处理器 事务处理器 文件访问
...
• 简化
• 单个前端接口 • 集中维护锁 • 如果处理器故障,则系统故障 ...
分布式数据系统
• 定义: 物理上分散而逻辑上集中的数据库系统. • 特点
– 物理分布性 数据不在单个Site上, 按全局需求将数据划分成一定 的数据子集, 分散存储在各个Site上. – 逻辑整体性 各个Site上的数据子集, 相互间有严密的约束规则加 以限定, 逻辑上是一个整体. – 站点自治性 各个Site上的数据(即LDB)是有本地的DBMS管理, 具有自治处理能力.
New York Payroll app
Annual Bonus app
London
London Emp New York
NY Emp
Internet
Bei Jing Payroll app
分布为并行执行 提供了可能性
Bei Jing BJ Emp
London Payroll app
New York Payroll app
P
...
P
分布式 DB 体系结构
(2) 共享磁盘 P M P ... M M P
...
分布式 DB 体系结构
(3) 不共享
P M
P M
...
P M
DDB 体系结构
• 四层结构
全局外层
全局概念层
局部概念层
•组成 网络
局部内层
CM GDMS LDBMS
GDD GDB
LDD LDB
DDBMS的一 般功能结构
为什么需要分布式数据库
• 举例:
– 某大公司分别在 London, New York及 北京 有分公司. – 职工数据:
EMP(ENO, NAME, TITLE, SALARY, …)
• 问题:
– 该职工数据表数据应该如何存储
职工数据的访问方式
• 大多数情形, 职工数据被其服务的各分公司管 理
– E.g. 工资, 福利, 聘用与解聘
TP系统的基础
• 从用户观点看
– 从显示器或其他设备获取请求 – 执行某些特定应用工作,包括DB存取 – 返回应答
• 保证每个事务是一个独立的工作单元,实 实在在地执行一次并产生永久的结果 • 使写事务容易
TP系统与应用的结构
终端用户
表示管理器
请求 工作流控制 (路由请求)
前端 (客户)
事务程序 数据库系统
• 分布式DB设计
– 决定什么数据存放在何处 – 依赖于主要应用的访问方式 – 两个子问题:
• 分段(Fragmentation): 将表分割成段 • 分配(Allocation): 将段放置到站点
分布式数据库的问题
• 分布式查询处理
– 集中式查询计划的目标: 极小化磁盘 I/O – 分布式情形还要考虑:
分布式数据库应用举例-续
• 将weather-R发送到巴黎, 罗马, 旧金山, 在各地连接后, 将其结果送到广州用户处.
= 3*18000+400+800+200 = 55400bytes
• 将 wine-F, wine-I, wine-U 送到北京, 连接处理后, 结果 送到广州用户处.
= 12000+15000+20000+1400 = 48400bytes
• 通讯代价 • 并行处理的可能性 • 可能存在的查询计划空间大于集中式查询计划空 间!
分布式数据库的问题
• 分布式并发控制
– 事务跨越多个站点
• 必须是全局可串
– 两种主要技术:
• Locking • Timestamps
– 分布式死锁管理 – 数据多副本 – 更新时需要保持同步
分布式数据库的问题
(4) 无透明
Read(Terminal, $S#); EXECUTE $SUPIMS($S#, $FOUND, $sname) AT Site1; IF not found THEN EXECUTE: $SUPCODASYL($S#, $FOUND, $sname) AT Site2; Write(Terminal, $sname);
百度文库 事务处理
• 定义: 通过访问一个共享DB(通常是以联 机用户行为的方式)完成某个职能的程序 的执行 • 例子:
– – – – – – 预定机票 从ATM机上取款 销售中的信用卡验证 INTERNET上的联机目录订货 发射导弹 下载影视片段等
为什么事务处理重要
• 大多数中大型企业对其生产的系统使用 事务处理,因此企业不能没有TP操作 • 它占有计算机系统市场的大部- 每年超过 $50B • 它使基于INTERNET的电子商务成为可 能
第5章
• • • • • • • • • •
概述
数据库系统发展 集中式系统 为什么需要分布式系统 分布式数据库体系结构的目标 并行与分布式数据库系统 分布式数据库的问题 分布数据独立与分布透明访问 事务处理 事务处理的重要性 事务处理困难的问题
数据库系统发展
• 基于数据模型
– 数据结构, 操作 – 层次, 网状, 关系, OO, 时态, 空间, 图, 时空, 文本, 工程, 生物, 地理, 图像数据库等
用户查询
数据 需要的 查询处理模块 数据 定位
系统 DD
查询分析
实际的 数据
完整性 处理模块
优化算法
局部处理命令 分布策略
可靠性 处理模块
错误 对网络的 监视信息
LDBMS
数据
调度处理模块
DB
CM
网络
用户
用户结果 用户命令
用户
用户结果
用户命令
用户处理器1
规范化数据 规范化命令
……….
用户处理器n
规范化数据 规范化命令