【问题标题】:What is 'document data store' and 'key-value data store'?什么是“文档数据存储”和“键值数据存储”?
【发布时间】:2011-02-03 19:47:37
【问题描述】:

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

请用非常简单和笼统的语言描述它们背后的机制。

【问题讨论】:

    标签: database nosql terminology


    【解决方案1】:

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

    示例记录:

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

    然后您可以通过 id、姓名、年龄或电子邮件进行查询。

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

    示例记录:

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

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

    【讨论】:

    • 那它们不是完全一样的东西,只是名字不同吗?
    • 存在速度/复杂性权衡...我试图在上面澄清。
    【解决方案2】:

    下面介绍几种常见的数据模型:

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

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

    【讨论】:

      【解决方案3】:

      来自维基百科:

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

      更多示例请访问NoSQL

      【讨论】:

        猜你喜欢
        • 2012-09-01
        • 2012-09-10
        • 2022-08-05
        • 2019-09-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-29
        相关资源
        最近更新 更多