Учебники

ArangoDB — мультимодельная первая база данных

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.