|
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。
|
|