Neo4j: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[непроверенная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
Нет описания правки
Строка 11: Строка 11:
}}
}}


'''Neo4j''' — [[графовая база данных]] с [[открытый исходный код|открытым исходным кодом]], реализованная на [[Java]]. Разработана в Neo technologies в 2003 году<ref>{{книга
'''Neo4j''' — [[графовая база данных]] с [[открытый исходный код|открытым исходным кодом]], реализованная на [[Java]]. Разработана в [[Neo Technology]] в 2003 году<ref>{{книга
| автор = Shashank Tiwari, Shashank Tiwari
| автор = Shashank Tiwari, Shashank Tiwari
| заглавие = Professional NoSQL
| заглавие = Professional NoSQL
Строка 22: Строка 22:
Разработчики описывают свой продукт как «встраиваемая база данных, полнотранзакционный Java-движок, который хранит данные в упорядоченных [[граф (математика)|графах]], а не в таблицах».
Разработчики описывают свой продукт как «встраиваемая база данных, полнотранзакционный Java-движок, который хранит данные в упорядоченных [[граф (математика)|графах]], а не в таблицах».


Neo4j имеет свой собственный формат хранилища узлов (node) и связей (relationships). Нативное представление графа, в отличие от моделирования хранилища на [[Реляционная база данных|реляционной базе данных]], позволяет применять дополнительную оптимизацию в случае данных с более сложной структурой{{sfn|Raj|2015|pp=16}}.
Neo4j имеет собственный формат хранилища узлов (node) и связей (relationships). Нативное представление графа, в отличие от моделирования хранилища на [[Реляционная база данных|реляционной базе данных]], позволяет применять дополнительную оптимизацию в случае данных с более сложной структурой{{sfn|Raj|2015|pp=16}}.


== Возможности ==
== Возможности ==

Версия от 13:08, 29 июля 2016

Neo4j
Логотип программы Neo4j
Тип Графовая база данных
Разработчик Neo Technology
Написана на Java и Scala
Первый выпуск февраль 2010[1]
Аппаратная платформа Java Virtual Machine
Последняя версия 2.3.2 (18 января 2016; 8 лет назад (2016-01-18))
Тестовая версия 3.0.0-M02 (24 декабря 2015; 8 лет назад (2015-12-24))
Репозиторий github.com/neo4j/neo4j
Лицензия GNU GPL 3[2] и AGPL v3.0[2]
Сайт neo4j.com
Логотип Викисклада Медиафайлы на Викискладе

Neo4j — графовая база данных с открытым исходным кодом, реализованная на Java. Разработана в Neo Technology в 2003 году[3].

Разработчики описывают свой продукт как «встраиваемая база данных, полнотранзакционный Java-движок, который хранит данные в упорядоченных графах, а не в таблицах».

Neo4j имеет собственный формат хранилища узлов (node) и связей (relationships). Нативное представление графа, в отличие от моделирования хранилища на реляционной базе данных, позволяет применять дополнительную оптимизацию в случае данных с более сложной структурой[4].

Возможности

Neo4j обладает следующими свойствами и возможностями[5]:

  • Поддержка ACID
  • Соответствие JTA, JTS, XA
  • Визуализация графовых данных в дополнение к модели данных, ориентированной на графы
  • Наличие документации и активного сообщества разработчиков
  • Интерфейс программирования приложений для многих языков программирования, включая Java, Python, Clojure, Ruby.
  • REST-интерфейс
  • Нативный формат хранения графов и оптимизированный (в том числе для SSD-накопителей) дисковый менеджер хранилища
  • Масштабируемость: один экземпляр СУБД может обслуживать графы с миллиардами узлов и связей.
  • Мощный механизм обхода графа
  • Может обрабатывать графы, которые полностью не помещаются в оперативной памяти
  • Официальная поддержка работы в Кластере Docker

Расширение

Расширить программный интерфейс (API) можно как с помощью серверных плагинов, так и с помощью неуправляемых расширений (unmanaged extensions). Плагины могут добавлять новые ресурсы к REST-интерфейсу для конечных пользователей. Расширения позволяют получить полный контроль над программным интерфейсом, и могут содержать произвольный код, поэтому их следует использовать с осторожностью[6].

Язык запросов

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

Распространение

На апрель 2015 года Neo4j самая распространённая БД c графовой моделью данных[8].

Используется в компаниях: e-bay, Walmart, National Geographic, HP, CISCO и другими.

История

Выпуск Neo4j версии 1.0 был в феврале 2010 г. Версия 2.0 была выпущена в декабре 2013 г.

Примечания

  1. https://neo4j.com/blog/neo4j-1-0-released/
  2. 1 2 https://github.com/neo4j/neo4j
  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". Proceedings of the Joint EDBT/ICDT 2013 Workshops. EDBT '13. Genoa, Italy: ACM. pp. 195–204. doi:10.1145/2457317.2457351. {{cite conference}}: |access-date= требует |url= (справка); Неизвестный параметр |booktitle= игнорируется (|book-title= предлагается) (справка)Википедия:Обслуживание CS1 (множественные имена: authors list) (ссылка)
  8. DB-Engines Ranking of Graph DBMS

Литература

Дополнительно
  • Ian Robinson, Jim Webber, Emil Eifrem. Graph Databases. — O'Reilly Media, Inc., 2013. — ISBN 978-1-4493-5624-8.

Ссылки