数据库存储系统提供了一种将数据放入磁盘并管理和处理这些数据所需指令的封装方法,因此开发人员可以简单地使用指令来操作数据。数据库通常以3种形式进行组织:层次性、关系型和非关系型;这种归类并不是完全互斥的。一些数据库系统可以同时读写以关系型和非关系型组织结构的数据。层次型数据库可以映射成关系型表结构。带有行分隔符的文本文件可以被读取为分行的表,并且可以定义一列或多列来描述行内容。
层次型数据库
层次型数据库是最古老的数据库类型,在早期的大型数据库管理系统中使用,它的结构要求最为严格。在层次型数据库中。数据被组织成具有强制的父子关系的树形结构;每个父级可以有多个子级,但每个子级只有一个父级(也称为一对多关系)。目录树是层次数据库的一个示例。XML使用的也是层次模型,尽管实际的结构是树的遍历路径,但可以表示成关系数据库。
关系型数据库
人们有时认为关系型数据库是以表之前的关系而得名,事实并非如此,关系型数据库基于集合理论和关系代数,其中数据元素或属性与元组相关。表指具有相同结构的关系集。集合操作以结构化查询语言的形式从关系型数据库中组织或检索数据,要写入数据,必须提前知道表的结构(模式),所以称之为"写入时进行处理的模式"。关系型数据库是面向行的。
关系型数据库管理系统被称为RDBMS。当需要存储的数据不断变化时,关系型数据库是主要选择。关系型数据库的变体包括多维数据库和时态数据库。
多维数据库
多维数据库技术将数据存储在一个数据结构中,它允许同时对多个数据元素过滤器进行搜索。这种类型的结构最长用于数据仓库DW和商务智能BI,尽管大多数大型数据库都有作为对象内置的多维数据集技术,但其中一些数据库类型是专有的,多维数据库对数据的访问使用的是SQL的一个变体多维表达式;
时态数据库
时态数据库是一种内置了支持处理涉及时间数据的关系型数据库,面向时间的特性通常包括有效时间和事务时间。这些特性可以组成双时态数据模型;
- 有效时间,现实世界中一个真实事件或实体对象发生的时间范围;
- 事务时间,存储在数据库中的事实被认为是真实的时间段;
数据库中可能包含除了有效时间和事务时间之外的时间线,如决策时间,对应双时态数据库,这种情况被称为多时态数据库。时态数据库让应用开发人员和DBA在同一数据库中管理数据当前、将来和历史的各个版本;
非关系型数据库
非关系型数据库(Non-relational Database)可以将数据存储为简单的字符串或者完整的文件,根据需要(这种特性被称为"读出时进行处理的模式"),可以用不同的方式读取这些文件中的数据。非关系型数据库可以是面向行的,但并非必须如此;
非关系型数据库提供了一种存储和检索数据的机制,与传统关系数据库相比,它使用的一致性模型约束较少,这种方法/机制的动机包括:简化设计、水平扩展性以及可用性更好的控制;
非关系型数据库通常被称为NoSQL数据库(代表"Not Only SQL"),主要区别是存储结构,数据结构不在绑定到表格中设计。它可能是树、图、网络或键值对。NoSQL数据库强调某些版本实际上可能支持传统的SQL指令。这些数据库通常是高度优化的数据存储,用于简单的检索和插入操作。目的是提高性能,特别是在延迟和吞吐量方面比较明显。NoSQL数据库在大数据和实施Web应用程序上会越来越多;
通常有:列式数据库、空间数据库、对象/多媒体数据库、平面文件数据库、键值对、三元组存储