图数据库和网络数据库有什么区别?

26

图数据库(例如Neo4J)和网络数据库(例如IDS、CODASYL)有何区别?原则上它们是相同的吗?

3个回答

26
网络数据库(如CODSASYL)仍然基于一种分层数据模型,即以父子关系(或在CODASYL术语中为所有者-成员关系)思考。这也意味着在网络数据库中无法将任意记录相互关联,这使得处理面向图形的数据集变得困难。例如,您可以使用图数据库来分析实体之间存在哪些关系。
此外,网络数据库使用具有预定义字段集的固定记录,而图数据库使用更灵活的属性图模型,允许在节点/顶点和关系/边上使用任意键/值对。

1
非常好的答案,谢谢。这也是我所想的。我只是不确定在个别值或记录之间导航而不是一组相似记录是否真正使这两者根本不同。 - nvogel
从维基百科:http://en.wikipedia.org/wiki/Graph_database 和 http://en.wikipedia.org/wiki/Network_model - user1448319
1
一个网络可以被定义为一个图,其中节点和/或边缘具有属性。图比网络更抽象。人们所谓的图形数据库很可能是网络数据库。它们不再被称为网络数据库的原因可能是由于当关系模型变得流行时,CODSASYL变得不受青睐的方式。 - Spacen Jasset

7

从Martin Kleppmann的书《Designing Data-Intensive Applications》中复制。

  1. 在网络模型中,数据库具有指定哪种记录类型可以嵌套在其他哪种记录类型中的模式。在图形数据库中,没有这样的限制:任何顶点都可以与任何其他顶点相连。这为应用程序提供了更大的灵活性以适应不断变化的需求。

  2. 在网络模型中,到达特定记录的唯一方式是遍历其中一个访问路径。在图形数据库中,您可以通过其唯一ID直接引用任何顶点,或者可以使用索引查找具有特定值的顶点。

  3. 在网络模型中,记录的子级是有序集合,因此数据库必须维护该排序(对存储布局产生影响),并且将新记录插入数据库的应用程序必须担心这些集合中新记录的位置。在图形数据库中,顶点和边不是有序的(只能在查询时对结果进行排序)。

  4. 在网络模型中,所有查询都是命令式的,难以编写,并且很容易因架构更改而出现错误。在图形数据库中,如果需要,您可以编写遍历的命令式代码,但是大多数图形数据库也支持高级的声明性查询语言,例如Cypher或SPARQL。


顺便说一下,这是来自第2章第60页的内容。 - Zach Valenta

3
首先,让我们正确提出问题。有两种类型的图数据库:RD Graph(标准)和Property Graph(非标准)。Neo4J是一种Property Database,不是“标准”的RDF Graph。
接下来,如果您阅读Sumit Sethia上面的答案,您将了解到网络模型和Graph DB之间的关系(默认情况下应该理解为RDF graph)。
将关系想象成开发时间线会有所帮助,在这个时间线中,下一步“改进”了前一步。那么它可能是分层DB首先出现,然后是网络模型,然后是Graph,最后是Property Graph。顺便说一句,这不是“严格”的。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接