图形数据库(例如 Neo4J)和网络数据库(例如 IDS,CODASYL)之间有什么区别?
像CODSASYL这样的网络数据库仍然或多或少地基于hierarchical data model,从父子关系(或 CODASYL 术语中的所有者-成员)的角度考虑。这也意味着在网络数据库中,您不能将任意记录彼此关联,这使得处理面向图形的数据集变得困难。例如,您可以使用图形数据库来分析实体之间存在的关系。
此外,网络数据库使用具有预定义的字段集合的固定记录,而图形数据库使用更灵活的Property Graph Model,允许在节点 / 顶点和关系 / 边上的任意键 / 值对。
正在从书Designing Data-Intensive Applications by Martin Kleppmann中复制。
在网络模型中,数据库有一个模式,指定哪种记录类型可以嵌套在哪种其他记录类型中。在图形数据库中,没有这样的限制:任何顶点都可以有指向任何其他顶点的边。这为应用程序适应不断变化的需求提供了更大的灵活性。
在网络模型中,到达特定记录的唯一方法是遍历其访问路径之一。在图形数据库中,您可以通过其唯一 ID 直接引用任何顶点,也可以使用索引查找具有特定值的顶点。
在网络模型中,记录的子级是一个有序集,因此数据库必须保持该顺序(这对存储布局有影响),并且将新记录插入数据库的应用程序必须担心新记录在这些集中的位置。在图形数据库中,顶点和边不是有序的(您只能在查询时对结果进行排序)。
在网络模型中,所有查询都是命令式的,难以编写,并且很容易被架构中的更改。在图数据库中,如果需要,可以用命令式代码编写遍历,但是大多数图数据库还支持高级声明性查询语言,例如 Cypher 或 SPARQL。
首先,让我们正确地问这个问题。有两种类型的图数据库:RD Graph (标准) 和属性图 (非标准)。Neo4J 是属性数据库,而不是“标准”RDF Graph。
然后,如果你阅读了上面的 Sumit Sethia 的答案,你将在网络模型和图 DB(其中,deafult 应该被理解为 RDF 图)之间的关系方面得到正确的答案。
它有助于将关系视为开发时间线,下一步“改进”上一步。然后它将是类似于 Hierarchical DB,然后是 Network Model,然后是 Graph,然后是 Property Graph。顺便说一句,这不是“严格的”。
本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处
评论列表(59条)