Основные принципы СУБД ODANT

Несмотря на то, что базовая парадигма ODANT — объектная, ODANT не является традиционной узкоспециализированной объектной СУБД. ODANT включает в себя несколько подходов к работе с данными, свойственных различным СУБД.  

Реляционная БД

Весомое преимущество РСУБД — большие возможности по выполнению различных запросов к базе данных, работа с аналитическими данными и отчетами. Это обеспечивается наличием схемы данных и специализированным языком запросов SQL.

ODANT является NoSQL базой данных. То есть, в ODANT нельзя оперировать данными с помощью SQL-запросов. Однако при этом доступны возможности, аналогичные средствам РСУБД: создание модели данных и язык запросов (XQuery).

Структура класса в ODANT описана метаданными, как в табличной БД. Данные объекта могут рассматриваться как табличные, только таблицы сгруппированы вокруг одной сущности — объекта, в отличие от традиционного подхода к расположению данных в типизированных связанных таблицах. Технология ODANT предусматривает возможность устанавливать связи (ссылки) между различными объектами, связывая различные данные между собой.

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

В целом, ODANT не уступает традиционным РСУБД по возможностям и производительности. В ряде задач скорость обработки данных будет значительно превышать показатели РСУБД.

Документоориентированная БД

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

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

Иерархическая БД

Иерархические базы данных подразумевают возможности создавать иерархии данных. Это удобно при создании систем, связанных с иерархически построенной деятельность — например, работа головной компании и филиалов. 

В ODANT имеется возможность реализовывать различные иерархии. Между объектами, между классами, между базами данных, между серверами. При этом реализованы стандартные механизмы миграции: сверху вниз движутся правила, снизу вверх — данные.

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

Native XML

Преимущества баз данных, которые хранят данные в XML формате — удобство работы с данными. XML — самочитаемый формат, который стандартизирован и активно используется повсеместно. Данные можно понять даже не имея описанной структуры.

В ODANT работа с данными ведется в XML-формате, для манипуляции используется язык XQuery. Фактически данные хранятся в упакованном бинарном виде (формат OBX — Object Binary XML). Главная проблема при работе с XML — это низкая скорость работы с данными. В ходе оптимизации производительности при разработке ядра ODANT был реализован собственный XML-парсер, результат — показатели скорости значительно превышают достижения существующих Native XML решений. По производительности в работе с данными ODANT не уступает РСУБД, а во многих задачах — и превосходит.

Key-value хранилища

В БД «ключ-значение» каждая сущность в коллекции имеет уникальный ключ, и по нему можно быстро получить доступ к любой сущности без выполнения запроса на фильтрацию и поиск.

В ODANT, в отличие от классической key-value БД, ключ (идентификатор) каждой сущности уникален в рамках сети ODANT. Зная идентификатор (и обладая необходимыми правами) можно получить доступ к сущности вне зависимости от того, на каком сервере сети ODANT она находится.

СУБД ODANT:

  • способна быстро выполнять сложные запросы на обработку данных, как РСУБД;
  • высокопроизводительна в задачах вставки/модификации, как NoSQL;
  • работает со стандартизованными форматами хранения, основанными на XML;
  • реализует иерархию данных, как иерархические СУБД.