📜  NoSQL 中的面向聚合的数据库

📅  最后修改于: 2022-05-13 01:56:13.102000             🧑  作者: Mango

NoSQL 中的面向聚合的数据库

面向聚合的数据库是不支持 ACID 事务的 NoSQL 数据库,它们牺牲了 ACID 属性之一。聚合定向操作与关系数据库操作不同。我们可以在面向聚合的数据库上执行 OLAP 操作。如果数据事务和交互发生在同一个聚合中,则面向聚合的数据库的效率很高。可以将多个数据字段放入聚合中,以便可以共同访问它们。我们一次只能操作一个聚合。我们不能以原子方式一次操作多个聚合。

聚合 - 面向数据库分为四种主要数据模型。它们如下:

  • 核心价值
  • 文档
  • 列族
  • 基于图

上面的每个数据模型都有自己的查询语言。

  • 键值数据模型:键值和文档数据库是高度面向聚合的。键值数据模型包含用于访问聚合数据的键或 Id。键值数据模型非常安全,因为聚合对数据库是不透明的。聚合被加密为可以使用密钥或 id 解密的比特的大博客。在键值数据模型中,我们可以在其中放置任何结构和数据类型的数据。键值数据模型的优点是我们可以将敏感信息存储在聚合中。但是这种模型的缺点是数据库有一些一般的大小限制。我们只能存储有限的数据。
  • 文档数据模型:在文档数据模型中,我们可以访问聚合的各个部分。该模型中的数据可以以不灵活的方式访问。我们可以根据聚合中的字段向数据库提交查询。在此数据模型中要调整的数据的结构和数据类型存在限制。文档数据模型可以访问聚合的结构。
  • 列族数据模型:列族也称为两级映射。但是,然而,我们考虑结构,它一直是影响后来数据库如 HBase 和 Cassandra 的模型。这些具有大表式数据模型的数据库通常被称为列存储。列族模型将聚合划分为列族。 Column-family 模型是一个两级聚合结构。第一级别由作为选择聚合的行标识符的键组成。列族数据模型中的二级值称为列。

面向聚合的数据库

  • 在上面的示例中,行键是 234,它选择聚合。此处的行键选择列族客户和订单。每个列族都包含数据列。在订单列族中,我们有客户下的订单。
  • 图数据模型:在图数据模型中,数据存储在由边连接的节点中。这种模型更适合存储大量复杂的聚合和多维数据,它们之间有很多互连。 Graph Data Model 有这样的应用程序,我们可以将 Facebook 用户帐户存储在节点中,并通过跟踪图的边缘找出特定用户的朋友。

Facebook 好友列表图

我们可以通过观察这个图数据模型找到一个人的朋友。如果两个节点之间有一条边,那么我们可以说它们是朋友。这里我们还考虑了节点之间的间接链接来确定好友建议。