数据库的种类有哪些?

DBMS(数据库管理系统)主要通过数据的保存格式进行分类,现阶段主要分为以下几种类型。

层次数据库(Hierarchical Database,HDB)

层次数据库是最早研制成功的数据库系统,它把数据通过层次结构(树形结构)的方式表现出来。层次数据库曾经是数据库的主流,但随着关系数据库的出现和普及,现在已经很少使用了。

比较具有代表性的层次数据库是 IMS(Information Management System)数据库,由 IBM 公司研制成功。

关系型数据库(Relational Database,RDB)

关系型数据库是现在应用最广泛的数据库。关系型数据库在 1969 年诞生,可谓历史悠久。和 Excel 工作表一样,关系型数据库也采用由行和列组成的二维表来管理数据,所以简单易懂。同时,它还使用 SQL(Structured Query Language,结构化查询语言)对数据进行操作。

传统的关系型数据库采用表格的存储方式,数据以行和列的方式进行存储,要读取和查询都十分方便。下表是一些在关系型数据库中的数据。

商品编号 商品名称 商品种类 销售单价 进货单价 登记日期
0001 T恤衫 衣服 100 50 2019-10-9
0002 打孔器 办公用品 500 320 2019-1-5
0003 运动T恤 衣服 400 280 2019-3-8
0004 菜刀 厨房用具 50 30 2019-2-14
0005 高压锅 厨房用具 200 100 2019-2-13
0006 叉子 厨房用具 10 5 2019-2-13
0007 菜板 厨房用具 80 70 2019-2-13
0008 圆珠笔 办公用品 10 5 2019-2-13
 
比较具有代表性的关系型数据库有 Oracle Database、SQL Server、DB2、PostgreSQL 和MySQL

面向文档(Document-Oriented)数据库

文档型数据库的灵感来自于 Lotus Notes 办公软件,和最后一种键值存储数据库类似。文档型数据库可以看作是键值数据库的升级版,允许之间嵌套键值。而且文档型数据库比键值数据库的查询效率更高。

面向文档数据库会将数据以文档的形式存储。每个文档都是一系列数据项的集合。每个数据项都有一个名称与对应的值,值既可以是简单的数据类型,如字符串、数字和日期等;也可以是复杂的类型,如有序列表和关联对象。

数据存储的最小单位是文档,同一个表中存储的文档属性可以是不同的,数据可以使用XML、JSON或者JSONB等多种形式存储。

具有代表性的面向文档数据库有 MongDB 和 CouchDB。

列存储(Column-oriented)数据库

列存储数据库将数据存储存在列族(column family)中,一个列族用来存储经常被一起查询的相关数据。例如,如果有一个 Person 类,我们经常会一起查询他们的姓名和年龄而不是薪资。这种情况下,姓名和年龄就会被放入一个列族中,而薪资则在另一个列族中。

列存储数据库通常用来应对分布式存储的海量数据。具有代表性的列存储数据库有 Cassandra 和 HBase

XML 数据库(XML Database,XMLDB)

XML 数据库是一种支持对 XML(标准通用标记语言下的一个应用)格式文档进行存储和查询等操作的数据管理系统。在系统中,开发人员可以对数据库中的 XML 文档进行查询、导出和指定格式的序列化。

键值存储数据库(Key-Value Store,KVS)

键值存储数据库是用来保存查询所使用的主键(Key)和值(Value)的组合的数据库。具有编程语言知识的读者可以把它想象成关联数组或者散列(hash)。

近年来,随着键值存储数据库被应用到 Google 等需要对大量数据进行超高速查询的 Web 服务当中,它正逐渐为人们所关注。

具有代表性的键值存储数据库有 Redis、Memcached 和 MemcachedDB。