Neo4j

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Neo4j
Neo4j-2015-logo.png
Тип

Графовая СУБД

Разработчик

Neo Technology

Написана на

Java

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

2007

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

Java Virtual Machine

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

2.3.2 (2016-01-18; 694 дня тому назад)

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

3.0.0-M02 (2015-12-24; 719 дней тому назад)

Лицензия

GNU GPL 3[1] и GNU AGPL v3[d][1]

Сайт

neo4j.com

Commons-logo.svg Neo4j на Викискладе

Neo4j — графовая система управления базами данных с открытым исходным кодом, реализованная на Java. По состоянию на 2015 год считается самой распространённой графовой СУБД[2]. Разработчик — американская компания Neo Technology, разработка ведётся с 2003 года[3].

Данные хранит в собственном формате, специализированно приспособленном для представления графовой информации, такой подход в сравнении с моделированием графовой базы данных средствами реляционной СУБД позволяет применять дополнительную оптимизацию в случае данных с более сложной структурой[4]. Также утверждается о наличии специальных оптимизаций для SSD-накопителей, при этом для обработки графа не требуется его помещение целиком в оперативную память вычислительного узла, таким образом, возможна обработка достаточно больших графов.

Основные транзакционные возможности[5] — поддержка ACID и соответствие спецификациям JTA, JTS и XA. Интерфейс программирования приложений для СУБД реализован для многих языков программирования, включая Java, Python, Clojure, Ruby, PHP, также реализовано API в стиле REST. Расширить программный интерфейс можно как с помощью серверных плагинов, так и с помощью неуправляемых расширений (unmanaged extensions); плагины могут добавлять новые ресурсы к REST-интерфейсу для конечных пользователей, а расширения позволяют получить полный контроль над программным интерфейсом, и могут содержать произвольный код, поэтому их следует использовать с осторожностью[6].

В СУБД используется собственный язык запросов — Cypher[en], но запросы можно делать и другими способами, например, напрямую через Java API и на языке Gremlin[en], созданном в проекте с открытым исходным кодом TinkerPop. Cypher является не только языком запросов, но и языком манипулирования данными, так как предоставляет функции CRUD для графового хранилища[7].

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

  1. 1 2 3 4 https://github.com/neo4j/neo4j
  2. DB-Engines Ranking of Graph DBMS
  3. Shashank Tiwari, Shashank Tiwari. Professional NoSQL. — John Wiley & Sons, 2011. — P. 19–20. — ISBN 978-1-118-16780-9.
  4. Raj, 2015, pp. 16.
  5. Raj, 2015, Chapter 1.
  6. Gupta, 2015, pp. 168-169.
  7. Holzschuher, Florian and Peinl, Rene (2013). "Performance of Graph Query Languages: Comparison of Cypher, Gremlin and Native Access in Neo4J" in EDBT '13. Proceedings of the Joint EDBT/ICDT 2013 Workshops: 195-204, Genoa, Italy: ACM. DOI:10.1145/2457317.2457351. Проверено 2015-04-19. 

Литература[править | править код]

Дополнительно
  • Ian Robinson, Jim Webber, Emil Eifrem. Graph Databases. — 2nd edition. — O'Reilly Media, Inc., 2015. — 238 p. — ISBN 978-1-4919-3089-2.

Ссылки[править | править код]