文章目录
参考文档: 官方文档
使用版本:ArangoDB v3.9.2
一、ArangoDB 简介
ArangoDB是一个本地多模型数据库,具有针对文档、图形和键值的灵活数据模型。使用方便的类似SQL的查询语言或JavaScript扩展构建高性能应用程序。
特点:
- 使用方便,类SQL语言或JavaScript 扩展构建高性能应用程序。
- 支持 ACID 事务
- 只需要点击鼠标即可实现水平和垂直缩放
- 支持集群,且安装方便,就像在手机上安装应用程序
- 灵活的数据模型,数据建模支持键值对、文档护图标的组合。(适合社交关系)
- 高吞吐量
- 支持复制和分片,在活动故障转移配置中设置备份的数据库,或将更大的数据集分布在多个服务器上
- 可配置的持久性:让应用程序决定是否需要更高的持久性或更高的性能
- No-nonsense 存储,使用现代存储硬件的所有功能,如 SSD 和 内存缓存
- 支持 JavaScript 语言运用在前端和后端。
二、ArangoDB 数据模型和概念
参考文档:官方文档
ArangoDB 是一个为用户提供文档的数据库。这些文档通过 TCP 连接使用 JSON 传输,使用 HTTP 协议。提供了一套 REST API 来与数据库系统进行交互。
2.1 ArangoDB的数据库交互
ArangoDB 的组成:参考文档
- arangodb,提供可连接、可交互的 ArangoDB服务器
- Aardvark,Web界面,提供易于使用的图形用户界面。
- Arangosh,交互式Shell
- 第三方驱动,Java、JavaScript、PHP、GO、C# 等 ,更多可参考
2.2 ArangoDB的数据模型
参考资料:参考文档
ArangoDB 数据模型主要有 Databases,Collections 和 Documents ,还有Graph(将下次学习中详细记录)。
2.2.1 文档 Documents
文档(Documents)可被认为是表中的行。相比 RDBMS,ArangoDB中的文档并不会预先定义有哪些列(即属性)。
任何集合中的每个文档都可以具有任意属性键值对。
单个集合中的文档在实践中可能具有类似的结构,但数据库系统本身不会去加强,并且无论数据是怎样的,ArangoDB提供的机制都会保证文档稳定且快速地运行。
ArangoDB 中的文档严格遵循 JSON 格式,底层则是使用 VelockPack框架进行二进制格式的存储。
文档的其他存储特点:
- 一个文档包含 零个或多个属性,每个属性都有对应的值
- 值的类型可以是一些原子类型,比如 number、string、boolean 或 null
- 值的类型也可以是一些复合类型,即 array 或 document / object
- 单个文档中可以表示任意嵌套的数据结构 <