Исходный код вики Neo4j
Версия 3.12 от Alexandr Fokin на 2022/06/25 16:28
Последние авторы
| author | version | line-number | content |
|---|---|---|---|
| 1 | ==== Общее ==== | ||
| 2 | |||
| 3 | Neo4j - графовая БД. | ||
| 4 | |||
| 5 | Не имеет требований/механизмов для схемы данных. (Разные узлы, даже имеющие одну и ту же метку, могу содержать разные наборы свойств) | ||
| 6 | |||
| 7 | Разработана на языке [[Java>>Разработка.JVM.Java.WebHome]]. | ||
| 8 | |||
| 9 | Graph Data Platform | Graph Database Management System | Neo4j | ||
| 10 | https://neo4j.com/ | ||
| 11 | |||
| 12 | ---- | ||
| 13 | |||
| 14 | ==== Структурные компоненты ==== | ||
| 15 | |||
| 16 | |||
| 17 | |=(% style="width: 152px;" %)Элемент|=(% style="width: 417px;" %)Описание|=(% style="width: 953px;" %)Отношение | ||
| 18 | |(% style="width:152px" %)Узлы|(% style="width:417px" %)Ноды графа.|(% style="width:953px" %)((( | ||
| 19 | Каждый узел: | ||
| 20 | |||
| 21 | * Имеет коллекцию свойств. | ||
| 22 | * Имеет от 1 до n меток. | ||
| 23 | ))) | ||
| 24 | |(% style="width:152px" %)Взаимосвязи|(% style="width:417px" %)Ребра графа, связывающие 2 узла.|(% style="width:953px" %)((( | ||
| 25 | Каждая взаимосвязь: | ||
| 26 | |||
| 27 | * Является направленной (Узел1 -> Узел2). | ||
| 28 | (При этом в запросе можно явно указать игнорирования направления) | ||
| 29 | * Имеет единственное строкове имя. | ||
| 30 | * Имеет коллекцию свойств. | ||
| 31 | |||
| 32 | ---- | ||
| 33 | |||
| 34 | Способы обозначения подвидов связи: | ||
| 35 | |||
| 36 | * За счет объявления разных имен связей. | ||
| 37 | * Объявление одного имени связи, но добавление атрибута "тип связи" в коллекцию свойств связи. | ||
| 38 | |||
| 39 | (Указанные способы могут различаться по влиянию на производительность запросов) | ||
| 40 | ))) | ||
| 41 | |(% style="width:152px" %)Метки|(% style="width:417px" %)Инструмент группировки узлов, обозначения их ролей.|(% style="width:953px" %)((( | ||
| 42 | Можно сказать, что к каждой метке привязана коллекция узлов. | ||
| 43 | |||
| 44 | При этом за счет меток можно ввести неявную иерархию - обозначив общей меткой некое множество узлов целиком (AllObjects), и отдельными метками его подмножества (ObjectGroup1, ObjectGroup2 ...). | ||
| 45 | ))) | ||
| 46 | |(% style="width:152px" %)Коллекция свойств|(% style="width:417px" %)Key-Value коллекция свойств, в которой ключ - строка.|(% style="width:953px" %) | ||
| 47 | |||
| 48 | ---- | ||
| 49 | |||
| 50 | ==== Интерфейс ==== | ||
| 51 | |||
| 52 | |(% style="width:193px" %)**Название**|(% style="width:171px" %)**Тип**|(% style="width:1158px" %) | ||
| 53 | |(% style="width:193px" %)Rest API|(% style="width:171px" %) |(% style="width:1158px" %) | ||
| 54 | |(% style="width:193px" %) |(% style="width:171px" %) |(% style="width:1158px" %) | ||
| 55 | |(% style="width:193px" %)Cypher|(% style="width:171px" %)Язык запросов|(% style="width:1158px" %)((( | ||
| 56 | Язык запросов для работы с графовой структурой данных. | ||
| 57 | Используется только в [[Neo4j>>WebHome]] | ||
| 58 | ))) | ||
| 59 | |(% style="width:193px" %)SPARQL|(% style="width:171px" %)Язык запросов|(% style="width:1158px" %)((( | ||
| 60 | Язык запросов для работы с RDF. | ||
| 61 | Используется для работы с графовыми онтологиями семантического веба. | ||
| 62 | ))) | ||
| 63 | |(% style="width:193px" %)[[Apache TinkerPop Gremlin>>Разработка.Базы данных.NoSQL.Графовая структура.Apache TinkerPop Gremlin.WebHome]]|(% style="width:171px" %)Язык запросов|(% style="width:1158px" %) | ||
| 64 | |(% style="width:193px" %) |(% style="width:171px" %) |(% style="width:1158px" %) | ||
| 65 | |(% style="width:193px" %)Base Api|(% style="width:171px" %)code api|(% style="width:1158px" %) | ||
| 66 | |(% style="width:193px" %)Traversal Framework|(% style="width:171px" %)code api|(% style="width:1158px" %) | ||
| 67 | |||
| 68 | ---- | ||
| 69 | |||
| 70 | ==== Другое ==== | ||
| 71 | |||
| 72 | Aspen is a simple markup language for creating graph data. | ||
| 73 | 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. | ||
| 74 | https://aspen-lang.org/ |