关键词搜索

源码搜索 ×
×

分布式数据库系统

发布2022-05-21浏览2866次

详情内容

分布式数据库系统是数据库技术与网络技术相结合的产物,其基本思想是将传统的集中式数据库中的数据分布于网络上的多台计算机中。分布式数据库系统通常使用较小的计算机系统,每台计算机可单独放在一个地方,每台计算机中都有DBMS的一份完整的复制副本,并具有自己局部的数据库,位于不同地点的许多计算机通过网络互相连接,共同组成一个完整的、全局的大型数据库。

一、分布式数据库概述

【定义】
分布式数据库是由一组数据组成的,这组数据分布在计算机网络的不同计算机上,网络中的每个节点具有独立处理的能力(称为场地自治),可以执行局部应用;同时也能通过网络通信子系统执行全局应用。

分布式数据库是在集中式数据库系统技术的基础上发展起来的,具有如下特点:

1)数据独立性
包括逻辑独立性、物理独立性和数据分布独立性(分布透明性)。

2)集中与自治共享相结合的控制结构
各局部DBMS可以独立地管理局部数据库,具有自治的功能。同时系统又设有集中控制机制,协调各局部DBMS的工作,执行全局应用。

3)适当增加了数据冗余度
在不同的场地存储同一数据的多个副本,提高了系统的可靠性和可用性,同时也提高了系统的性能。

4)全局的一致性、可串行性和可恢复性

【体系结构】

分布式:
在这里插入图片描述
集中式:
在这里插入图片描述
对比集中式,分布式数据库系统的体系结构,是将外模式扩展成了【全局外模式 + 全局概念模式 + 全局分片模式 + 全局分布模式】。

概念模式也叫逻辑模式,模式。全局概念模式,定义分布式数据库系统的整体逻辑结构,用户在这一层看来,数据就如同没有分布一样,如同传统的集中式数据库。

分片模式。将一个关系模式分解成几个数据片。

分布模式。定义数据片段(即分片模式的处理结果)的存放节点。分布模式的映射类型确定了分布式数据库是冗余还是非冗余。若映射是一对多的,即一个片段分配到多个节点存放,则是冗余的分布式数据库,否则是不冗余的分布式数据库。

局部概念模式,局部数据库的概念模式。

局部内模式,局部数据库的内模式。

【分布式数据库的优点】
分布式数据库的物理层面分布、逻辑层面统一的特色,让它具有一些集中式数据库所不可及的优势:

1)分布式数据库可以解决企业部门分散而数据需要相互联系的问题。

2)如果企业需要增加新部门,则分布式数据库可以在对当前机构影响最小的情况下进行扩充。

3)分布式数据库可以满足负载均衡的需要,数据分片存放,避免单台服务器性能瓶颈

4)当企业如果已存在几个数据库系统,而且实现全局应用的必要性增加时,就可以由这些数据库自下而上地构成分布式数据库系统。

5)由于有多个局部应用,多个副本,可靠性比较高。

二、数据分片

数据分片将数据库整体逻辑结构分解为合适的逻辑单位(片段),然后由分布模式来定义片段及其副本在各场地的物理分布,其主要目的是提高访问的局部性,有利于按照用户的需求,组织数据的分布和控制数据的冗余度。

1、数据分片的分类
分布式数据库的4种分片方式分别为:
1)水平分片
2)垂直分片
3)混合分片
4)导出分片
详见 分布式数据库分片方式之导出分片

2、数据分片的原则
不管采用哪种分片方式,都应该遵循如下原则:

1)完整性
全局关系的所有数据都必须分配到各个片段中,不允许某些数据属于全局关系但不属于任何片段。

2)重构性
各个片段可以重构原来的全局关系。

3)不相交性
全局关系中的每个元组仅属于一个片段,不能在多个片段中重复出现。此规则不是必须的,因为冗余的分布式数据库系统中数据可能有多个副本。但部分元组重复会使数据更新操作变得复杂,所以一般片段之间是不相交的。

3、分布透明性
分布透明性是指用户不必关心数据的逻辑分片,也不必关心数据存储的物理位置,以及局部场地上数据库的数据模型。分布透明性包括:

1)分片透明性
分片透明性是分布透明性的最高层次。用户或应用程序只对全局关系进行操作,而不必考虑数据的分片。当分片模式改变时,只需改变全局概念模式到分片模式的映射,全局模式不变,应用程序不必修改。

2)位置透明性
用户或应用程序应当了解分片情况,但不必了解片段的存储场地。当存储场地改变时,只需改变分片模式到分布模式的映射,应用程序不受到影响。同时,片段的重复副本数目改变了,数据的冗余也将改变,但用户不必关心如何保持各副本的一致性,提供了重复副本的透明性。

3)局部数据模型透明性
用户或应用程序应当了解分片及各片段存储的场地,但不必了解局部场地上使用的是何种数据模型。模型转换和语言的转换均由分布模式到局部概念模式映射来完成。

三、分布式数据库的查询模式

分布式数据库中,从查询涉及的数据和查询处理过程中的通信模式来划分,可以分为局部查询、远程查询和全局查询三种类型:

1)局部查询
指用户查询所涉及的数据均在本地数据库中,可以使用集中式查询处理技术进行优化。

2)远程查询
查询只涉及网络中单个场地的数据,因此也可以使用集中式查询处理技术进行优化。但同时需要注意,数据可能在网络中的多个位置存在副本,就有一个副本选择问题。通常选择距离查询场地最近的副本。

3)全局查询
查询涉及多个场地的数据,查询处理和优化技术最为复杂。具体方法有全局查询树的变换、副本选择与多副本的更新策略、查询树分解、半连接和直接连接等。

四、分布式数据库全局查询的优化

1、全局查询树的变换
目的就是将投影和选择提前,尽量减少连接时的数据量,提高连接速度。

2、副本选择与多副本的更新策略
如上所述,分布式数据库的数据常常设置多个副本。这样在查询时就有个副本选择问题。选择副本原则:
1)尽可能提高访问的局部性,减少远距离访问
2)尽可能减少通信开销,尤其要减少大量数据的传送
3)适当考虑节点负载的平衡

多副本可以提高访问的局部性和系统的可靠性,但在更新时,必须维持多副本的一致性。一般可采取如下策略:
1)在事务提交前更新全部副本

2)立即更新所有有效副本,失效节点的副本留待修复后更新

3)主副本法。
指定一个副本为主副本,事务提交前先更新它,其余副本在事务提交后根据主副本的广播内容进行更新。这种策略的副作用是可能存在不一致性。读取时如果读到主副本没有问题,如果读其他副本就可能读到不一致的数据。解决办法是每个副本附一个版本号,读取时与主副本的版本号进行比较。

4)快照法
只设置一个副本,然后多个数据快照分布在其他节点。读取数据时,可以读副本,也可以读快照,由用户自行决定。

更新时,仅更新副本,快照周期性更新或用命令强制更新。快照在某些情况下是允许的,甚至是要求的。

3、查询树分解
后序遍历法查询树(查询树是个二叉树?),理论比较晦涩,主要作用是优化分布式数据库的连接策略。

4、半连接和直接连接
1)半连接
半连接就是连接操作的时候,不将整个关系或片段的数据传送到对方,而是通过投影和选择,只传送匹配的元组(即数据行),以减少数据传输量。不过这样增加了连接次数,以及投影和选择操作。实际应用中,是否要采取半连接,需要经过权衡。

半连接操作主要着眼于减少通信开销。

2)直接连接
直接连接操作相对于半连接操作而言更为重视局部处理代价,却较少考虑传输代价。简单而言,其思想是将所有片段都传递到一组站点中,由这些站点处理,并得出结果。

【总结】
降低通信代价是分布式数据库优化的关键

五、分布式数据库VS集中式数据库

分布式数据库在结构上与集中式数据库存在差异。什么差异?集中式数据库是单机版,数据都放在一台机器里,而分布式数据库的数据则散布于网络中。这样的话,分布式数据库查询起来,很有可能需要考察多个节点的数据。那么怎么优化呢?

可以说,集中式数据库与分布式数据库查询优化的侧重点不一样。集中式数据库优化主要考虑CPU和IO;而分布式还需要考虑通信代价。相对于CPU和IO的处理速度而言,通信的效率最低,因此,降低通信代价是分布式数据库优化的关键。

六、分布式数据库和分布式文件系统

分布式文件系统存储的数据是无结构化的,如视频,照片,这些数据以对象方式存储,数据之间没有关系。 这样的数据称为Blob(Binary Large Object二进制大对象),系统内部按chunk(数据块)来组织这些数据,一个chunk包含多个Blob。 并将这些数据块分散到存储集群。分布式数据库,就是将数据库(如Mysql)分散到集群,数据间是有关系的。

可以说,分布式文件系统和分布式数据库系统并没有什么直接的关系。但数据库系统也可以居于分布式文件系统进行存储,提高存储效率,可靠性等。

分布式计算框架与分布式文件系统

分布式文件系统GFS、HDFS的比较

相关技术文章

点击QQ咨询
开通会员
返回顶部
×
微信扫码支付
微信扫码支付
确定支付下载
请使用微信描二维码支付
×

提示信息

×

选择支付方式

  • 微信支付
  • 支付宝付款
确定支付下载