当前位置:文档之家› 分布式数据库系统(全文)

分布式数据库系统(全文)

分布式数据库系统(全文)胡经国本文作者的话本文是根据有关文献和资料编写的《漫话云计算》系列文稿之一。

以此作为云计算学习笔录,供云计算业外读者进一步学习和研究参考。

希望能够得到大家的指教和喜欢!下面是正文一、分布式数据库系统概述1、概述一分布式数据库(Distributed Database,DDB)是指数据分散存储在计算机网络中的各台计算机上的数据库。

分布式数据库系统(Distributed Database System,DDBS)通常使用较小的计算机系统,每台计算机可单独放在一个地方;每台计算机中都可能有DBMS (数据库管理系统)的一份完整拷贝副本,或者部分拷贝副本,并具有自己局部的数据库;位于不同地点的许多计算机通过网络互相连接,共同组成一个完整的、全局的、逻辑上集中、物理上分布的大型数据库系统。

2、概述二分布式数据库,是指利用高速计算机网络,将物理上分散的多个数据存储单元连接起来组成一个逻辑上统一的数据库。

分布式数据库的基本思想,是将原来集中式数据库中的数据分散存储到多个通过网络连接的数据存储节点上,以获取更大的存储容量和更高的并发访问量。

近年来,随着数据量的高速增长,分布式数据库技术也得到了快速的发展。

传统的关系型数据库开始从集中式模型向分布式架构发展。

基于关系型的分布式数据库,在保留传统数据库的数据模型和基本特征前提下,从集中式存储走向分布式存储,从集中式计算走向分布式计算。

另一方面,随着数据量越来越大,关系型数据库开始暴露出一些难以克服的缺点。

以NoSQL为代表的、具有高可扩展性、高并发性等优势的非关系型数据库快速发展;一时间市场上出现了大量的key-value(键-值)存储系统、文档型数据库等NoSQL数据库产品。

NoSQL类型数据库正日渐成为大数据时代下分布式数据库领域的主力。

这种按分布式组织数据库的方法克服了物理中心数据库组织的弱点。

首先,降低了数据传送代价。

因为,大多数对数据库的访问操作都是针对局部数据库的,而不是针对其他位置的数据库访问。

其次,系统的可靠性提高了很多。

因为,当网络出现故障时,仍然允许对局部数据库的操作,而且一个位置的故障不影响其他位置的处理工作。

只有当访问出现故障位置的数据时,在某种程度上才受影响。

第三,便于系统的扩充。

增加一个新的局部数据库,或在某个位置扩充一台适当的小型计算机,都很容易实现。

然而,有些功能要付出更高的代价。

例如,为了调配在几个位置上的活动,事务管理的性能比在中心数据库时花费更高,而且甚至抵消许多其他的优点。

二、分布式软件系统分布式软件系统(Distributed Software Systems,DSS),是支持分布式处理的软件系统,是在由通信网络互联的多处理机体系结构上执行任务的系统。

它包括:分布式操作系统、分布式程序设计语言及其编译(解释)系统、分布式文件系统和分布式数据库系统等。

⑴、分布式操作系统分布式操作系统(Distributed Operating System,DOS),负责管理分布式处理系统资源和控制分布式程序运行。

它和集中式操作系统的区别,在于资源管理、进程通信和系统结构等方面。

⑵、分布式程序设计语言分布式程序设计语言(Distributed Programming Language,DPL),用于编写运行于分布式计算机系统上的分布式程序。

一个分布式程序,由若干个可以独立执行的程序模块组成;它们分布于一个分布式处理系统的多台计算机上被同时执行。

它与集中式的程序设计语言相比,有以下三个特点:分布性、通信性和稳健性。

⑶、分布式文件系统分布式文件系统(Distributed File System ,DFS),具有执行远程文件存取的能力,并以透明方式对分布在网络上的文件进行管理和存取。

⑷、分布式数据库系统分布式数据库系统(Distributed Database System,DDBS),由分布于多个计算机结点上的若干个数据库组成。

它提供有效的存取手段来操纵这些结点上的子数据库。

分布式数据库在使用上可视为一个完整的数据库,而实际上它是分布在地理上分散的各个结点上的。

当然,分布在各个结点上的子数据库在逻辑上是相关的。

Hadoop的分布式文件系统HDFS,作为开源的分布式平台,为目前流行的很多分布式数据库提供了支持,譬如HBase等。

Yonghong的分布式文件系统ZFS,为分布式数据集市Z-DataMart提供了底层平台。

链接:Hadoop与HDFS和MapReduceHadoop是一个由Apache基金会所开发的分布式系统基础架构。

用户可以在不了解该分布式系统基础架构的底层细节的情况下,开发分布式程序;充分利用集群的威力,进行高速运算和存储。

Hadoop实现了一个分布式文件系统(Hadoop Distributed File System,HDFS)。

HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。

HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access,流媒体访问)文件系统中的数据。

Hadoop的架构最核心的设计就是:HDFS和MapReduce。

HDFS为海量数据提供了存储,而MapReduce则为海量数据提供了计算。

MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。

概念“Map(映射)”和“Reduce(归约)”,和它们的主要思想,都是从函数式编程语言里借来的;还有从矢量编程语言里借来的特性。

它极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。

当前的软件实现是指定一个Map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce(归约)函数,用来保证所有映射的键值对中的每一个共享相同的键组。

三、分布式数据库系统主要特点在大数据时代,面对海量数据量的井喷式增长和不断增长的用户需求,分布式数据库系统必须具有如下特征,才能应对不断增长的海量数据。

1、高可扩展性分布式数据库系统必须具有高可扩展性,能够动态地增添存储节点以实现存储容量的线性扩展。

2、高并发性分布式数据库系统必须及时响应大规模用户的读/写请求,能对海量数据进行随机读/写。

3、高可用性分布式数据库系统必须提供容错机制,能够实现对数据的冗余备份,保证数据和服务的高度可靠性。

四、分布式数据库系统优点在大数据时代,面对日益增长的海量数据,传统的集中式数据库系统的弊端日益显现,分布式数据库系统相对传统的集中式数据库系统具有如下优点:1、更高的数据访问速度分布式数据库系统为了保证数据的高可靠性,往往采用备份的策略实现容错机制。

所以,在读取数据的时候,客户端可以并发地从多个备份服务器同时读取,从而提高了数据访问速度。

2、更强的可扩展性分布式数据库系统可以通过增添存储节点来实现存储容量的线性扩展,而集中式数据库系统的可扩展性十分有限。

3、更高的并发访问量分布式数据库系统由于采用多台主机组成存储集群,所以相对集中式数据库系统,它可以提供更高的用户并发访问量。

五、分布式数据库系统功能结构分布式数据库管理系统(DBMS)软件结构包括AP模块、CM模块和DP 模块。

以下对各模块功能进行简要描述:1、AP模块功能包括用户接口、查询处理、全局事务管理及全局字典管理和全局恢复管理。

⑴、用户接口检查用户身份,接受用户命令,如SQL命令。

⑵、全局查询处理将用户命令翻译成数据库命令;生成全局查询的分布执行计划;收集局部执行结果并返回给用户。

⑶、全局事务管理调度、协调和监视AP模块和DP模块之间的分布执行;保证复制数据的一致性;保证全局事务的原子性。

2、DP模块功能包括局部查询处理、局部事务管理及局部字典管理和局部恢复管理。

⑴、局部查询处理实现全局命令到局部命令的转换。

⑵、局部事务管理执行局部数据操作;返回局部执行结果;保证子事务执行的正确性。

六、分布式数据库系统模式结构根据中国制定的《分布式数据库系统标准》,分布式数据库系统被抽象为四层的模式结构。

这种模式结构得到了国内外同行的支持和认同。

分布式数据库系统4层模式结构划分为:全局外层、全局概念层、局部概念层和局部内层;在各层间还有相应的层间映射,层与层(模式与模式)之间是映射关系。

这种四层模式结构适用于同构型分布式数据库系统,也适用于异构型分布式数据库系统。

1、全局模式ES(全局外层)全局模式定义全局用户试图,是分布式数据库的全局用户对分布式数据库最高层抽象。

全局用户使用视图时,不必关心数据的分片和具体的物理分配细节。

2、全局概念模式GCS(全局概念层)全局概念模式定义全局概念视图,是分布式数据库的整体抽象,包含了全局数据特性和逻辑结构。

像集中式数据库中的概念模式一样,是对数据库全体的描述。

全局概念模式再经过分片模式和分配模式,映射到局部模式。

⑴、分片模式分片模式是描述全局数据的逻辑化分视图,即全局数据逻辑结构根据某种条件的划分,将全局数据逻辑结构划分为局部数据逻辑结构,每个逻辑划分为一个分片。

在关系数据库中,一个关系的一个子关系称为该关系的一个分片。

⑵、分配模式分配模式是描述局部数据逻辑的局部物理结构,即划分后的分片的物理分配试图。

3、局部概念模式LCS(局部概念层)局部概念模式定义局部概念视图,是全局概念模式的子集。

全局概念模式经逻辑划分后,被分配到各个局部场地上。

局部概念模式用于描述局部场地上的局部数据逻辑结构。

当全局数据模型与局部数据模型不同时,还涉及数据模型转换等内容。

4、局部内模式LIS(局部内层)局部内模式定义局部物理视图,是对物理数据库的描述。

它类似于集中数据库的内层。

综上所述,分布式数据库的四层结构及模式,定义描述了分布式数据库是一组用网络连接的局部数据库的逻辑集合。

它将数据库分为全局数据库和局部数据库。

全局数据库到局部数据库,由映射(1∶N)模式描述。

全局数据库是虚拟的,由全局概念层描述。

局部数据库是全局数据库的内层,由局部概念层和局部内层描述。

全局用户只关心全局外层定义的数据库用户视图,其内部数据模型的转换、场地分配细节等由系统自动实现。

分布式数据库划分为全局外层、全局概念层、局部概念层和局部内层。

分布式数据库可以描述为虚拟的全局数据库和局部场地数据库的逻辑集合。

全局数据库到局部数据库,由分片模式和分配模式映射描述。

分布式数据库系统,借助通信网络完成地理上分布存储的数据的逻辑集中管理。

该系统提供给用户的是全局外层视图,就好像集中式数据库一样。

全局外层用户的应用请求,分布成局部请求及局部操作,从完成到结果提交及整个全局事务提交,由该系统自动完成。

相关主题