ArangoDB - 多模型第一数据库
ArangoDB 被其开发人员誉为原生多模型数据库。这与其他 NoSQL 数据库不同。在此数据库中,数据可以存储为文档、键/值对或图形。使用单一声明性查询语言,可以访问您的任何或所有数据。此外,不同的模型可以组合在一个查询中。而且,由于其多模型风格,人们可以制作精益应用程序,这些应用程序可以使用三种数据模型中的任何一种或全部进行水平扩展。
分层与本机多模型数据库
在本节中,我们将强调本机多模型数据库和分层多模型数据库之间的关键区别。
许多数据库供应商将他们的产品称为“多模型”,但向键/值或文档存储添加图形层并不符合本机多模型的条件。
使用 ArangoDB,相同的核心和相同的查询语言,可以将不同的数据模型和功能组合在一个查询中,正如我们在上一节中已经说过的那样。在ArangoDB中,数据模型之间没有“切换”,也没有将数据从A转移到B来执行查询。与“分层”方法相比,它为 ArangoDB 带来了性能优势。
对多模式数据库的需求
解释[Fowler]的基本思想使我们认识到对持久层的不同部分使用各种适当的数据模型的好处,该层是更大的软件架构的一部分。
据此,例如,可以使用关系数据库来保存结构化的表格数据;非结构化、类对象数据的文档存储;哈希表的键/值存储;以及一个用于高度链接的参考数据的图形数据库。
然而,这种方法的传统实现将导致在同一项目中使用多个数据库。它可能会导致一些操作摩擦(更复杂的部署、更频繁的升级)以及数据一致性和重复问题。
统一三种数据模型的数据后,下一个挑战是设计和实现一种通用查询语言,允许数据管理员表达各种查询,例如文档查询、键/值查找、图形查询和任意组合这些。
通过图形查询,我们指的是涉及图论考虑的查询。特别是,这些可能涉及来自边缘的特定连接特征。例如,ShortestPath、GraphTraversal和Neighbors。
图表非常适合作为关系的数据模型。在许多现实世界的案例中,例如社交网络、推荐系统等,一个非常自然的数据模型是图。它捕获关系并可以保存每个边和每个顶点的标签信息。此外,JSON 文档非常适合存储此类顶点和边数据。
ArangoDB ─ 特点
ArangoDB 有各种值得注意的功能。我们将重点介绍以下突出特点 -
- 多模型范式
- 酸性性质
- HTTP API
ArangoDB 支持所有流行的数据库模型。以下是 ArangoDB 支持的一些模型 -
- 文档模型
- 键/值模型
- 图模型
单一查询语言足以从数据库中检索数据
Atomics性、一致性、隔离性和持久性(ACID)这四个属性描述了数据库事务的保证。ArangoDB 支持符合 ACID 的事务。
ArangoDB 允许客户端(例如浏览器)通过 HTTP API 与数据库交互,该 API 是面向资源的并且可通过 JavaScript 进行扩展。