ArangoDB - 数据模型和建模

在本章中,我们将重点关注以下主题 :

  • 数据库交互

  • 数据模型

  • 数据检索

ArangoDB支持基于文档的数据模型以及基于图形的数据模型.让我们首先描述基于文档的数据模型.

ArangoDB的文档非常类似于JSON格式.文档中包含零个或多个属性,以及每个属性附加的值.值可以是原子类型,例如数字,布尔值或null,文字字符串,也可以是复合数据类型,例如嵌入式文档/对象或数组.数组或子对象可能由这些数据类型组成,这意味着单个文档可以表示非平凡的数据结构.

此外,在层次结构中,文档被排列成集合,其中可能包含没有文件(理论上)或多个文件.可以将文档与行和集合与表进行比较(此处表和行指的是关系数据库管理系统的那些 -  RDBMS).

但是,在RDBMS中,定义列是存储的先决条件将记录记录到表中,调用这些定义模式.但是,作为一个新颖的功能,ArangoDB是无模式的 - 没有先验的理由来指定文档将具有哪些属性.

与RDBMS不同,每个文档都可以在与另一个文件完全不同的方式.这些文档可以一起保存在一个集合中.实际上,集合中的文档之间可能存在共同的特征,但数据库系统(即ArangoDB本身)并不会将您绑定到特定的数据结构.

现在我们将尝试理解ArangoDB的[图形数据模型],它需要两种集合 - 第一种是文档集合(在组理论语言中称为顶点集合),第二种是边集合.这两种类型之间存在细微差别.边缘集合还存储文档,但它们的特征在于包括两个唯一属性 _from _to ,用于创建文档之间的关系.在实践中,文档(读取边缘)链接两个文档(读取顶点),两个文档都存储在它们各自的集合中.这种架构源于标记有向图的图论理论,不包括不仅可以有标签的边,而且可以是一个完整的JSON文件本身.

计算新数据,删除文档或操纵它们,使用查询,根据给定的标准选择或过滤文档.无论是简单的"示例查询"还是像"连接"一样复杂,查询都是用AQL编写的 -  ArangoDB查询语言.