非关系型数据库
English version: NoSQL Database
一种用于存储和检索半结构化与非结构化数据的非关系型数据库。
定义
- NoSQL 数据库是非结构化数据。
- 它的设计初衷是解决大数据的可扩展性与性能问题,而这些问题是传统数据库未能设计的。
- 它专门用于组织需要访问、处理和分析大量非结构化数据的场景。
四大类型
| 类型 | 说明 | 示例 |
|---|---|---|
| 键值存储 | 最简单的 NoSQL 模型;数据分为键和值 | Amazon DynamoDB、Riak、Redis、Berkeley DB、Memcached、Hamster DB |
| 列式存储 | 按列而非按行存储数据 | HBase、Cassandra |
| 文档数据库 | 以字段-值对形式存储灵活文档(JSON、XML) | MongoDB、CouchDB、Microsoft DocumentDB |
| 图数据库 | 用节点、边和属性表示数据 | Neo4J、InfiniteGraph、HypherGraphDB、AllegroGraph、GraphBase、OrientDB |
键值存储
- 键值数据库是最简单的 NoSQL 数据库。
- 数据通常分为两部分:键和值。
- 键是字符串,值是实际数据;因此称为键-值对。
列式存储数据库
- 列式数据库按列而非按行存储数据。
- 其工作方式是将数据保存到列的集合中,而不是行的集合中。
- 根据数据检索需求,数据可以按行式(OLTP)或列式(OLAP)存储。
- 关键区别在于数据在磁盘上的物理存储方式:
- 行式数据库尽可能将整行存储在同一个块中。
- 列式数据库将各列存储在连续的块中。
文档数据库
- 文档是文档数据库中的一条记录。
- 文档数据库不使用固定的行和列,而是使用灵活的文档。
- 文档以字段-值对的形式存储数据。
- 值可以是多种类型和结构,包括字符串、数字、日期、数组或对象。
- 文档可以以 JSON 或 XML 等格式存储。
- 一组文档称为集合。
- 集合通常存储内容相似的文档。
图数据库
- 图是以节点和关系(由边表示)形式对数据的图形化表示。
- 它有三个组成部分:节点、关系和属性。
- 节点:表示对象或实例;相当于数据库中的一行;在图中充当顶点。
- 关系:表示边;具有特定的方向、类型,并形成数据模式。
- 属性:与节点相关联的信息。
相关概念
- 关系型数据库 — 具有 ACID 保证的结构化替代方案
- OLTP 与 OLAP — 行式存储与列式存储对比