什么是“文档数据存储”和“键值数据存储”?

时间:2010-04-02 17:52:34

标签: database nosql terminology

什么是文档数据存储?什么是键值数据存储

请用非常简单和一般的词语描述每个人背后的机制。

3 个答案:

答案 0 :(得分:9)

在文档数据存储中,每条记录都有多个字段,类似于关系数据库。它还有二级索引。

示例记录:

"id" => 12345,
"name" => "Fred",
"age" => 20,
"email" => "fred@example.com"

然后您可以按ID,姓名,年龄或电子邮件进行查询。

键/值存储更像是一个大的哈希表,而不是传统的数据库:每个键对应一个值,通过一个键查找是访问记录的唯一方法。这意味着它更简单,通常更快,但很难用于复杂的数据。

示例记录:

12345 => "Fred,fred@example.com,20"

您只能使用12345作为查询条件。您无法查询姓名,电子邮件或年龄。

答案 1 :(得分:5)

以下是一些常见数据模型的描述:

  • 关系系统是我们一段时间以来一直在使用的数据库。支持ACIDity和连接的RDBMS和系统被认为是关系型的。
  • 键值系统基本上支持基于主键的get,put和delete操作。
  • 面向列的系统仍然使用表但没有连接(必须在应用程序中处理连接)。显然,它们按列存储数据,而不是传统的面向行的数据库。这使聚合变得更加容易。
  • 面向文档的系统存储结构化的“文档”,例如JSON或XML,但没有连接(必须在应用程序中处理连接)。将数据从面向对象的软件映射到这些系统非常容易。

在这篇博文中,我写道:Visual Guide to NoSQL Systems

答案 2 :(得分:2)

来自维基百科:

  • Document data store:与关系数据库相反,基于文档的数据库不会将数据存储在每个记录中具有统一大小字段的表中。相反,每条记录都存储为具有某些特征的文档。可以将任意长度的任意数量的字段添加到文档中。字段还可以包含多个数据。
  • Key Value:关联数组(也是关联容器,地图,映射,字典,有限映射,以及查询处理索引或索引文件)是一种抽象数据类型,由一组唯一键和一组值,其中每个键与一个值(或一组值)相关联。查找与键关联的值的操作称为查找或索引,这是关联数组支持的最重要的操作。密钥与其值之间的关系有时称为映射或绑定。例如,如果与键“bob”关联的值为7,则表示我们的数组将“bob”映射为7。

NoSQL的更多示例。