一、概述

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

二、体系结构

      根据我国制定的《分布式数据库系统标准》,分布式数据库系统抽象为4层的结构模式。这种结构模式得到了国内外的支持和认同。4层模式划分为全局外层、全局概念层、局部概念层和局部内层,在各层间还有相应的层间映射。这种4层模式适用于同构型分布式数据库系统,也适用于异构型分布式数据库系统。

三、发展历程-为生先死

(图片引用自网络)
年份是指关键事件发生事件的时间节点,并不一定是具体时间,欢迎更正。
1.分布式数据库的研究始于20世纪70年代中期。世界上第一个分布式数据库系统SDD-1是由美国计算机公司(CCA)于1979年在DEC计算机上实现。
2.自1970年代关系数据库兴起,当时的数据库主要功能就是保存数据和满足用户对数据计算需求,如Oracle/DB2等。
3.1990年之后,出现开源数据库MySQL和PostSQL,这些数据库遵循摩尔定律的硬件提升速度,具有良好的单机性能。
4.2005年左右,人们开始探索分布式数据库,带起了NoSQL这波浪潮。这些数据库解决的首要问题是单机上无法保存全部数据,其中以HBase/Cassadra/MongoDB为代表
5.2012~2013年Google 相继发表了Spanner和F1两套系统的论文,让业界第一次看到了关系模型和NoSQL的扩展性在一个大规模生产系统上融合的可能性。
6.之后NoSQL谢幕,NewSQL登场。NewSql是一类新式的关系型数据库管理系统。

四、术语解释


分布式数据库的术语对我来说需要记录的有点多,根据个人情况略过吧。
DBMS:数据库管理系统(Database Management System)是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,简称DBMS。
DDBS:分布式数据库系统,包含分布式数据库管理系统(DDBMS)和分布式数据库(DDB)。
集中式数据库系统
分布式数据库系统:完整的、全局的(意味着支持所有业务),逻辑上集中、物理上分布(意味着单独的数据库可以不必包含所有数据)的大型数据库.
同构型:构是指数据模型,同构是指各个节点都采用同一类型的数据模型(譬如都是关系型)
同质型:质是指数据库管理系统DBMS,比如有Oracle,DB2等,DBMS相同则称为同质的,不同则称为异质的.
同构同质型:分布式数据库系统中,数据模型和数据库管理系统(DBMS)相同。
同构异质型:分布式数据库系统中,数据模型相同,但是数据库管理系统(DBMS)相同。
异构型DDBS:分布式数据库系统中,数据模型和数据库管理系统(DBMS)都不相同。

集中式计算:计算几乎完全依赖于一台大型的中心计算机的处理能力。
分布式计算:在两个或多个软件互相共享信息,这些软件既可以在同一台计算机上运行,也可以在通过网络连接起来的多台计算机上运行。(中国科学院的定义)。
协作式计算:看作为一种协作式的分布计算。在这种模式中,计算机之间不仅仅像在分布式计算中那样互相传递数据,实现信息共享,而且要进行更深层次的共享,也就是说用两台或更多的计算机来共同完成一个处理任务。
数据分片:水平分片,垂直分片,导出分片,混合分片
水平分片:按一定的条件把全局关系的所有元组划分成若干不相交的子集,每个子集为关系的一个片段(把同一张表中的数据拆分到不同的数据库或表中进行存储,主要有分表,分库两种模式)。
垂直分片:把一个全局关系的属性集分成若干子集,并在这些子集上作投影运算,每个投影称为垂直分片(就是根据不同的业务进行拆分的,拆分成不同的数据库,比如会员数据库、订单数据库、支付数据库、消息数据库等)
导出分片:又称为导出水平分片,即水平分片的条件不是本关系属性的条件,而是其他关系属性的条件(具有一定业务关系的数据放一起,比如组织信息和绩效信息)。
混合分片:以上三种方法的混合。可以先水平分片再垂直分片,或先垂直分片再水平分片,或其他形式,但他们的结果是不相同的。
数据分配方式
集中式:所有数据片段都安排在同一个节点上。
分割式:所有数据只有一份,它被分割成若干逻辑片段,每个逻辑片段被指派在一个特定的场地上。
全复制式:数据在每个场地重复存储。也就是每个场地上都有一个完整的数据副本。
混合式:这是一种介乎于分割式和全复制式之间的分配方式。
元组(tuple)是关系数据库中的基本概念,关系是一张表,表中的每行(即数据库中的每条记录)就是一个元组,每列就是一个属性。 在二维表里,元组也称为行。
HBase:典型的分布式数据库,底层使用HDFS分布式文件系统作为支撑(HBase本身并不存储数据,数据还是以文件的形式存储在HDFS上)。HBase是Hadoop生态中的重要产品,Google BigTable的开源实现。
BigTable:Google内部使用的分布式数据库,构建在GFS的基础上,弥补了分布式文件系统对于小对象的插入、更新、随机读请求的缺陷。


五、总结:


       本意是总结分布式数据库,却意外的进入到NewSql时代,不得不多喜忧参半啊。在起初查询了很多资料,都没找到2013年之后分布式数据库的发展,这个是我的一个疑惑,想必也是诸位的疑惑。其实原因很简单,数据存储截止目前经历文件存储,关系数据库,Nosql,NewSql四个阶段。其中NoSql数据库对于分布式数据库,自2015年之后数据存储开启NewSql模式,Nosql(分布式数据库)已经逐渐退出历史舞台。而对于NewSql想必大家都早有接触,只是或许和我之前一样,或许是因为和关系型数据库过度的太柔和,所以没能清楚的感受到NewSQL时代的到来,NewSql是对各种新的可扩展/高性能数据库的简称,这类数据库不仅具有NoSQL对海量数据的存储管理能力,还保持了传统数据库支持ACID和SQL等特性。常见的newsql数据库供应商包括(顺序随机)Clustrix、GenieDB、ScalArc、Schooner、VoltDB、RethinkDB、ScaleDB、Akiban、CodeFutures、ScaleBase、Translattice和NimbusDB,以及 Drizzle、带有 NDB的 MySQL 集群和带有HandlerSocket的MySQL。后者包括Tokutek和JustOne DB。相关的“NewSQL作为一种服务”类别包括亚马逊关系数据库服务,微软SQLAzure,Xeround和FathomDB。

参考资料:

https://www.oschina/news/84386/about-distributed-database?utm_source=tuicool
https://www.sohu/a/320178859_505827
 

更多推荐

分布式数据库简述