常用数据库类型介绍与解析
2018-11-14中国通信建设集团设计院有限公司第四分公司李业田
中国通信建设集团设计院有限公司第四分公司 李业田
引言:随着大数据概念的兴起,关于关系型数据库、分布式数据库、MPP数据库、列式数据库等基于不同范畴对数据库的分类与叫法也层出不穷,那么这些各种类型的数据库是什么区别呢,它们之间的关系又是怎么样的,本文将带你一起理解各种数据库的定义与异同。
1.关系型数据库与非关系型数据库
(1)关系型数据库
即处理结构化数据的数据库,标准数据查询语言SQL就是一种基于关系数据库的语言,这种语言执行关系数据库中数据的检索和操作。简单的可以理解为二维数据库,表的格式就如Excel,有行有列。
(2)非关系型数据库
即处理非结构化数据的数据库,例如HTML、XML、图片、音频、视频等不能用传统的行列格式的二维表来表示的非结构化数据,又叫NoSQL数据库,NoSQL数据库不支持Join处理,各个数据都是独立设计的,把数据分散在多个服务器上,减少了每个服务器上的数据量,即使要处理大量数据的写入,也变得更加容易,数据的读入操作也同样更加容易。
2.集中式数据库与分布式数据库
(1)集中式数据库
集中式数据库一般是指数据进行集中存储的数据库,集中式数据存储的主要特点是能把所有数据保存在一个地方,各地远程终端通过网络访问中央服务器,例如银行的自动提款机(ATM)。
(2)分布式数据库
狭义上来讲,分布式数据库是将原来集中式数据库中的数据分散存储到多个通过网络连接的存储节点上,以获取更大的存储容量和更高的并发访问量。广义上来说,以下三种定义都可以称之为分布式数据库:
1)物理数据存储位置分散到各地的数据库;
2)实现了分布式计算的数据库;
3)基于分布式文件系统(HDFS)的数据库。
在大数据的概念中,一般把基于分布式文件系统(HDFS)的数据库定义为分布式数据库。
3.MPP数据库与Master/Slave数据库
(1)MPP数据库
MPP即Massively Parallel Processing大规模并行处理,MPP数据库仍然属于关系型数据库,是一种新型的数据库集群,重点面向行业大数据,采用Shared Nothing(无共享)架构,每个Node节点的地位是完全一样的,通过列存储、粗粒度索引等多项大数据处理技术,再结合MPP架构高效的分布式计算模式,完成对分析类应用的支撑,运行环境多为低成本PC Server,具有高性能和高扩展性的特点,在企业分析类应用领域获得极其广泛的应用,这类MPP产品可以有效支撑PB级别的结构化数据分析,这是传统数据库技术无法胜任的,无共享架构如图1所示:
图1
(2)Master/Slave数据库
Master/Slave数据库即主从架构的数据库,是基于客户机/服务器模式的架构,也就是对于Master的机器,可以进行写入操作,而对于每个Node节点来说,只充当Slave功能进行数据读取操作,Hadoop平台中的Hbase数据库就是采用了Master/Slave架构来搭建的集群,Master/Slave架构如图2所示:
图2
4.列式数据库与行式数据库
(1)列式数据库
列式数据库是以列相关存储架构进行数据存储的数据库,主要适合于批量数据处理和即时查询。面向列的数据库具有高扩展性,即使数据增加也不会降低相应的处理速度(特别是写入速度),所以它主要应用于需要处理大量数据的情况。
(2)行式数据库
普通的关系型数据库都是以行为单位来存储数据的,擅长以行为单位的读入处理,比如特定条件数据的获取。但是也存在一些关系型数据库是列式存储架构。
5.几种常见的数据库归属
(1) Oracle、SQL server、DB2、Mysql、Sybase:关系型数据库、集中式数据库、行式数据库。
(2)Hbase:非关系型数据库、分布式数据库、Master/Slave数据库、列式数据库。
(3)EMC Greenplum、HP Vertica、Google Dremel:关系型数据库、分布式数据库、MPP数据库、列式数据库。
(4)基于Mysql的Infinidb、基于Sybase的Sybase IQ:关系型数据库、集中式数据库、列式数据库。
(5)Mongodb:非关系型数据库、分布式数据库、列式数据库。