Графовая база данных Neo4j

Хранение данных в реляционных СУБД имеет свои преимущества, но для определенных типов задач не подходит, особенно когда необходимо хранить много связей между данными. Для решения этих проблем можно применить графовую СУБД. Для начала стоит сделаем краткий обзор, Neo4j – графовая база данных с открытым исходным кодом разработана на языке Java, с поддержкой транзакции (ACID). Данные сохраняются в собственном формате сохранения узлов и ребер(специализированные хранилища графов). Основные области применения: социальные сети, системы предоставления рекомендаций, выявление мошенничества, картографические системы.
Как модель данных выбран ориентированый граф свойств:

  • Содержит узлы (nodes) и связи (relationships).
  • Узлы имеют свойства (properties). Узлы можно рассматривать как документы, содержащие свойства в виде пар ключ-значение.
  • Узлы могут быть обозначены одной или несколькими метками (labels). Метки группируют узлы, указывая роль, которую они играют в наборе данных.

Одному узлу можно приписывать несколько меток (поскольку узлы могут играть несколько разных ролей в разных доменах).
Связи связывают узлы и структурируют граф.  Связи именуемые (всегда имеют одно имя) и направлены (всегда имеют направление, начальный и конечный узлы).Связи также могут содержать свойства. Это позволяет ввести дополнительные метаданные в графу алгоритмы, добавить дополнительную семантику связям, ограничивать запросы в режиме реального времени.

Для запросов к данным используется Cypher – декларативная язык запросов к графам. Синтаксис этого языка похож на синтаксис SQL. Поддерживаются операции по созданию, выборки, обновления, удаления данных. Cypher описывает графы, используя спецификацию по образцу – используется простая форма ASCII-графики, пользователь рисует часть графа, его интересует, с помощью ASCII символов; вершины берутся в скобки, их метки прописываются после “:”; для создания нескольких узлов их следует перечислить через »,«; связи отражаются стрелками (-> и <-), а названия связей указываются внутри квадратных скобок после “:”; свойства узлов и связей (пары ключ-значение) прописываются в фигурных скобках.

 

 

nazarmsx

 

Leave a Reply

Your email address will not be published. Required fields are marked *