📜  ArangoDB-多模型优先数据库

📅  最后修改于: 2020-11-28 13:06:48             🧑  作者: Mango


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

分层与本机多模型数据库

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

许多数据库供应商称其产品为“多模型”,但是在键/值或文档存储中添加图形图层并不符合本机多模型的条件。

使用ArangoDB(具有相同查询语言的相同核心),可以在单个查询中将不同的数据模型和功能组合在一起,就像我们在上一节中已经提到的那样。在ArangoDB中,数据模型之间没有“切换”,也没有将数据从A转移到B来执行查询。与“分层”方法相比,它为ArangoDB带来了性能优势。

对多模式数据库的需求

解释[Fowler]的基本思想使我们认识到对持久层的不同部分使用各种适当的数据模型的好处,该层是较大软件体系结构的一部分。

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

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

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

通过图形查询,我们的意思是涉及图形理论考虑的查询。特别地,这些可能涉及来自边缘的特定连接性特征。例如, ShortestPath,GraphTraversalNeighbors

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

ArangoDB─功能

ArangoDB有许多值得注意的功能。我们将在下面突出突出的特点-

  • 多模型范例
  • 酸性质
  • HTTP API

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

  • 文件模型
  • 键/值模型
  • 图模型

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

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

ArangoDB允许客户端(例如浏览器)使用HTTP API与数据库进行交互,该API面向资源并且可以使用JavaScript进行扩展。