Учебники

ArangoDB — Модели данных и моделирование

В этой главе мы сосредоточимся на следующих темах —

  • Взаимодействие с базой данных
  • Модель данных
  • Извлечение данных

ArangoDB поддерживает модель данных на основе документов, а также модель данных на основе графиков. Давайте сначала опишем модель данных на основе документа.

Документы ArangoDB очень похожи на формат JSON. В документе содержится ноль или более атрибутов, а значение присваивается каждому атрибуту. Значение может быть атомарного типа, такого как число, логическое или нулевое, литеральная строка, или составного типа данных, такого как внедренный документ / объект или массив. Массивы или подобъекты могут состоять из этих типов данных, что подразумевает, что один документ может представлять нетривиальные структуры данных.

Далее в иерархии документы организованы в коллекции, которые могут не содержать документов (теоретически) или более одного документа. Можно сравнить документы со строками, а коллекции с таблицами (здесь таблицы и строки относятся к системам управления реляционными базами данных — RDBMS).

Но в СУБД определение столбцов является обязательным условием для сохранения записей в таблице, вызывая схемы этих определений. Однако, как новая функция, ArangoDB не содержит схем — нет априорной причины для указания, какие атрибуты будут иметь документ.

И в отличие от РСУБД, каждый документ может быть структурирован совершенно иначе, чем другой документ. Эти документы могут быть сохранены вместе в одной коллекции. Практически, общие характеристики могут существовать среди документов в коллекции, однако система баз данных, то есть сама ArangoDB, не привязывает вас к конкретной структуре данных.

Теперь мы попытаемся понять [ модель данных графа ] ArangoDB, для которой требуются два вида коллекций — первый — это наборы документов (известные как группы вершин на языке теории групп), второй — наборы ребер. Между этими двумя типами есть тонкая разница. В пограничных коллекциях также хранятся документы, но они характеризуются наличием двух уникальных атрибутов: _from и _to для создания отношений между документами. На практике документ (край чтения) связывает два документа (вершины чтения), оба хранятся в своих соответствующих коллекциях. Эта архитектура основана на теоретико-графической концепции помеченного ориентированного графа, исключая ребра, которые могут иметь не только метки, но и сам по себе может быть полным JSON-подобным документом.

Для вычисления свежих данных, удаления документов или управления ими используются запросы, которые выбирают или фильтруют документы в соответствии с заданными критериями. Будучи простыми в качестве «примера запроса» или такими же сложными, как «соединения», запросы кодируются на языке запросов AQL — ArangoDB.