2013-07-03 29 views
0

我正在設計一個課程需要數據存儲的應用程序(例如用戶帳號,日誌等)。我不希望性能成爲問題,因此數據的檢索/更新/刪除將位於與主應用程序線程(創建者 - 消費者模型)不同的線程中。當我想從本地存儲應用程序的數據並且沒有外部依賴關係時,我有什麼選擇?

我不能使用NoSQL數據庫或任何其他數據庫系統,因爲它們需要運行一個外部應用程序才能使數據可用(例如通過網絡管道連接到主機)。

然而,我需要我的數據不需要運行另一個應用程序,所以我想將系統集成到我自己的應用程序中。

我環顧四周尋找可以集成的數據庫,但是我找不到任何數據庫。

  • 是否有任何可用於簡單插入,更新,刪除操作 項目只?
  • 或者我需要堅持使用平面文件,因爲有 沒有我可以整合的獨立數據存儲庫嗎? (例如,使 成爲一類,併爲我的數據存儲定義文件寫入功能)
  • 我還有其他選擇嗎?

Side Note:我知道這將是一種愚蠢的,但實際上我的選擇之一:是否有一個SQL(PostgreSQL最好)數據庫,我可以與我的項目一起編譯,然後在本地發出查詢?

+0

您是否在尋找嵌入式數據庫http://en.wikipedia.org/wiki/Embedded_database? –

+0

我認爲這就是我正在尋找的,我不太熟悉英語,但嵌入式數據庫聽起來非常正確。如果有C++的嵌入式ORM數據庫,將會很酷,現在將搜索它。 – Gizmo

回答

1

數據庫[...]需要一個外部應用程序

錯誤。有大量的進程內數據庫系統(例如SQLite,只需稍加註意,就可以完全符合ACID標準)。

有沒有一個SQL(PostgreSQL最好)數據庫,我可以與我的項目一起編譯,然後在本地發出查詢?

嗯,我開始回答您添加這句話之前,但同樣的SQLite想到的。如果這個特定的數據庫不適合你,你可能想要搜索「嵌入式數據庫」或「進程內數據庫」,有大量類似的產品 - SQL或甚至NoSQL。

一個很好的NoSQL,鍵值數據庫應該是Berkeley DB,但是恐怕自從Oracle購買它以來,許可證已經收緊了,所以我不確定它現在是否仍然相關(除非您的應用程序完全開源或者您可以購買商業許可證)。

+0

嗯,是的,我發現了一個叫做「ODB」的東西,它是ORM並支持SQLite,謝謝:)可以在4分鐘內接受答案。 – Gizmo

+0

SQLite,恕我直言,其最大的好處是它是完全公有領域,所以沒有許可問題。而且對於小型數據存儲來說足夠體面(即使您需要ACID和多客戶端併發,但需要花費很少的額外工作)。 – syam

0

什麼SQLite的?它不需要任何特殊和複雜的依賴關係。安裝和使用相當簡單。

相關問題