Arangodb 简明教程

ArangoDB - A Multi-Model First Database

ArangoDB 被其开发者称为原生多模型数据库。这不同于其它 NoSQL 数据库。在此数据库中,数据可以存储为文档、键/值对或图形。并且借助单一的声明式查询语言,可以访问任意或所有数据。此外,可以在单个查询中组合不同的模型。而且,由于其多模型样式,可以制定精益应用程序,这些应用程序将使用任意或全部三种数据模型横向扩展。

Layered vs. Native Multi-Model Databases

在本节中,我们将重点介绍原生多模型数据库与分层多模型数据库之间的关键差异。

许多数据库供应商称自己的产品为“多模型”,但向键/值或文档存储添加图形层并不能算作原生多模型。

借助 ArangoDB,我们可以使用相同查询语言的同一内核,在一个查询中组合不同的数据模型和特性,如我们在上一节中已经指出的那样。在 ArangoDB 中,没有数据模型之间的“切换”,也不存在从 A 到 B 的数据转移来执行查询的情况。与“分层”的方法相比,这为 ArangoDB 带来了性能优势。

The Need for Multimodal Database

解释 [Fowler’s] 的基本思想让我们意识到,使用各种适当的数据模型对持久层(该层是大型软件架构的一部分)的不同部分是有益的。

根据这一点,例如,您可能使用关系数据库来保持结构化表格数据的持久性;使用文档存储来保持非结构化对象数据(如数据);使用键/值存储来保持哈希表的持久性;并且使用图形数据库来保持高度链接的引用数据的持久性。

然而,这种方法的传统实现会导致在同一项目中使用多个数据库。这会导致一些操作摩擦(更复杂的部署、更频繁的升级),以及数据一致性和重复问题。

在统一三个数据模型的数据之后,下一个挑战是设计并实现一种通用查询语言,该语言允许数据管理员表达各种查询,如文档查询、键/值查找、图形查询以及这些查询的任意组合。

graphy queries ,我们的意思是涉及图论考虑因素的查询。特别是,这些可能涉及来自边的特定连接功能。例如, ShortestPath, GraphTraversalNeighbors

图形非常适合作为关系的数据模型。在许多现实世界的情况中,例如社交网络、推荐人系统等,一个非常自然的数据模型是图形。它捕捉关系,并且可以在每个边和每个顶点中包含标签信息。此外,JSON 文档非常适合存储此类型的顶点和边数据。

ArangoDB ─ Features

ArangoDB 有许多值得注意的特性。我们将在下面重点介绍突出的特性 −

  1. Multi-model Paradigm

  2. ACID Properties

  3. HTTP API

ArangoDB 支持所有流行的数据库模型。以下是 ArangoDB 支持的几个模型 −

  1. Document model

  2. Key/Value model

  3. Graph model

一个查询语言就足以从数据库中检索数据

四个属性 Atomicity, Consistency, IsolationDurability (ACID) 描述了数据库事务的保证。ArangoDB 支持符合 ACID 的事务。

ArangoDB 允许浏览器等客户端通过 HTTP API 与数据库交互,该 API 以资源为导向并可使用 JavaScript 进行扩展。