Neo4j

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

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

Разработчик

Neo Technology

Написана на

Java[1]

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

2007

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

Java Virtual Machine

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

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

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

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

Лицензия

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

Сайт

neo4j.com

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

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

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

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

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

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

  1. английская Википедия — 2001.
  2. 1 2 https://github.com/neo4j/neo4j
  3. DB-Engines Ranking of Graph DBMS
  4. Shashank Tiwari, Shashank Tiwari. Professional NoSQL. — John Wiley & Sons, 2011. — P. 19–20. — ISBN 978-1-118-16780-9.
  5. Raj, 2015, pp. 16.
  6. Raj, 2015, Chapter 1.
  7. Gupta, 2015, pp. 168-169.
  8. 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.

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