ArangoDB провозглашается разработчиками как родная многомодельная база данных. Это в отличие от других баз данных NoSQL. В этой базе данных данные могут храниться в виде документов, пар ключ / значение или графиков. И с одним декларативным языком запросов, любой или все ваши данные могут быть доступны. Кроме того, различные модели могут быть объединены в одном запросе. И, благодаря его мультимодельному стилю, можно создавать простые приложения, которые будут масштабироваться по горизонтали с любой или всеми тремя моделями данных.
Слоистые и родные многомодельные базы данных
В этом разделе мы выделим принципиальное различие между нативной и многоуровневой многоуровневой базой данных.
Многие поставщики баз данных называют свой продукт «мультимоделью», но добавление графического слоя в хранилище ключей / значений или документов не считается нативной мультимоделью.
С ArangoDB, одним и тем же ядром с одним и тем же языком запросов, можно объединить разные модели данных и функции в одном запросе, как мы уже указывали в предыдущем разделе. В ArangoDB нет «переключения» между моделями данных, и нет перемещения данных от A к B для выполнения запросов. Это приводит к преимуществам производительности для ArangoDB по сравнению с «многоуровневыми» подходами.
Потребность в мультимодальной базе данных
Интерпретация основной идеи [Фаулера] приводит нас к пониманию преимуществ использования различных подходящих моделей данных для разных частей персистентного уровня, причем этот уровень является частью более широкой архитектуры программного обеспечения.
В соответствии с этим можно, например, использовать реляционную базу данных для сохранения структурированных табличных данных; хранилище документов для неструктурированных, объектоподобных данных; хранилище ключей / значений для хеш-таблицы; и графовая база данных для сильно связанных ссылочных данных.
Однако традиционная реализация этого подхода приведет к использованию нескольких баз данных в одном проекте. Это может привести к некоторым операционным трениям (более сложное развертывание, более частые обновления), а также к проблемам согласованности данных и дублирования.
Следующая задача после объединения данных для трех моделей данных заключается в разработке и реализации общего языка запросов, который может позволить администраторам данных выражать различные запросы, такие как запросы документов, поиск по ключу / значению, графические запросы и произвольные комбинации. из этих.
Под графическими запросами мы подразумеваем запросы, включающие теоретико-графические соображения. В частности, они могут включать в себя конкретные возможности подключения, поступающие с краев. Например, ShortestPath, GraphTraversal и Соседи .
Графики идеально подходят в качестве модели данных для отношений. Во многих реальных случаях, таких как социальная сеть, система рекомендаций и т. Д., Очень естественной моделью данных является график. Он захватывает отношения и может содержать информацию метки с каждым ребром и с каждой вершиной. Кроме того, документы JSON естественным образом подходят для хранения данных вершин и ребер этого типа.
ArangoDB ─ Особенности
Существуют различные примечательные особенности ArangoDB. Мы выделим основные функции ниже —
- Мультимодельная парадигма
- ACID Свойства
- HTTP API
ArangoDB поддерживает все популярные модели баз данных. Ниже приведены несколько моделей, поддерживаемых ArangoDB —
- Модель документа
- Модель ключ / значение
- Модель графика
Для извлечения данных из базы данных достаточно одного языка запросов.
Четыре свойства атомарности, согласованности, изоляции и долговечности (ACID) описывают гарантии транзакций базы данных. ArangoDB поддерживает ACID-совместимые транзакции.
ArangoDB позволяет клиентам, таким как браузеры, взаимодействовать с базой данных через HTTP API, API ориентирован на ресурсы и расширяется с помощью JavaScript.