我正在设计一个项目,学生将不得不实现他们自己的基于图形的数据库。
是否有明确的资源来比较用于实现基于图形的数据库的数据结构?
不幸的是,似乎没有比较或推荐用于这类数据库的数据结构和算法的资源。例如,在典型的关系数据库管理系统中,您可能希望使用B+树或类似的东西。
我想知道是否有一个好的、众所周知的方法来实现这样一个数据库.
发布于 2016-02-13 16:54:01
经过一些额外的研究之后,我终于找到了一本描述Neo4j是如何实现的书。
基于图的数据库中最重要的概念是无索引邻接的概念.也就是说,节点的邻接列表需要与节点保持在一起;这避免了一旦有了节点就必须使用树搜索邻接列表,从而使基于图的数据库处理图形的速度更快。
此外,重要的是要记住,节点和关系都需要存储信息。
毫不奇怪,信息的存储方式是通过邻接列表。关系中涉及的两个节点都将存储一个双链接的关系。

我认为,可以使用某种替代结构来存储邻接列表,而不是双链接列表(选择取决于所处理的场景)。例如,如果某些关系的访问频率高于其他关系,则为自组织链接列表;如果您期望节点具有大量的关系,则为相邻关系提供某种树结构。
https://stackoverflow.com/questions/35374944
复制相似问题