Существует нет такого механизма, встроенного в Neo4j сегодня (Текущая версия Neo4j на момент написания 2.1.6). То, что вы описываете, - это какая-то схема (если вы сравниваете, например, DDL для РСУБД), а Neo4j - в основном схема. Этот тип структурной целостности составляет quite often handled in the application layer for NoSQL databases.
Описаны только операции схемы, доступные сегодня для Neo4j here.
В настоящее время они включают в себя:
- Unique - например
CREATE CONSTRAINT ON (p:Person) ASSERT p.name IS UNIQUE
- Индексы - создание индекса на этикетке, например.
CREATE INDEX ON :Person(name)
Комментарий на этот ответ от Michael Hunger, который является частью команды за Neo4j указывает, что больше ограничений будут доступны для Neo4j в будущем. Кроме того, Майкл указывает на следующие альтернативы:
- Посмотрите на Structr, слой выше Neo4j, что среди прочего претворяет более строгую схему (проверьте схемы документы here)
- SylvaDB, удобном для используйте слой выше Neo4j, который также имеет поддержку схемы. Кажется, очень
В дополнение к этому, FrobberOfBits указал на инструмент NeoProfiler, который содержит ряд профайлеров, большинство из которых работают очень простых Cypher запросов к базе данных и предоставляют сводные статистические данные. Некоторые профилировщики действительно обнаружат данные на вашем графике, а затем создадут другие профилировщики, которые будут работать позже. Например, если в данных обнаружена метка «Человек», в очередь выполнения будет добавлен профайлер меток для проверки совокупности узлов с этой меткой.
Это должно быть обработано на уровне приложения ИМХО. Neo4j - схема свободная. Возможно, вы можете добиться этого, написав неуправляемое расширение, связав транзакцию. возможно, этот пример может помочь вам https://github.com/graphaware/neo4j-uuid –