分布式数据库

网友投稿 904 2022-10-29

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。

分布式数据库

分布式数据库锁定

本词条由“科普中国”百科科学词条编写与应用工作项目 审核。

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

中文名分布式数据库外文名distributed data base简    称 DDB

系统可靠性高支持技术分布式处理特    点就地完成

目录

1 简介2 主要特点3 分布式数据库相对传统集中式数据库的优点

4 体系结构5 数据分片类型6 数据分配方式7 查询优化

8 典型应用

简介

分布式数据库是指利用高速计算机网络将物理上分散的多个数据存储单元连接起来组成一个逻辑上统一的数据库。分布式数据库的基本思想是将原来集中式数据库中的数据分散存储到多个通过网络连接的数据存储节点上,以获取更大的存储容量和更高的并发访问量。近年来,随着数据量的高速增长,分布式数据库技术也得到了快速的发展,传统的关系型数据库开始从集中式模型向分布式架构发展,基于关系型的分布式数据库在保留了传统数据库的数据模型和基本特征下,从集中式存储走向分布式存储,从集中式计算走向分布式计算。

另一方面,随着数据量越来越大,关系型数据库开始暴露出一些难以克服的缺点,以NoSQL 为代表的非关系型数据库,其高可扩展性、高并发性等优势出现了快速发展,一时间市场上出现了大量的key-value 存储系统、文档型数据库等NoSQL 数据库产品。NoSQL 类型数据库正日渐成为大数据时代下分布式数据库领域的主力。

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

首先,降低了数据传送代价,因为大多数的对数据库的访问操作都是针对局部数据库的,而不是对其他位置的数据库访问;其次,系统的可靠性提高了很多,因为当网络出现故障时,仍然允许对局部数据库的操作,而且一个位置的故障不影响其他位置的处理工作,只有当访问出现故障位置的数据时,在某种程度上才受影响;第三,便于系统的扩充,增加一个新的局部数据库,或在某个位置扩充一台适当的小型计算机,都很容易实现。然而有些功能要付出更高的代价。例如,为了调配在几个位置上的活动,事务管理的性能比在中心数据库时花费更高,而且甚至抵消许多其他的优点。

分布式软件系统(Distributed Software Systems)是支持分布式处理的软件系统,是在由通信网络互联的多处理机体系结构上执行任务的系统。它包括分布式操作系统、分布式程序设计语言及其编译(解释)系统、分布式文件系统和分布式数据库系统等。

分布式操作系统负责管理分布式处理系统资源和控制分布式程序运行。它和集中式操作系统的区别在于资源管理、进程通信和系统结构等方面。 分布式程序设计语言用于编写运行于分布式计算机系统上的分布式程序。一个分布式程序由若干个可以独立执行的程序模块组成,它们分布于一个分布式处理系统的多台计算机上被同时执行。它与集中式的程序设计语言相比有三个特点:分布性、通信性和稳健性。 分布式文件系统具有执行远程文件存取的能力,并以透明方式对分布在网络上的文件进行管理和存取。 分布式数据库系统由分布于多个计算机结点上的若干个数据库系统组成,它提供有效的存取手段来操纵这些结点上的子数据库。分布式数据库在使用上可视为一个完整的数据库,而实际上它是分布在地理分散的各个结点上。当然,分布在各个结点上的子数据库在逻辑上是相关的。

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

主要特点

·

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

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

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

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

分布式数据库相对传统集中式数据库的优点

大数据时代,面对日益增长的海量数据,传统的集中式数据库的弊端日益显现,分布式数据库相对传统的集中式数据库有如下优点。

● 更高的数据访问速度:分布式数据库为了保证数据的高可靠性,往往采用备份的策略实现容错,所以,在读取数据的时候,客户端可以并发地从多个

备份服务器同时读取,从而提高了数据访问速度。

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

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

体系结构

根据我国制定的《分布式数据库系统标准》,分布式数据库系统抽象为4层的结构模式。这种结构模式得到了国内外的支持和认同。

4层模式划分为全局外层、全局概念层、局部概念层和局部内层,在各层间还有相应的层间映射。这种4层模式适用于同构型分布式数据库系统,也适用于异构型分布式数据库系统。

数据分片类型

(1)水平分片:按一定的条件把全局关系的所有元组划分成若干不相交的子集,每个子集为关系的一个片段。

(2)垂直分片:把一个全局关系的属性集分成若干子集,并在这些子集上作投影运算,每个投影称为垂直分片。

(3)导出分片:又称为导出水平分片,即水平分片的条件不是本关系属性的条件,而是其他关系属性的条件。

(4)混合分片:以上三种方法的混合。可以先水平分片再垂直分片,或先垂直分片再水平分片,或其他形式,但他们的结果是不相同的。

条件:

(1)完备性条件:必须把全局关系的所有数据映射到片段中,决不允许有属于全局关系的数据却不属于它的某一个片段。

(2)可重构条件:必须保证能够由同一个全局关系的各个片段来重建该全局关系。对于水平分片可用并操作重构全局关系;对于垂直分片可用联接操作重构全局关系。

(3)不相交条件:要求一个全局关系被分割后所得的各个数据片段互不重叠(对垂直分片的主键除外)。

数据分配方式

(1)集中式:所有数据片段都安排在同一个场地上。

(2)分割式:所有数据只有一份,它被分割成若干逻辑片段,每个逻辑片段被指派在一个特定的场地上。

(3)全复制式:数据在每个场地重复存储。也就是每个场地上都有一个完整的数据副本。

(4)混合式:这是一种介乎于分割式和全复制式之间的分配方式。

目前分布式数据库分配的设计,越来越多的采用寻找最优解的算法,比如遗传算法、退火机制等

查询优化

指在执行分布式查询时选择查询执行计划的方法和关系运算符的实现算法。根据系统环境的不同,查询优化所使用的算法也有所不同,通常分为远程广域网环境和高速局域网环境,其区别主要在网络的带宽。对于一元运算符可以采用集中式数据库中的查询优化方法。而对于二元运算符,由于涉及场地间的数据传输,因此必须考虑通信代价。分布式查询中常见的连接运算执行策略包括:

(1)半连接方法:利用半连接运算的转换方法R∞S=(RµS)∞S。假设场地1和场地2上分别有关系R和关系S,首先在S上执行连接属性上的投影并将结果传输至场地1,在场地1上执行关系R与投影的连接操作,再将结果传输至场地2与关系S执行连接操作。这种方法能够降低执行连接运算时的网络通信代价,主要适用于带宽较低的远程广域网络。

(2)枚举法方法:指枚举关系运算符的物理执行计划,通过对比执行计划的代价选择执行算法的方法。其中,连接运算符的物理执行计划包括嵌套循环方法、哈希连接法和归并连接法。枚举法主要适用于以磁盘IO代价为主的高速局域网环境。

典型应用

最典型应用的银行领域为例:

将分散的数据库从逻辑上联系在一起,可以大大提高数据的管理效率。这就是总行和支行之间的关系:总行与全国各地的支行之间既有各自需要处理的数据,又有需要交换的数据。将数据分散存储在各地的数据库中,可提高故障发生时的数据安全性。一旦上海支行的数据库出现故障,比如停机、损坏,也是仅仅限于上海支行,总行、广州等其他地区的支行数据库的数据都不会受到影响。分布式架构具备良好的扩展性。比如建立一个新的海外支行时,只要将新建的数据库加入到原有的分布式数据库架构中就可以,以最小的代价在不影响原有支行、总行的情况下完成数据库的扩展。以冗余方式进行数据的备份,以备在系统崩溃、数据丢失的情况下仍有备份数据可以进行恢复。

上一篇:SMP架构的CPU内部集成了内存控制器
下一篇:zabbix告警短信(zabbix发短信)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~