2011-06-29 51 views
3

是否有一個數據結構可以爲您提供數據庫的功能(如插入,更新,刪除等)?例如:數據結構的功能類似於C或C++中的數據庫

  • 它在它和查詢創建一個類似的數據庫表結構
  • 存儲數據
  • 選擇性刪除

我知道有一個哈希表,你可以做到這一點(例如:uthash圖書館)。但據我所知,更新一個列元素在哈希表中並不容易。

回答

0

使用C結構體來表示數據行,然後使用樹(或者散列)來表示索引。有很多小問題需要解決,特別是爲了使所有操作都高效,但這構成了內存表的基礎。

對於簡單的事情,樹結構可能就足夠了。

+1

非常感謝。如果可能,你可以給我一些需要解決的小問題的例子。它只與效率或其他問題有關嗎? – snibu

+0

內存處理。刪除元素,特別是如果您使用非唯一索引。在某些情況下,您可能更願意將條目標記爲無效,而不是將其從樹中刪除。 – salva

2

看看sqlite。它不是一個關係數據庫系統,它本質上是一個支持SQL的無連接,基於文件的數據庫庫。您將程序與它連接起來,它提供了對數據文件執行SQL查詢的功能。

+2

如果你想要一個in-RAM數據庫,你可以使用':memory:'作爲文件名。 – 2011-06-29 15:06:00

+0

@WTP:好點。 –

+1

謝謝你們兩位。 sqlite似乎很好。但我真正想要的是一個數據結構。只需知道數據庫的主要功能(即查詢,存儲和更新)是否可以通過數據結構來實現。希望我清楚。 – snibu

1

看看NoSQL itis FaceBook使用的RMDBS