2018-02-24 16:02:46
分布式数据库是用计算机网络将物理上分散的多个数据库单元连接起来组成的一个逻辑上统一的数据库。每个被连接起来的数据库单元称为站点或节点。分布式数据库有一个统一的数据库管理系统来进行管理,称为分布式数据库管理系统(DDBMS)。
分布式数据库的基本特点包括:物理分布性、逻辑整体性和站点自治性。
优缺点:
- 优点
- 站点的自治性。
- 很好的可用性和维护性,允许在多地存储多个副本。
- 效率高,应用所需要的大多数数据存储在本地,而不用去网络上获取其他的数据库的内容。
- 增加处理绩效,可作平行处理。
- 系统管理费用较低。
- 质量维持容易。
- 缺点
- 很难集成现有的几个数据库。
- 数据处理与管理上具复杂度。
- 数据的保密性与安全性受到威胁。
分布式数据库的主要问题:
- 数据分布
1)划分策略:将全部数据进行划分,且数据没有重复;
2)全复制:在每个结点上的数据库实际就是整个数据库,适用于单查询系统;
3)混合策略:根据每个结点的需要进行划分;
数据分布引发的问题:
1)多副本数据一致性的问题;
2)分布一致性,每个裂片中的元组更新后应该在其该在的结点;
3)翻译,将用户的全局查询转换成为对裂片的查询和物理副本的选择;
- 查询优化
查询优化的目标是尽量减少网络传输开销。
优化 = 代数优化 + 翻译(将全局查询转成对裂片的查询) + 查询分解 + 全局的查询规划
- 并发控制
基本原理和方法和集中式的数据库一致,也就是需要满足可串行化。
由于允许多副本,需要考虑全局的冲突问题的解决。
全局死锁问题。
- 恢复机制
基础原则与集中式数据库一致。有一些需要特别考虑的问题是:
分布式事务:关键是要确保如何让两个分布式的子事务满足原子性原则。
数据库损坏情况的组合问题。
联邦式数据库:
联邦式数据库的每个结点有充分的自治权,结点间通过协商后进行合作,完成系统。在联邦式数据库里没有统一的全局模式。联邦式数据库主要用来对异构的现有系统做集成。
结点间通过协商确定各自的输入和输出模式。