- ArangoDB 教程
- ArangoDB - 首页
- 一款多模型优先数据库
- ArangoDB – 优势
- 基本概念和术语
- ArangoDB – 系统要求
- ArangoDB – 命令行
- ArangoDB - Web界面
- ArangoDB - 案例场景
- 数据模型和建模
- ArangoDB - 数据库方法
- ArangoDB - CRUD 操作
- 使用Web界面进行CRUD操作
- 使用AQL查询数据
- ArangoDB - AQL示例查询
- ArangoDB – 如何部署
- ArangoDB 有用资源
- ArangoDB - 快速指南
- ArangoDB - 有用资源
- ArangoDB - 讨论
ArangoDB - 一款多模型优先数据库
ArangoDB被其开发者誉为原生多模型数据库,这与其他NoSQL数据库不同。在这个数据库中,数据可以存储为文档、键值对或图。使用单一的声明式查询语言,可以访问所有或任何数据。此外,不同的模型可以组合在一个查询中。而且,由于其多模型风格,可以构建精简的应用程序,这些应用程序可以利用所有三种数据模型进行水平扩展。
分层与原生多模型数据库
在本节中,我们将重点介绍原生多模型数据库和分层多模型数据库之间的关键区别。
许多数据库厂商将其产品称为“多模型”,但是向键值存储或文档存储添加图层并不算作原生多模型。
使用ArangoDB,可以使用相同的核心和相同的查询语言,将不同的数据模型和特性组合在一个查询中,正如我们在上一节中已经说明的那样。在ArangoDB中,不存在数据模型之间的“切换”,也不存在为了执行查询而将数据从A移动到B的情况。与“分层”方法相比,这使得ArangoDB具有性能优势。
对多模型数据库的需求
解读[Fowler的]基本思想,我们可以意识到使用各种适当的数据模型来处理持久层不同部分的好处,该层是更大软件架构的一部分。
根据这一点,例如,可以使用关系数据库来持久化结构化的表格数据;使用文档存储来存储非结构化的、类似对象的数据;使用键值存储来存储哈希表;使用图数据库来存储高度关联的引用数据。
然而,这种方法的传统实现会导致在同一个项目中使用多个数据库。这可能会导致一些操作摩擦(更复杂的部署,更频繁的升级),以及数据一致性和重复问题。
在统一三种数据模型的数据之后,下一个挑战是设计和实现一种通用的查询语言,允许数据管理员表达各种查询,例如文档查询、键值查找、图查询以及这些查询的任意组合。
所谓**图查询**,是指涉及图论考虑的查询。特别是,这些可能涉及来自边的特定连接特性。例如,**最短路径、图遍历**和**邻居**。
图作为关系的数据模型非常合适。在许多现实世界的情况中,例如社交网络、推荐系统等,一个非常自然的数据模型就是一个图。它捕获关系,并且可以在每个边和每个顶点上保存标签信息。此外,JSON文档非常适合存储这种类型的顶点和边数据。
ArangoDB ─ 特性
ArangoDB有许多值得注意的特性。我们将重点介绍以下突出特性:
- 多模型范式
- ACID特性
- HTTP API
ArangoDB支持所有流行的数据库模型。以下是ArangoDB支持的一些模型:
- 文档模型
- 键值模型
- 图模型
只需要一种查询语言就可以从数据库中检索数据
四个特性**原子性、一致性、隔离性**和**持久性**(ACID)描述了数据库事务的保证。ArangoDB支持符合ACID的事务。
ArangoDB允许客户端(例如浏览器)使用HTTP API与数据库交互,该API是面向资源的,并且可以使用JavaScript进行扩展。