标签: database nosql
我正在设计一个项目,学生必须实施自己的基于图形的数据库。
是否有任何权威资源可以比较实现基于图形的数据库的数据结构?
不幸的是,似乎没有资源比较或推荐用于此类数据库的数据结构和算法。例如,在典型的RDBMS中,您可能希望使用B +树或类似的东西。
我想知道是否有一个很好的,众所周知的方法来实现这样的数据库。
答案 0 :(得分:1)
经过一些额外的研究后,我终于遇到了一本描述Neo4j如何实施的书。
基于图的数据库中最重要的概念是无索引邻接的概念。也就是说,节点的邻接列表需要与节点保持一致;这样就可以避免在拥有节点后使用树搜索邻接列表,从而使基于图的数据库更快地处理图形。
此外,重要的是要记住节点和关系都需要存储信息。
存储信息的方式是通过邻接列表,这并不奇怪。关系中涉及的两个节点都将存储双重关联关系。
我认为,不是双向链表,而是可以使用一些存储邻接列表的替代结构(选择取决于正在处理的场景)。例如,如果某些关系的访问频率高于其他关系,则为自组织链表,或者如果您希望节点具有大量关系,则为邻接关系提供某种树结构。