nvo*_*gel 15 terminology neo4j nosql
图形数据库(例如Neo4J)和网络数据库(例如IDS,CODASYL)之间有什么区别?原则上他们是一回事吗?
小智 7
复制Martin Kleppmann所著的Designing Data-Intensive Applications一书。
在网络模型中,数据库有一个模式,指定哪种记录类型可以嵌套在哪种其他记录类型中。在图数据库中,没有这样的限制:任何顶点都可以有任何其他顶点的边。这为应用程序提供了更大的灵活性,以适应不断变化的需求。
在网络模型中,到达特定记录的唯一方法是遍历到它的访问路径之一。在图形数据库中,您可以通过其唯一 ID 直接引用任何顶点,也可以使用索引来查找具有特定值的顶点。
在网络模型中,记录的子项是一个有序集,因此数据库必须维护该排序(这会对存储布局产生影响)并且将新记录插入数据库的应用程序不得不担心新记录的位置这些集合中的记录。在图形数据库中,顶点和边是没有顺序的(您只能在进行查询时对结果进行排序)。
在网络模型中,所有查询都是命令式的,难以编写,并且很容易因模式更改而中断。在图数据库中,您可以根据需要在命令式代码中编写遍历,但大多数图数据库还支持高级声明式查询语言,例如 Cypher 或 SPARQL。