1

我必须选择一个图数据库系统,很惊讶主流的不支持这个功能?

为什么数据库系统如此不受欢迎?为什么那里的开发人员似乎没有要求它?应该有我不知道的原因。

谢谢你的帮助。

4

1 回答 1

2

据我了解,“纯”双向图数据库无法支持也存在单向关系的情况,例如 Twitter。

所以问题变成了“为什么没有混合(双向和单向)图形数据库?” 这个解决方案有两个问题:

  1. 它可能不会像您预期的那样节省存储空间,因为对于双向关系,混合图数据库需要存储三个边而不是一个边:A -> B、B -> A 和 A <-> B。原因是一些非常常见的查询涉及单向关系。

  2. 一些基本查询的成本相当高。例如,图数据库中有两个常见问题:

    • 找到 A 的所有朋友

    • 找到 B 的所有朋友

通常,图数据库将 A 的所有朋友保存为相邻边(AB、AC、AD、...)。要找到 A 的所有朋友,他们只需要定位 A 并浏览到前缀不是 A 的第一条边。假设 A 有 m 个朋友并且有 n 个。数据库中的记录总数,则查询复杂度为 O(log(n)) + O(m)。相同的逻辑适用于 B。但是,如果使用双向边,比如 A<->B,查询 A 的朋友的成本是相同的,但查询 B 的朋友的成本是 O(n),因为全数据库扫描是必需的。

于 2020-03-25T09:51:43.137 回答