ArangoDB - 多模型第一数据库

ArangoDB被其开发人员誉为本机多模型数据库.这与其他NoSQL数据库不同.在此数据库中,数据可以存储为文档,键/值对或图形.使用单一的声明性查询语言,可以访问您的任何或所有数据.此外,可以在单个查询中组合不同的模型.而且,由于其多模型风格,人们可以制作精益应用程序,可以使用三种数据模型中的任何一种或全部水平扩展.

分层与本机多模型数据库

在本节中,我们将重点介绍本机和分层多模数据库之间的重要区别.

许多数据库供应商将其产品称为"多模型, "但是将图形图层添加到键/值或文档存储不符合本机多模型.

使用相同查询语言的相同核心ArangoDB,可以将它们组合在一起正如我们在前一节中已经说明的那样,单个查询中的不同数据模型和功能.在ArangoDB中,数据模型之间没有"切换",并且没有数据从A转移到B以执行查询.与"分层"方法相比,它为ArangoDB带来了性能优势.

对多模式数据库的需求

解释[福勒]的基本思路让我们意识到为持久层的不同部分使用各种适当的数据模型的好处,该层是更大的软件架构的一部分.

据此,有人可能,例如,使用关系数据库来保存结构化的表格数据;用于非结构化,类似对象的数据的文档存储;哈希表的键/值存储;和高度链接的参考数据的图形数据库.

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

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

通过图形查询,我们指的是涉及图论理论考虑的查询.特别地,这些可能涉及来自边缘的特定连接特征.例如, ShortestPath,GraphTraversal Neighbors .

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

ArangoDB─功能

ArangoDB有各种显着特征.我们将突出显示以下显着特征;

  • 多模式范例

  • ACID属性

  • HTTP API

ArangoDB支持所有流行的数据库模型.以下是ArangoDB支持的一些模型 :

  • 文档模型

  • 键/值模型

  • 图表模型

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

四个属性原子性,一致性,隔离耐久性(ACID)描述了数据库事务的保证. ArangoDB支持符合ACID的事务.

ArangoDB允许客户端(如浏览器)使用HTTP API与数据库交互,API是面向资源的,可通过JavaScript扩展.