管理数据命根子的数据库种类越来越多,有哪些您不了解的内幕呢?

存储 存储软件
数据是企业的命根子。数据种类增多,数据量增大,应用需求多样化,导致数据库的种类也不断增多。除了以前说的交易类、事务处理类、嵌入类等常用的分类方法以外,根据不同应用需求而出现的新型数据正在不断发展壮大。

数据是企业的命根子。数据种类增多,数据量增大,应用需求多样化,导致数据库的种类也不断增多。除了以前说的交易类、事务处理类、嵌入类等常用的分类方法以外,根据不同应用需求而出现的新型数据正在不断发展壮大。

作为全球最专业的按采用用户数量对各类数据库系统进行排名的机构,DB-Engines最近公布了***的排名,即2018年3月份排名,本文以2月的数据为例进行分析。

不得不说,在这份排名中,占据***阵营的是传统的关系型数据库的三大领头羊Oracle、MySQL 和Microsoft SQL Server,与第二阵营与第三阵营的分值相差挺大。

[[227247]]

透过这份排名,我们来看看数据库系统的发展轨迹与趋势。

关系型数据库占据主流,新型数据库后生可畏

341种数据库被纳入统计,按照所采用的数据模型的不同,被归类到13个大类。不过,同样的一个数据库管理系统,可以被归纳到超过一种数据库类型。

图1  不同类型数据库的数量

图1显示的就是每一类数据库系统的数量。我们可以看出,数量最多的数据库依然为传统的关系型数据库,138个;键值数据库,64个;分布式文档存储数据库,44个;图形数据库,29个;时序数据库23个,等等。每一类数据所占的比例如图2所示。

图2 每一类数据所占的比例

最近24个月以来,各类数据库产品的声望的变化情况如图3所示,由此可以看出每类数据库流行度的变化情况。其中,传统关系型数据库一直是市场的主流,声望变化不大,处于中间值100附近,并稍有下降。声望提高比较快的是时序数据库、图形数据库、键值数据库等几类。

图3 每类数据库声望的变化情况

开源系统与商业系统旗鼓相当,开源系统发展势头不减

DB-Engines榜单中另一个有意义的指标是开源系统与传统商业数据库系统的对比。在341套系统中,开源系统与商业系统数量旗鼓相当,不分伯仲,如图4所示。

图4 开源系统与商业系统数量

自2013年以来,商业系统与开源系统的发展趋势如图5所示,开源系统数量逐渐增多,商业系统逐渐减少,两者趋向对半分。

图5 商业系统与开源系统的发展趋势

非常有意思的是不同种类数据库产品中,商业系统和开源系统的比例还是有差距的,如图6。一个规律就是新型的增长比较快的数据库类型是开源系统占据主流,而传统的关系型数据库,商业系统则占据主流。

图6 不同种类数据库中商业系统和开源系统的比例

商业数据库系统的前五名分别是:Oracle    、Microsoft SQL Server、IBM DB2、Microsoft Access,以及Teradata;开源数据库系统中前五大系统分别是:MySQL、PostgreSQL、MongoDB、Redis、Elasticsearch。

六类数据库的竞争格局日益清晰,主导系统***发展

关系型数据库

关系数据库是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示。传统的关系型数据库其实就是行式数据库,就是一行一行的方式来存储信息的。

目前,关系型数据库一直是市场的主流,也是数据库市场规模***的领域,典型的产品如排名前五的Oracle、MySQL、SQL Server、PostgressSQL、DB2等。

关系型数据库的优势表现在:可以实现复杂查询,可以用SQL语句方便地在一个表以及多个表之间做非常复杂的数据查询;事务支持,使得对于安全性能很高的数据访问要求得以实现。

对于Oracle和微软SQL Server,大家都比较熟悉,在此不能不谈开源数据库MySQL。在WEB应用方面,MySQL是***的关系数据库管理系统,也是很流行的关系型数据库管理系统。基本上能实现用户的各种功能需求,最初的核心思想主要是开源、简便、易用,其高并发存取能力并不比大型数据库差,安装、使用都非常简单。

时序数据库

时间序列数据库主要用于处理带时间标签(按照时间的顺序变化,即时间序列化)的数据。时间序列数据主要是由电力行业、化工行业等各类型实时监测、检查与分析设备所采集、产生的数据,这些工业数据的典型特点是:产生频率快(每一个监测点一秒钟内可产生多条数据)、严重依赖于采集时间(每一条数据均要求对应唯一的时间)、检测点多信息量大(常规的实时监测系统均有成千上万的监测点,监测点每秒钟都产生数据,每天产生几十GB的数据量)。

关系型数据库无法满足对时间序列数据的有效存储与处理。目前对于时序大数据的存储和处理往往采用关系型数据库的方式进行处理,但关系型数据库天生的劣势导致其无法进行高效的数据存储和查询。时序大数据解决方案通过使用特殊的存储方式,极大提高了时间相关数据的处理能力,相对于关系型数据库的存储空间减半,查询速度极大提高。

典型系统如InfluxDB 就是一个开源分布式时序、事件和指标数据库,目标是实现分布式和水平伸缩扩展。它有三大特性:Time Series (时间序列),你可以使用与时间有关的相关函数(如***,最小,求和等);Metrics(度量),你可以实时对大量数据进行计算; Eevents(事件),它支持任意的事件数据。

列式数据库

列式数据库一般应用于大量的字符串数据,列式数据库从一开始就是面向大数据环境下数据仓库的数据分析而产生,主要适合于批量数据处理和即时查询。其优势包括:极高的装载速度(***可以等于所有硬盘I/O 的总和);适合大量的数据而不是小数据;实时加载数据仅限于增加(删除和更新需要解压缩Block ,然后计算和重新压缩储存);高效的压缩率,因为存储的数据类型是一样的,不仅节省储存空间,也节省计算内存和CPU,非常适合做聚合操作。

典型系统如Cassandra、HBase、Sybase IQ、HP Vertica、EMC Greenplum等。

HBase–Hadoop Database是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。

HBase是Google Bigtable的开源实现,类似Google Bigtable利用GFS作为其文件存储系统,HBase利用Hadoop HDFS作为其文件存储系统;Google运行MapReduce来处理Bigtable中的海量数据,HBase同样利用Hadoop MapReduce来处理HBase中的海量数据;Google Bigtable利用 Chubby作为协同服务,HBase利用Zookeeper作为对应。

键值数据库

即Key-Value存储,简称KV存储。它是NoSQL存储的一种方式。它的数据按照键值对的形式进行组织、索引和存储。

KV存储非常适合不涉及过多数据关系业务的数据,同时能有效减少读写磁盘的次数,比SQL数据库存储拥有更好的读写性能。典型的产品有Redis、DynamoDB等。

Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。

Redis 与其他 key-value 缓存产品一样具有以下三个特点:Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。

Redis不仅仅支持简单的key-value类型的数据,同时还提供list、set、zset、hash等数据结构的存储。

Redis支持数据的备份,即master-slave模式的数据备份。

图形数据库

图形数据库不是专门用来存储图形图像的,而是因为其用图状结构来维持其数据之间的关系,所以叫做图形数据库。

在图数据结构中,只有两种基本的数据类型,即节点(Node)和关系(Relationship),节点可以拥有属性,关系(Relationship)也可以拥有属性 ,属性都是以键值对的方式存储,节点与节点的联系通过关系(Relationship)进行建立,他们建立的关系是有方向的。

Neo4j、Sones就是其典型代表。

Neo4j是一个高性能的NoSQL图形数据库,它将结构化数据存储在网络上而不是表中。Neo4j也可以被看作是一个高性能的图引擎,该引擎具有成熟数据库的所有特性。程序员工作在一个面向对象的、灵活的网络结构下而不是严格、静态的表中——但是他们可以享受到具备完全的事务特性、企业级的数据库的所有好处。Neo4j因其嵌入式、高性能、轻量级等优势,越来越受到关注。其支持几乎所有的主流的开发语言。

分布式文档存储数据库

文档存储数据库不需要定义,应用灵活,文档存储支持对结构化数据的访问。不同于关系模型的是,文档存储没有强制的架构,文档存储模型支持嵌套结构。例如,文档存储模型支持XML和JSON文档,字段的“值”又可以嵌套存储其它文档。文档存储模型也支持数组和列值键。与键值存储不同的是,文档存储关心文档的内部结构。这使得存储引擎可以直接支持二级索引,从而允许对任意字段进行高效查询。支持文档嵌套存储的能力,使得查询语言具有搜索嵌套对象的能力,XQuery就是一个例子。

MongoDB是一个基于分布式文件存储的数据库,旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似JSON的BSON格式,因此可以存储比较复杂的数据类型。Mongo***的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

2月16日,MongoDB在西雅图大会上宣布,MongoDB将在4.0版本中正式推出多文档ACID事务支持。ACID 多文档事务,可以理解为关系型数据库的多行事务。在关系型的事务支持中,大家几乎无一例外支持同一事务内操作的原子性,即要么全部提交,要么全部回滚。这个同一事务内可以有多个操作,针对于多个表,或者是同一个表内的多行数据。

这么多种类的数据库,其实每一种都有自己的优势和不足,也特别适合某一种数据应用。在数据存储与处理方面,数据库的发展还是活力实足,后劲实足。

责任编辑:武晓燕 来源: 中国软件网
相关推荐

2014-07-17 14:13:43

TDDFDD

2015-07-27 16:25:20

女汉子喝酒大数据

2021-03-22 16:02:47

程序员大数据软件

2013-10-21 09:09:14

恶意App安全软件手机病毒

2021-08-10 05:36:25

前端LSP编程

2015-08-20 15:21:17

数据安全数据中心

2024-11-20 16:14:53

2018-03-05 17:47:48

大数据餐饮行业餐厅

2020-04-16 10:17:45

大数据Java技术

2018-08-23 22:00:18

编程语言PythonHTML5

2012-12-17 15:02:34

Linux操作系统

2010-04-02 16:28:41

2022-11-01 13:30:08

云托管云计算

2015-12-28 13:37:14

云通信

2022-03-24 14:36:31

云数据数据存储安全

2020-06-05 14:17:53

数据中心网络可持续性发展

2020-05-20 11:34:15

物联网资产管理IOT

2021-07-16 23:33:08

IT计算机薪资

2020-07-31 08:25:39

WindowsLinux微软

2018-03-16 15:31:50

点赞
收藏

51CTO技术栈公众号