Комментарии 11
А что такого есть в neo4j, чего нет в той же постгре? Там как-то хитро внутри данные лежат, индексы какие хитрые под транзитивные зависимости строятся? Никак не пойму зачем их брать, если есть полноценные бд - умеющие тоже самое, еще сверху мешок всего.
Удобный язык запросов для графовых данных и вроде как быстрее.
Вот например первое что нашел в гугле
Когда у вас юзеры и их комменты преимущество не очень понятно, но, когда я работал над приложением для фильмов с запросами вида "найти все фильмы где человек паук целует белоснежку" (а это (персонаж: Человек Паук) + (действие: целует) + (персонаж: Белоснежка) в (короткая сцена) — (длинная сцена) — (акт) — (пленка) — (фильм) ) — оценил neo4j на полную. В SQL это были бы километровые джоины.
Так есть же RDF и удобный язык запросов SPARQL. На кой нужен Neo4J ?
Разработчики Neo4j сейчас: БЛИИИН, точно, как мы могли забыть, есть же SPARQL, ёпрст, всё, расходимся.
У нас как раз был проект сначала на Marklogic DB (а там SPARQL). В итоге после пары лет использования перешли на Neo4J и все остались очень довольны. Заказчику понравилась бесплатность и улучшение в перформансе, а разработчикам — более удобный синтаксис и опять же, перформанс из коробки.
Ну и более адекватная разработка, потому что SPARQL это про semantic web и открытые данные, а когда тебе надо через него тащить из базы в приложение что-то, хочется чего-то более приземленного.
Лично мне Cypher показался чуть более удобным чем SPARQL. Примерно как json удобнее xml'я — вроде одно и то же, а как-то визуально попроще.
Не надо делать меня бешеным фанатом neo4j — человек спросил, я ответил как мог. Считаете neo4j бесполезной по сравнению с RDF / *SQL — пожалуйста, флаг Вам в руки.
Просто у меня остались приятные впечатления после работы с ней и я лишь изредка с ностальгией вспоминаю её, особенно когда пишу четыре джоина или лукапа.
А ещё есть gremlin :)
Neo4j — это графовая система управления базами данных с открытым исходным кодом, реализованная на Java. Она является ведущей графовой СУБД в мире. Аналогами Neo4j являются Oracle NoSQL Database, HypherGraphDB, GraphBase, InfiniteGraph и AllegroGraph.
Что есть «ведущая» и по какому признаку?
Всем известно, что такое граф, и из чего он состоит. Так вот, графовые базы данных представляет собой набор объектов, где объекты связаны между собой, подобно как в графе вершины (узлы), связанные через ребра (отношения).
Вы вроде пишите статью для новичков, но вступление у вас не объясняет ровным счетом ничего. Картинка ровно так же подойдет двум таблицам со связью, отсюда вопрос, почему не РСУБД? К тому же многие пишут что тот же pg_route для обхода графов предлагает больше эфективных интересностей.
Но использовать его стоит только для решения задач, которые решаются с использованием графов.
И опять же, ни слова о самих задачах.
Также стоило упомянуть о OrientDB и ArangoDB
по ссылкам ошибка 404. Поправьте пожалуйста
NEO4J – графовые базы данных