2016-02-27 49 views
1

我需要实现一个简单的图形数据库引擎,我应该考虑哪些事情?首先,我对使用哪种数据结构感到困惑,我的意思是图形表示(如邻接矩阵或邻接表)或实际图形本身?我需要这个可扩展性。 以后如何将图形作为文件存储在硬盘上?在以图形的形式存储图形数据之后,我还需要一种方法来选择性地将特定的文件加载到图形中,因为我无法一次将所有内容加载到RAM中。对不起,我含糊不清,但我需要有人指点我正确的方向。另外请建议我可以使用的语言,我可以在这个项目中使用python吗?谢谢。实现基本图形数据库引擎

+0

你为什么不只是使用像新现有的图形数据库? – tddmonkey

+0

,因为它打败了项目的目的?我正在谈论创建像neo4j,但更简单的版本,而不是使用它... –

+0

我在Python中创建了这样一个数据库已经有几个实现看看https://pypi.python.org/pypi/ ajgu https://pypi.python.org/pypi/AjguDB以及这篇文章http://hypermove.net/notes/do-it-yourself-a-graph-database-in-python/ – amirouche

回答

0

根据您的需要,您将实现不同的数据库接口即。一个邻接矩阵或图本身。

而不是使用基于文件的数据库,您可以采取的重要步骤是使用诸如bsddb,leveldbwiredtiger(首选)的键/值存储区。这将处理缓存经常访问的文件,提供ACID语义和索引,如果你使用wiredtiger。

在键/值存储器上创建的存储层可以有多个布局。这取决于你需要的最终界面。

要开始使用键/值存储开发自定义数据库,我建议您阅读关于SO上主要leveldb和bsddb的问题。

类似如下: