我正在努力提高我对图形数据库的了解,尤其是 DGraph。图 DBMS 只是新一代的前关系层次/网络模型 DBMS,还是在当前这一代图 DBMS(neo4j 等)的底层有什么新东西?例如,60 年代的 CODASYL 将记录存储在自由格式记录的链表中。这不正是当前图形数据库引擎正在做的事情吗?
我的问题不是关于图形 DBMS 功能的基本方式之外的事情,比如查询语言、复制等。我知道这些领域已经有了显着改善。
我正在努力提高我对图形数据库的了解,尤其是 DGraph。图 DBMS 只是新一代的前关系层次/网络模型 DBMS,还是在当前这一代图 DBMS(neo4j 等)的底层有什么新东西?例如,60 年代的 CODASYL 将记录存储在自由格式记录的链表中。这不正是当前图形数据库引擎正在做的事情吗?
我的问题不是关于图形 DBMS 功能的基本方式之外的事情,比如查询语言、复制等。我知道这些领域已经有了显着改善。
图形数据库在很大程度上是无关紧要的。重要的是使用它们的图形处理引擎。为此,不需要专用的图形数据库:图形可以在任何类型的存储中表示:关系数据库、“nosql”数据库(HBase,...)。甚至平面文件结构。一些图形处理引擎包括它们自己的专用图形存储(Neo4J 和 Graph 就是这种情况)。其他(Oracle Property Graph)允许您使用您喜欢的任何存储。
就处理能力而言,图形处理与旧 Codasyl/Network 数据库的处理能力有很大不同。图形处理让您可以进行图形分析:在社交网络中寻找影响者(页面排名、亲密度中心性、介数中心性……)、社区检测、最短路径、聚类……它们还可以让您使用专门的语言(例如 PGQL 或密码(用于 Neo4J)。这用于检测周期:对于分析金融欺诈和洗钱非常有用。例如,图表技术已被用于分析巴拿马文件。相同的技术通常用于分析复杂流程中的依赖关系,例如汽车制造或 IT 基础设施。请注意,正在开展使用图形遍历表达式扩展 SQL 语言的工作。
我对 DGraph 了解不多。查看文档让我相信它没有提供以上任何内容:没有图形分析,也没有实际的图形遍历语言。这可能是因为它实际上将图实现为 RDF(语义)图,其中数据被抽象为三元组。可以使用允许推断新三元组的本体来约束 RDF 图。RDF 三元组存储通常使用 SparQL 语言查询,但 DGraph 似乎也不支持。
了解您心目中的哪种用例,您认为使用图形技术而不是关系技术可以更好地解决这些用例,这将很有趣。