图数据库中是否存在模式之类的东西?例如,您能否指定哪些类型的节点可以与哪些其他类型的节点有关系?
这样的架构是什么样的?
图数据库中是否存在模式之类的东西?例如,您能否指定哪些类型的节点可以与哪些其他类型的节点有关系?
这样的架构是什么样的?
就像das_weezul所说,图形数据库在这方面有很大的不同。在一般情况下,我认为更接近对象数据库(OODB)的图形数据库也具有内置的模式支持。图数据库的一个优点是它们非常适合混合数据和元数据。因此,处理模式支持和安全性的常用方法是将这种元数据存储在同一个图的(有时是隐藏的)部分中。
谈到Neo4j——我所在的团队——目前至少有两种方法用于定义模式:
您可以在myNoSQL上找到更多关于此主题的阅读材料。
图数据库将始终具有由(至少)Vertex 和 Edge 对象组成的基本模式,其中 Edge 可以包含有关特定关系的数据。您可以添加到此模式的程度因实现而异。例如,您可以通过从 Edge 和/或 Vertex 对象继承来自定义架构。
如果图形数据库使用底层的 RDBMS 或 ODBMS,那么您可以访问更强大的模式创建和操作功能。
是的。模式在选择顶点标签时很有用,它们是 Neo4J 2 和 Tinkerpop 3 的一部分。我认为写下模式有助于阐明应该如何使用图形,尽管大多数数据库不支持针对模式的验证。
我有一篇关于如何将架构绘制为图表的较长文章。http://lambdazen.blogspot.com/2014/01/do-property-graphs-have-schemas.html