OrientDB

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
OrientDB
Тип

Графовая база данных, система управления базами данных, открытое программное обеспечение и NoSQL

Разработчик

Orient Technologies LTD

Написана на

Java

Операционная система

Linux, FreeBSD, OpenBSD, Windows, Mac

Первый выпуск

2010-12-6; 2192 дня тому назад

Аппаратная платформа

Java Virtual Machine

Последняя версия

2.2.9 (2016-09-08; 89 дней тому назад)

Тестовая версия

3.0

Состояние

Активный

Лицензия

Apache v2

Сайт

orientdb.com

OrientDB — открытая СУБД, которая объединяет в себе возможности документо-ориентированной и графо-ориентированной БД. Также поддерживается интерфейс объектно-ориентированной БД, который работает поверх документо-ориентированного слоя.[1] 

Код OrientDB написан на языке Java и распространяется под лицензией Apache.

Эта база данных на основе документов, но отношения управляются как в графовых базах с прямым подключением между записями. Она поддерживает схемы: less (слабоструктурированные данные), full (строго задает обязательные поля) и mixed (смешанная: обязательные + необязательные поля). Имеет мощную систему профилирования безопасности, основанную на пользователях и ролях. Поддерживает SQL в качестве языка запросов (newSQL, как называют её разработчики). OrientDB использует новый алгоритм индексации под названием RB+Tree, сочетающий в себе особенности Red-Black Tree и B+-Tree, что позволяет добиться преимущества перед этими двумя алгоритмами за счёт балансировки операций добавления и обновления данных.

Можно вставлять документы, как и любой другой базе данных, основанной на документах, но также поддерживает отношения. Он не использует дорогостоящее JOIN. Вместо этого, OrientDB использует супер-быстрые, постоянные указатели между записями, взятые из мира графовых баз данных. Можно пройти часть или целые деревья и графы записей в течение нескольких миллисекунд.[2][неавторитетный источник? 610 дней]

История[править | править вики-текст]

Главный автор Luca Garulli в 2010 году начал переписывать на Java быстрый слой базы данных Orient ОСУБД, написанный на С++. С 2012 года проект спонсируется компанией Orient Technologies LTD, где главный автор является генеральным директором и основателем.

Luca Garulli начал работать с алгоритмами хранения в 1998 году и создал первую готовую версию OrientDB в начале 2010 года после 17 лет опыта работы с другими СУБД. Он создал новый алгоритм MVRB-Tree (первоначальное называние RB + Tree, но уже существовал другой алгоритм с таким названием) в виде смеси из двух алгоритмов Red-Black Tree и B + Tree. MVRB означает Multi Value Red Black, потому что он хранит несколько значений в каждом узле дерева, вместо одного. Лука является членом Sun Microsystems JDO 1.0 и 2.0 Expert Groups, которые написали стандарт JDO. Он также опубликовал ряд технологических статей в журналах Technet, Computer Programming, IoProgrammer, и Week.it.[3]

Orient Technologies является частной компанией, которая официально ведет разработку проекта с открытым кодом OrientDB. Сегодня Orient Technologies имеет более чем 60 клиентов со всего мира.[4]

Особенности[править | править вики-текст]

  • Полная поддержка ACID транзакций (Atomicity — атомарность,  Consistency — согласованность, Isolation — изолированность, Durability — надежность);
  • Поддержка подмножества языка SQL для выполнения запросов c использованием конструкции SELECT (OrientDB не является реляционной БД, поэтому в полной мере все возможности SQL не поддерживает);
  • Поддержка Хранимых Процедур на языках SQL и Java Script;
  • Поддержка хранения данных без описания предварительной схемы, с описанием полной структуры или в смешанном режиме;
  • 100 % совместима со стандартом TinkerPop Blueprints для графо-ориентированных БД;
  • Поддержка языка запросов Gremlin;
  • Поддерживает HTTP, REST и JSON протоколы без использования сторонних компонентов;
  • Возможность работы как в режиме встраивания в другие приложения, так и в качестве выделенного сервера;
  • Возможность отката внесённых в документ локальных изменений (ODocument.undo);
  • Имеет очень малый размер и не имеет сторонних зависимостей;
  • Поддерживается строгая политика разграничения доступа на основе ролей и полномочий пользователей;
  • Дистрибутив полностью самодостаточен;
  • Дистрибутив содержит Web-Studio (инструмент разработки и администрирования);
  • Поддерживает отказоустойчивые конфигурации и репликацию (архитектура OrientDB изначально рассчитана на мультимастер репликацию);
  • Поддержка запуска скриптов на стороне сервера (Server Side Scripting);
  • Доступна коммерческая поддержка.

OrientDB Web-Studio[править | править вики-текст]

Web-Studio - это веб-интерфейс (на собственном веб-сервере, порт TCP/2480) для разработчика и системного администратора. Web-Studio присутствует в дистрибутиве OrientDB и содержит средства для:

  • Управления правами доступа и Базами Данных;
  • Просмотра и изменения структур данных (Классы и Ребра) и самих Данных;
  • Просмотра и изменения Данных в виде визуального построения графов;
  • Составления и выполнения запросов к БД посредством newSQL;
  • Составления и выполнения запросов к БД посредством HTTP REST;
  • Написания и выполнения Хранимых Процедур (SQL, Java Script);
  • Профилирования выполнения запросов к OrientDB (только в Enterprise Edition);
  • Управление конфигурацией и мониторинг Кластера (только в Enterprise Edition);

См. также[править | править вики-текст]

Литература[править | править вики-текст]

Примечания[править | править вики-текст]

Ссылки[править | править вики-текст]