图表数据库(例如Neo4J)和网络数据库(例如IDS,CODASYL)之间有什么区别?原则上它们是一样的吗?
答案 0 :(得分:16)
像CODSASYL这样的网络数据库或多或少都基于hierarchical data model,考虑到父子(或CODASYL术语中的所有者成员)关系。这也意味着在网络数据库中,您无法将任意记录相互关联,这使得难以使用面向图形的数据集。例如,您可以使用图形数据库来分析实体之间存在的关系。
此外,网络数据库使用具有预定义字段集的固定记录,而图形数据库使用更灵活的Property Graph Model,允许在节点/顶点和关系/边缘上使用任意键/值对。
答案 1 :(得分:3)
从《设计数据密集型应用》一书中复制。
在网络模型中,数据库具有一个架构,该架构指定可以将哪种记录类型嵌套在哪种其他记录类型中。在图形数据库中,没有这样的限制:任何顶点都可以具有任何其他顶点的边。这为应用程序提供了更大的灵活性,以适应不断变化的需求。
在网络模型中,到达特定记录的唯一方法是遍历对它的访问路径之一。在图形数据库中,您可以通过其唯一ID直接引用任何顶点,也可以使用索引查找具有特定值的顶点。
在网络模型中,记录的子级是有序集合,因此数据库必须保持该顺序(这对存储布局有影响),并且将新记录插入数据库的应用程序必须担心关于这些记录中新记录的位置。在图形数据库中,顶点和边没有排序(只能在查询时对结果进行排序)。
在网络模型中,所有查询都是必不可少的,难以编写且容易因架构更改而中断。在图形数据库中,可以根据需要用命令式代码编写遍历,但是大多数图形数据库还支持高级声明性查询语言,例如Cypher或SPARQL。
答案 2 :(得分:1)
首先,让我们正确地问这个问题。图形数据库有两种类型:RD图形(标准)和属性图(非标准)。 Neo4J是属性数据库,而不是“标准” RDF图。
然后,如果您阅读上述Sumit Sethia的答案,则对于网络模型和Graph DB(默认情况下应将其理解为RDF图)之间的关系,您将获得正确的答案。
将关系视为开发时间表是很有帮助的,下一步可以“改进”上一步。然后将是类似层次数据库的东西,然后是网络模型,然后是图,然后是属性图。顺便说一下,这不是“严格”。