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

nvo*_*gel 15 terminology neo4j nosql

图形数据库(例如Neo4J)和网络数据库(例如IDS,CODASYL)之间有什么区别?原则上他们是一回事吗?

naw*_*oth 16

CODSASYL这样的网络数据库仍然或多或少地基于分层数据模型,考虑父子(或CODASYL术语中的所有者成员)关系.这也意味着在网络数据库中,您无法将任意记录相互关联,这使得难以使用面向图形的数据集.例如,您可以使用图形数据库来分析实体之间存在的关系.

此外,网络数据库使用具有预定义字段集的固定记录,而图形数据库使用更灵活的属性图模型,允许在节点/顶点和关系/边上的任意键/值对.


小智 7

复制Martin Kleppmann所著的Designing Data-Intensive Applications一书。

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

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

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

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