OrientDB - Основные понятия

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

Модель документа

Терминология «Модель документа» относится к базе данных NoSQL. Это означает, что данные хранятся в документах, а группа документов называетсяCollection. Технически документ означает набор пар ключ / значение, также называемый полями или свойствами.

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

В следующей таблице показано сравнение реляционной модели, модели документа и модели документа OrientDB.

Реляционная модель Модель документа Модель документа OrientDB
Стол Коллекция Класс или кластер
Строка Документ Документ
Столбец Пара ключ / значение Поле документа
Отношения Недоступен Ссылка

Модель графа

Структура данных графа - это модель данных, которая может хранить данные в виде вершин (узлов), связанных между собой ребрами (дугами). Идея графической базы данных OrientDB пришла из графа свойств. Вершина и ребро - главные артефакты модели Graph. Они содержат свойства, которые могут сделать их похожими на документы.

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

Реляционная модель Модель графа Модель графика OrientDB
Стол Класс вершины и ребра Класс, расширяющий "V" (для вершины) и "E" (для ребер)
Строка Вершина Вершина
Столбец Vertex and Edge свойство Vertex and Edge свойство
Отношения Край Край

Модель ключ / значение

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

В следующей таблице показано сравнение реляционной модели, модели «ключ / значение» и модели «ключ / значение» OrientDB.

Реляционная модель Модель ключа / значения Модель ключа / значения OrientDB
Стол Ведро Класс или кластер
Строка Пара ключ / значение Документ
Столбец Недоступен Поле документа или свойство Vertex / Edge
Отношения Недоступен Ссылка

Объектная модель

Эта модель унаследована от объектно-ориентированного программирования и поддерживает Inheritance между типами (подтипы расширяют супертипы), Polymorphism когда вы ссылаетесь на базовый класс и Direct binding from / to Объекты, используемые в языках программирования.

В следующей таблице показано сравнение реляционной модели, объектной модели и объектной модели OrientDB.

Реляционная модель Объектная модель Объектная модель OrientDB
Стол Класс Класс или кластер
Строка Объект Документ или вершина
Столбец Свойство объекта Поле документа или свойство Vertex / Edge
Отношения Указатель Ссылка

Прежде чем углубляться в детали, лучше узнать основную терминологию, связанную с OrientDB. Ниже приведены некоторые важные термины.

Запись

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

  • Document
  • Запись байтов
  • Vertex
  • Edge

ID записи

Когда OrientDB генерирует запись, сервер базы данных автоматически присваивает записи идентификатор объекта, называемый RecordID (RID). RID выглядит как # <cluster>: <position>. <cluster> означает идентификационный номер кластера, а <position> означает абсолютное положение записи в кластере.

Документы

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

С документами легко работать с помощью экспорта и импорта в формате JSON. Например, взгляните на следующий образец документа JSON. Он определяет детали документа.

{ 
   "id"        : "1201", 
   "name"      : "Jay", 
   "job"       : "Developer", 
   "creations" : [ 
      { 
         "name"    : "Amiga", 
         "company" : "Commodore Inc." 
      }, 
		
      { 
         "name"    : "Amiga 500", 
         "company" : "Commodore Inc." 
      } 
   ] 
}

RecordBytes

Тип записи такой же, как тип BLOB в СУБД. OrientDB может загружать и сохранять документ Тип записи вместе с двоичными данными.

Вершина

База данных OrientDB - это не только база данных документов, но и база данных Graph. Новые концепции, такие как Vertex и Edge, используются для хранения данных в форме графа. В графовых базах данных самой базовой единицей данных является узел, который в OrientDB называется вершиной. Vertex хранит информацию для базы данных.

Край

Существует отдельный тип записи, называемый Edge, который соединяет одну вершину с другой. Ребра двунаправлены и могут соединять только две вершины. В OrientDB есть два типа ребер: обычные и легкие.

Класс

Класс - это тип модели данных и концепция, взятая из парадигмы объектно-ориентированного программирования. Основываясь на традиционной модели базы данных документов, данные хранятся в форме коллекции, тогда как в модели реляционной базы данных данные хранятся в таблицах. OrientDB следует API документов вместе с парадигмой OPPS. По идее, класс в OrientDB имеет наиболее тесную связь с таблицей в реляционных базах данных, но (в отличие от таблиц) классы могут быть без схемы, с полной схемой или смешанными. Классы могут наследовать от других классов, создавая деревья классов. У каждого класса есть свой кластер или кластеры (создаются по умолчанию, если они не определены).

Кластер

Кластер - это важное понятие, которое используется для хранения записей, документов или вершин. Проще говоря, кластер - это место, где хранится группа записей. По умолчанию OrientDB создает по одному кластеру для каждого класса. Все записи класса хранятся в одном кластере с тем же именем, что и класс. В базе данных можно создать до 32 767 (2 ^ 15-1) кластеров.

Класс CREATE - это команда, используемая для создания кластера с определенным именем. После создания кластера вы можете использовать кластер для сохранения записей, указав имя во время создания любой модели данных.

Отношения

OrientDB поддерживает два типа отношений: ссылочные и встроенные. Referenced relationships означает, что он хранит прямую ссылку на целевые объекты отношений. Embedded relationshipsозначает, что отношения хранятся в записи, в которую они включены. Эта связь сильнее эталонной.

База данных

База данных - это интерфейс для доступа к реальному хранилищу. ИТ-отдел понимает высокоуровневые концепции, такие как запросы, схемы, метаданные, индексы и т. Д. OrientDB также предоставляет несколько типов баз данных. Дополнительные сведения об этих типах см. В разделе Типы баз данных.