2016-02-27 54 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的問題。

類似如下: