分布式数据库基本概念
分布式数据库:
一群分布在计算机网络上,逻辑上相互关联的数据库
分布式计算系统
要求它具备一定数量的自主处理单元,这些单元通过计算机网络互连并且协同处理他们各自分配到的任务
分布式数据库系统(DDBS)包含分布式数据库系统管理(DDBMS)和分布式数据库(DDB)
DDBS的基础问题
分布及复制数据库的透明管理
-
数据独立性
-
逻辑数据独立性
-
用户应不受数据库的逻辑结构变化的影响
-
物理数据独立性
-
向用户应用隐蔽了存储结构的细节
-
网络透明(分布透明)
-
用户不必指出数据在哪里存放
-
位置透明
-
用来执行的命令既和数据的位置无关,也和由哪个系统的完成无关
-
命名透明
-
对于数据库里的对象都提供一个唯一的名字,如果没有命名透明,用户需要把位置名称放入一个对象名称内
-
复制透明
-
复制透明仅仅谈及副本的存在,而不是他们的实际位置
-
分片透明
-
水平分片
-
把一个关系划分成一组子关系,每个子关系仅仅含有原来的关系的元组的一个子集。
-
垂直分片
-
把每个子关系定义成原来关系的属性的一个子集
通过分布式事务的可靠的数据存取
改进的性能
更为的系统扩展
分片:
把每个划分的片段存储在不同的站点,这个过程称之为分片
分布式数据库设计
划分(无重复)
-
数据分割成许多不相交的划分,每个划分存储在一个节点上
重复(重复)
-
每个站点存储全部的数据库,或是部分重复,即每个划分存储在不止一个站点但不是所有的站点上
设计的两个根本的问题是划分和分布,前者是把数据库划分成一个个片段,后者指片段的最优分布
分布式目录管理
分布式并发控制
并发控制是在分布式数据库的情况下和集中式的框架有所不同,它不仅要考虑单个数据库的完整性,而且还要考虑数据库多个副本的一致性,需要每个数据项的多个副本的值趋于一致的条件成为相互一致性
悲观方法
乐观方法
分布式死锁管理
分布式数据库的可靠性
复制
如果分布式数据库是复制的,则必须执行保证副本一致性的协议,同一个数据项的拷贝要具有相同的值
这些协议可以是即时的,即在事务完成之前强迫执行一致性协议;
也可以是惰性的,即事务只更新一个拷贝(主拷贝),而在事务完成之后再把更新传播给其他拷贝。
分布式DBMS体系架构
ANSI/SPARC 体系架构
-
外部视图--终端用户例如程序员看到的视图 --用户如何看待数据库有关
-
内部视图--系统或机器看到的视图 --处理数据的物理定义和组织
-
概念视图--企业所见到的视图
概念模式:
数据库的抽象定义,是建模企业在数据库里的‘现实世界’视图,代表的是数据与数据之间的关系,没有考虑个别应用的需求和物理存储媒介的限制
外部模式和概念模式的分离使我们获得逻辑数据独立性
概念模式和内部模式的分离使我们获得物理数据独立性
集中式DBMS的通用体系架构
界面层:
管理和应用交互的界面
控制层
对于查询的控制是通过在查询中加入语义完整性谓词和授权谓词完成的
查询处理层
把查询映像成优化的低层操作的序列。这一层与性能有关
执行层
指挥访问计划的执行,包括事务管理(提交、回滚)以及代数操作的同步,通过调用数据访问层的检索和更新请求来解释关系代数
数据访问层
管理实现文件和索引的数据结构,同时管理缓冲区,对经常访问的数据进行快速缓存
一致层
对并发控制进行管理,同时记录更新请求的日志,这一层支持事务,系统,介质的恢复
分布式DBMS体系架构的模型
(1)本地系统的自治性(Autonomy)
这里的自治性指的是对控制的分配,而不是数据的分配,它告诉我们在多大程度上每个单独的DBMS能够独立运行
自治系统的需求如下
-
本地DBMS的运行不会受到它们加入分布式系统的影响
-
本地DBMS对查询的处理和优化不应当受到访问多个数据库的全局查询的影响
-
系统的一致性和运行不应当受到个别DBMS的加入或离开分布式系统的影响
自治性也可以这样说明
(1)设计自治:每个DBMS可以自由地选择数据模型和事务处理技术
(2)通信自治:每个单独的DBMS可以自由地决定什么样的信息可以提供给其他DBMS,或者给控制全局执行的软件
(3)执行自治:每个单独的DBMS能够用它自己的方式执行提交给他的事务
基于上述特征对DBMS进行分类:
(1)紧密集成
(2)半自治系统
(3)全孤立系统
(2)系统的分布(Distribution)
C/S分布
P2P分布(全分布)--早期的分布式数据库系统大部分工作都是基于P2P的体系架构的
非分布
(3)系统的异构(Heterogeneity)
异构性可能发生在分布式系统的多个方面,从硬件的异构到不同的网络协议,还有数据管理的程序变化等
C/S系统和P2P系统之间的主要区别并不在于提供给用户和应用的透明性,而在于实现这种透明性的体系架构方面
分布式DBMS的详细部件
用户处理程序
-
用户界面处理程序
-
接受用户的命令,对他们进行解释,并且对返回给用户的结果数据格式化
-
语义数据控制程序
-
在全局模式中定义的完整性限制和授权检查能否对用户查询进行处理,这一部件同时负责执行授权和他的功能
-
全局查询优化程序和分解程序
-
决定了最小化代价函数的执行策略,并利用全局和本地概念模式以及全局词典把全局查询翻译成本地查询
-
全局查询优化程序在所做的诸多工作中将负责生成执行分布式连结的最好策略
-
分布式执行监督程序
-
协调用户请求的分布式执行,这个监督程序也被称为分布式事务管理程序
-
在这种分布式的查询执行过程中,不同站点的监督程序在通常情况下会相互通信
数据处理程序
-
本地查询优化程序
-
扮演访问路径选择器的角色,他负责挑选访问任何数据项的最佳路径
-
本地数据恢复管理器
-
保证本地数据库的一致性,即使是在出现故障时也应如此
-
运行时间支持程序
-
根据查询优化程序所生成的计划中的命令物理地访问数据库,他是对操作系统的接口,包含了数据库缓冲区管理程序
Nothing is true,Nothing is fake.