Neo4j

Редактировал(а) Alexandr Fokin 2023/12/16 14:11

Общее

Neo4j - графовая БД.

Не имеет требований/механизмов для схемы данных. (Разные узлы, даже имеющие одну и ту же метку, могу содержать разные наборы свойств)

Разработана на языке Java.

Graph Data Platform | Graph Database Management System | Neo4j
https://neo4j.com/


Структурные компоненты

ЭлементОписаниеОтношение
УзлыНоды графа.

Каждый узел:

  • Имеет коллекцию свойств.
  • Имеет от 1 до n меток.
ВзаимосвязиРебра графа, связывающие 2 узла.

Каждая взаимосвязь:

  • Является направленной (Узел1 -> Узел2).
    (При этом в запросе можно явно указать игнорирования направления)
  • Имеет единственное строкове имя.
  • Имеет коллекцию свойств.

Способы обозначения подвидов связи:

  • За счет объявления разных имен связей.
  • Объявление одного имени связи, но добавление атрибута "тип связи" в коллекцию свойств связи.

(Указанные способы могут различаться по влиянию на производительность запросов)

МеткиИнструмент группировки узлов, обозначения их ролей.

Можно сказать, что к каждой метке привязана коллекция узлов.

При этом за счет меток можно ввести неявную иерархию - обозначив общей меткой некое множество узлов целиком (AllObjects), и отдельными метками его подмножества (ObjectGroup1, ObjectGroup2 ...).

Коллекция свойствKey-Value коллекция свойств, в которой ключ - строка. 

Интерфейс

НазваниеТип 
Rest API  
   
CypherЯзык запросов

Язык запросов для работы с графовой структурой данных.
Используется только в Neo4j

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

Язык запросов для работы с RDF.
Используется для работы с графовыми онтологиями семантического веба.

Apache TinkerPop GremlinЯзык запросов 
   
Base Apicode api 
Traversal Frameworkcode api 

Другое

Aspen is a simple markup language for creating graph data.
Aspen lets you write about people, places, things, and the relationships between them using marked-up text, and converts your text to valid Cypher that can be used in Neo4j graph databases.
https://aspen-lang.org/

Теги: NoSql Граф