ArangoDB - многомодельная первая база данных

Разработчики называют ArangoDB собственной многомодельной базой данных. Это не похоже на другие базы данных NoSQL. В этой базе данных данные могут храниться в виде документов, пар ключ / значение или графиков. А с помощью единого декларативного языка запросов можно получить доступ к любым или всем вашим данным. Более того, в одном запросе можно комбинировать разные модели. А благодаря многомодельному стилю можно создавать экономичные приложения, которые будут масштабироваться по горизонтали с любой или всеми из трех моделей данных.

Многоуровневые и собственные многомодельные базы данных

В этом разделе мы подчеркнем важное различие между собственными и многоуровневыми многомодельными базами данных.

Многие поставщики баз данных называют свой продукт «многомодельным», но добавление графического слоя в хранилище ключей / значений или в хранилище документов не квалифицируется как собственная мультимодель.

Используя ArangoDB, одно и то же ядро ​​с одним и тем же языком запросов, можно объединить различные модели данных и функции в одном запросе, как мы уже заявляли в предыдущем разделе. В ArangoDB нет «переключения» между моделями данных, и нет сдвига данных от A к B для выполнения запросов. Это приводит к преимуществам в производительности для ArangoDB по сравнению с «многоуровневыми» подходами.

Потребность в мультимодальной базе данных

Интерпретация основной идеи [Фаулера] приводит нас к осознанию преимуществ использования множества подходящих моделей данных для различных частей уровня сохраняемости, который является частью более крупной программной архитектуры.

В соответствии с этим, можно, например, использовать реляционную базу данных для сохранения структурированных табличных данных; хранилище документов для неструктурированных объектно-подобных данных; хранилище ключей / значений для хеш-таблицы; и база данных графов для сильно связанных ссылочных данных.

Однако традиционная реализация этого подхода приведет к использованию нескольких баз данных в одном проекте. Это может привести к некоторым операционным трениям (более сложное развертывание, более частые обновления), а также к проблемам согласованности и дублирования данных.

Следующей задачей после объединения данных для трех моделей данных является разработка и реализация общего языка запросов, который может позволить администраторам данных выражать различные запросы, такие как запросы документов, поиск ключей / значений, графические запросы и произвольные комбинации. из этих.

По graphy queries, мы имеем в виду запросы, связанные с рассмотрением теории графов. В частности, они могут включать в себя особые возможности подключения, идущие от краев. Например,ShortestPath, GraphTraversal, и Neighbors.

Графы идеально подходят в качестве модели данных для отношений. Во многих реальных случаях, таких как социальные сети, система рекомендаций и т. Д., Очень естественной моделью данных является граф. Он фиксирует отношения и может содержать информацию о метках каждого ребра и каждой вершины. Кроме того, документы JSON идеально подходят для хранения данных о вершинах и ребрах этого типа.

ArangoDB ─ Возможности

В ArangoDB есть различные примечательные особенности. Мы выделим основные особенности ниже -

  • Мультимодельная парадигма
  • КИСЛОТНЫЕ Свойства
  • HTTP API

ArangoDB поддерживает все популярные модели баз данных. Ниже приведены несколько моделей, поддерживаемых ArangoDB.

  • Модель документа
  • Модель ключ / значение
  • Графическая модель

Одного языка запросов достаточно для извлечения данных из базы данных

Четыре свойства Atomicity, Consistency, Isolation, и Durability(ACID) описывают гарантии транзакций базы данных. ArangoDB поддерживает транзакции, совместимые с ACID.

ArangoDB позволяет клиентам, таким как браузеры, взаимодействовать с базой данных с помощью HTTP API, который ориентирован на ресурсы и расширяется с помощью JavaScript.