数据库分类及介绍

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

数据库字面上的理解就是数据的仓库,我们平时说的数据库是指数据库管理系统(Database Management System),它是一种操纵和管理数据库的基础软件,用于建立、使用和维护数据库,简称DBMS。严格来说数据库是数据库管理系统的实例,一个数据库管理系统可以有多个数据库实例。
数据库种类很多,我们平时接触最多的可能是Oracle数据库,或者MySQL数据库。两者是应用最广泛的关系型数据。如图1是2018年12月份使用情况排名,从排名也可以看出上述两个数据库分别排第一名和第二名

在这里插入图片描述


提示:以下是本篇文章正文内容,下面案例可供参考

一、数据库的基本分类

从上图的排名就可以看到,数据库不仅仅有我们平时学到的关系型数据库,还有键值(Key-Value)数据库、列存储数据库、文档数据库和搜索引擎等类型。
在数据库发展的起步阶段,很多用户都是使用一种数据库就解决了数据存储与计算的所有问题,它既能满足业务数据的事务型处理,也能够应对报表、台账等分析型应用场景,还能存储大量的互联网数据并提供高并发检索服务。
但是,随着用户数据库的爆发式增长和应用场景的复杂化发展趋势,使用单一数据库并不能解决用户的所有问题。
1、数据存储受限。以公安行业为例,金盾工程一期建设的八大资源库的数据量在GB级,可是随着金盾二期大情报系统、警综系统的建设,数据量和数据种类急剧攀升,再也不是Oracle + RAC架构所能处理的场景了。
2、应用场景变化。在公安信息化建设中,金盾一期建设的信息系统基本以事务处理场景为主,信息查询场景为辅。而后来建设的金盾二期项目中,更多的是以查询检索为主了。由此,大数据量的查询检索对已有的数据库架构产生了巨大的冲击。
3、性能要求。信息化发展的程度越高,用户对信息系统的要求月苛刻。可能以前能够接受一天统计一次报表,但是现在用户更希望能够实时的查看统计结果。因此,在新形势下性能也是传统事务型数据库的一个瓶颈。
由此,数据库科学家Michael Stonebraker提出了“架构多元化”的观点。
在这里插入图片描述
他提出,数据库行业的技术思路应该由“一种架构支持所有应用”转变成“多种架构支持多类应用”。由此,数据库行业出现了三个互为补充的三大阵营,OldSQL、NewSQL和NoSQL。
下面本文将简单介绍一下各种类型的数据库。

二、关系型数据库

1.功能描述

这种类型的数据库是最古老的数据库类型,关系型数据库模型是把复杂的数据结构归结为简单的二元关系(即二维表格形式), 如图2是一个二维表的实例。通常该表第一行为字段名称,描述该字段的作用,下面是具体的数据。在定义该表时需要指定字段的名称及类型。
在这里插入图片描述
在关系型数据库中,对数据的操作几乎全部建立在一个或多个关系表格上。在大型系统中通常有多个表,且表之间有各种关系。实际使用就是通过对这些关联的表格分类、合并、连接或选取等运算来实现数据库的管理。

2.常见产品

关系型数据库最为经典的开源软件就是MySQL,它最流行的开源关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。
在这里插入图片描述

SUN被甲骨文收购后,MySQL 的原创人员有拉出另外一个分支,命名MariaDB 。该数据库被维基百科,Facebook 甚至 Google 等技术巨头使用。 MariaDB 是一种可为 MySQL 提供插件替换功能的数据库服务器。开发人员的首要关注点是安全性,在每个版本发布时,开发人员还会合并所有 MySQL 的安全修补程序,并在需要时对其进行增强。除此之外Percona也维护了一个优秀的MySQL数据库分支。
常用的关系型数据库还有PostgreSQL数据库等。

三、键值存储数据库

1.功能描述

键值数据库是一种非关系数据库,它使用简单的键值方法来存储数据。键值数据库将数据存储为键值对集合,其中键作为唯一标识符。
在这里插入图片描述
如图2是某公有云的键值存储示意图,其中键包含分区键和排序键,而值包含更多的实际信息。比如实际使用是可以以学号为键,姓名、性别、年龄和班级等信息为值进行存储。实际存储形式很灵活,是业务需求自行定义即可。

2.常见产品

键值数据库目前应用最多的应该是Redis,Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。Redis通常最为普通关系型数据库的缓存层,用于降低数据库的访问压力,提升系统性能。
在这里插入图片描述

四、列式数据库

1.功能描述

列式存储(column-based)是相对于传统关系型数据库的行式存储(Row-basedstorage)来说的。简单来说两者的区别就是对表中数据的存储形式的差异。
在这里插入图片描述
如图4是传统行数据库和列数据库表中数据在磁盘上的存储形式的差异对比。对于行存储数据库,表中的数据是以行为单位逐行存储在磁盘上的;而对于列存储数据库,表中的数据则是以列为单位逐列存储在磁盘中。

列存储解决的主要问题是数据查询问题。我们知道,平时的查询大部分都是条件查询,通常是返回某些字段(列)的数据。对于行存储数据,数据读取时通常将一行数据完全读出,如果只需要其中几列数据的情况,就会存在冗余列,出于缩短处理时间的考量,消除冗余列的过程通常是在内存中进行的。而列存储,每次读取的数据是集合的一段或者全部,不存在冗余性问题。这样,通过这种存储方式的调整,使得查询性能得到极大的提升。

2.常见产品

列存储数据库中最为出名的恐怕就是HBase了,HBase是 BigTable 的开源 java 版本。是建立在 HDFS 之上,提供高可靠性、高性能、列存储、 可伸缩、实时读写 NoSQL 的数据库系统。
在这里插入图片描述

五、文档数据库

1.功能描述

此类数据库可存放并获取文档,可以是XML、JSON、BSON等格式,这些文档具备可述性(self-describing),呈现分层的树状结构(hierarchical tree data structure),可以包含映射表、集合和纯量值。数据库中的文档彼此相似,但不必完全相同。文档数据库所存放的文档,就相当于键值数据库所存放的“值”。文档数据库可视为其值可查的键值数据库。

2.常见产品

文档数据库种类繁多,包括MongoDB、CouchDB、 Terrastore、RavenDB和OrientDB等多大十几个。其中MongoDB是目前最为流行的文档数据库,其介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。其最大的特点是分布式部署,可以随着负载的增大动态扩容,从而满足企业业务增长的需求。
在这里插入图片描述

六、图数据库

1.功能描述

图数据库顾名思义,就是一种存储图关系的数据库。图数据库是NoSQL数据库的一种类型,它应用图形理论存储实体之间的关系信息。关系型数据用于存储明确关系的数据,但对于复杂关系的数据存储却有些力不从心。如图4这种人物之间的关系,如果用关系型数据库则非常复杂,用图数据库将非常简单。
在这里插入图片描述

2.常见产品

图数据库种类很多,比如Neo4J、ArangoDB、OrientDB、FlockDB、GraphDB、InfiniteGraph、Titan和Cayley等。其中Neo4j 是目前最流行的图数据库,支持完整的事务,在属性图中,图是由顶点(Vertex),边(Edge)和属性(Property)组成的,顶点和边都可以设置属性,顶点也称作节点,边也称作关系,每个节点和关系都可以由一个或多个属性。Neo4j创建的图是用顶点和边构建一个有向图,其查询语言cypher已经成为事实上的标准。
在这里插入图片描述

总结

本文改编自https://baijiahao.baidu.com/s?id=1626625811239051052&wfr=spider&for=pc

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刚刚Style

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值