我知道Neo4j以图表而不是表格的形式存储结构化数据。在RDBMS中,我们将拥有表的模式,但在Neo4j中,我们不会拥有表。仅定义节点、关系和属性。那么neo4jmetadata中有没有什么概念呢?比如数据库中是否存储了有关节点、关系的信息?如果是,它如何以及在元数据中存储什么?另外我们在图数据库中哪里可以找到元数据相关信息(位置)
谢谢,
Neo4J 不会按照您正在寻找的方式直接存储元数据。NeoProfiler工具正是为此目的而编写的。您可以在 Neo4J 数据库上运行它,它将尽可能多地提取有关标签、索引、约束、属性、节点和关系的信息。这种工作方式与 @ulkas 在其他答案中建议的查询并不太远,输出要好得多。
更广泛地说,在 RDBMS 中,您提取的模式信息极大地限制了数据库。那里的模式就像一组规则;除非数据符合该架构,否则您无法插入数据。在 Neo4J 中,因为它非常灵活,即使有一个模式,它也只是对其中内容的文档,它不会是对您可以放入的内容的一组约束。您可以随时插入没有任何内容的新数据与当前模式有关(除非您不能违反诸如唯一性约束之类的事情)。
如果您想在 neo4j 中查看数据库的等效架构,请查看上面链接的 neoprofiler。有一些人写过有关“元图”的文章 - 也就是说,他们谈论将 Neo4j 模式表示为图本身,例如,节点指的是标签。然后,来自该“标签节点”的关系传出到其他类型的标签节点,指定节点之间可以存在什么类型的关系。例如,标记为“Employee”的节点可能经常与标记为“Company”的节点具有“works_for”关系。