В статье рассматривается как начать работать с графовой СУБД Neo4j, используя Neo4j Browser. Это руководство может быть полезным как дополнение к книге Редмонда и Уилсона «Семь баз данных за семь недель», так как рассматриваемый веб-интерфейс был полностью переработан, а также к книге «Графовые базы данных» (Робинсон, Вебер, Эифрем), так как в ней этот вопрос вообще не рассматривается. Статья рассчитана на приступающих к изучению Neo4j. Те, кто уже знаком с этой СУБД, могут смело её пропустить.


Neo4j Browser: home screen



Примечание. В статье не рассматривается как установить и настроить Neo4j. Рассматриваемые версии Neo4j 3.3.2 и 3.4.0, Neo4j Browser 3.1.4 и 3.1.12, соответственно.


Начало работы


Для начала убедимся, что Neo4j запущена (пример для Linux):


service --status-all | grep neo4j

 [ + ]  neo4j

Знак «плюс» означает, что СУБД уже запущена, «минус» — ещё нет. Для запуска Neo4j выполните команду:


sudo service neo4j start

После запуска перейдите по ссылке http://localhost:7474/browser/. Вы должны увидеть интерфейс Neo4j Browser представленный на изображении выше.


Сейчас нас будут интересовать два элементы интерфейса, изображённые ниже: редактор и учебник.


Neo4j Browser: play


Учебник


Neo4j предоставляет великолепный интерактивный учебник для начинающих. Очень рекомендую его пройти. Для этого просто щёлкните на Start Learning и сначала ознакомьтесь с основными понятиями Neo4j:


Neo4j Browser: graph fundamentals


Neo4j Browser: graph relationships


По достижению последнего шага щёлкните на Intro и ознакомьтесь с возможностями Neo4j Browser:


Neo4j Browser: next steps


Neo4j Browser: introduction


Редактор


В верхней части окна Neo4j Browser располагается строка так называемого редактора:


Neo4j Browser: editor


Начиная набор команд с двоеточия, увидим список всех доступных команд с кратким описанием:


Neo4j Browser: list of commands


Вызовем команду :help:


Neo4j Browser: help command


Neo4j Browser: help


Чтобы ознакомиться с примерами работы с графами можно выбрать :play movie graph или :play northwind graph.


Мы не будем здесь рассматривать эти примеры, а рассмотрим как создать свой граф с помощью языка Cypher.


Создаём граф


Для начала можно ознакомиться с языком Cypher, вызвав команду:


:play cypher

Neo4j Browser: play cypher


Итак, начнём. Создадим небольшой социальный граф. Перейдём в редактор и наберём первую команду на языке Cypher:


CREATE (u1:Person {name: "Evgeny", from: "Krasnodar"})

После выполнения команды Browser сообщит нам результат:


Neo4j Browser: create result


Добавим ещё один узел:


CREATE (u2:Person {name: "Dmitry", from: "Tula"})

Теперь запросим все узлы типа Person и извлечём значения свойства name:


MATCH (ee:Person) RETURN ee.name

Neo4j Browser: property match result


Примечание. Как и в SQL есть возможность упорядочить извлекаемые данные по какому-либо полю:


MATCH (ee:Person) RETURN ee.name ORDER BY ee.name

Далее можем запросить все узлы данного типа:


MATCH (ee:Person) RETURN ee

Neo4j Browser: edges match result


Обратите внимание на появившуюся кнопку Graph. Щёлкним на ней и увидим наши узлы в графическом виде:


Neo4j Browser: graph match result


Примечание. В версии 3.4 по-умолчанию как-раз открывается графическое представление. Для получения табличного представления нужно щёлкнуть на кнопку с надписью «Table». Хотя, бывает и наоборот.


Добавим связь между узлами:


MATCH (e:Person) WHERE e.name = "Evgeny"
MATCH (d:Person) WHERE d.name = "Dmitry"
CREATE (e)-[:KNOWS]->(d),
  (d)-[:KNOWS]->(e)

И вновь запросим наш граф:


Neo4j Browser: graph with relationships


С помощью Cypher можно также выполнять различные операции над графами, например, запрашивать смежные вершины, друзей друзей в социальном графе, удалять рёбра и вершины и многое другое, но это тема для отдельного разговора.


Также можно настраивать Neo4j Browser на различный стиль отображения узлов и связей в зависимости от заданных им меток.


Онлайн-курс


В 2025 году я запустил онлайн-курс о графовых базах данных на платформе Stepik. Я сделал его бесплатным, чтобы больше изучающих информатику и программирование, а также уже практикующих специалистов, знали больше об этой замечательной информационной технологии. Этот курс появился не на пустом месте: у меня был опыт использования Neo4j, я написал два поста о об этой СУБД на Хабр (включая этот) и провёл два курса про графовые базы данных в двух вузах, в том числе в Университете ИТМО.


Ссылки



© Симоненко Е.А., 2019


Буквальное копирование и распространение этого произведения разрешается на любом носителе при условии сохранения вышеуказанного уведомления об авторских правах, этого лицензионного уведомления и нижеуказанного уведомления об отказе от ответственности. Авторские права на все изображения в этом произведении принадлежат автору этого произведения и являются его неотъемлемой частью. Фрагменты программного кода из этого произведения, если не оговорено иное, разрешается распространять и использовать без ограничений с или без изменений и без указания авторских прав.


Информация в этом произведении, включая также изображения и фрагменты программного кода, предоставляется как есть, без какой либо гарантии и обещания пригодности для чего либо. Автор не несёт ответственность за любой ущерб, возникший в результате использования данного произведения.


Разрешается использование текста данной лицензии иными авторами в своих произведениях как в буквальном виде, так и в изменённом или адаптированном под нужды автора виде без указания оригинального авторства текста данной лицензии.