2010-04-02 142 views

回答

2

維基百科:

  • Document data store:由於相對於關係數據庫,基於文檔的數據庫不將數據存儲在每個記錄均勻大小的字段的表。相反,每條記錄都存儲爲具有某些特徵的文檔。任何長度的任何數量的字段都可以添加到文檔中。字段也可以包含多個數據段。 (關聯容器,映射,映射,字典,有限映射,以及查詢處理索引或索引文件)是一個抽象數據類型,由唯一鍵和值集合組成,每個鍵與一個值(或一組值)相關聯。查找與鍵關聯的值的操作稱爲查找或索引,這是關聯數組支持的最重要的操作。密鑰與其值之間的關係有時稱爲映射或綁定。例如,如果與鍵「bob」相關聯的值是7,我們說我們的陣列將「bob」映射到7.

更多示例在NoSQL

9

在文檔數據存儲中,每個記錄都有多個字段,類似於關係數據庫。它也有二級索引。

實例記錄:

"id" => 12345, 
"name" => "Fred", 
"age" => 20, 
"email" => "[email protected]" 

然後,你可以通過ID,姓名,年齡,或發送電子郵件查詢。

鍵/值存儲比傳統數據庫更像是一個大型哈希表:每個鍵與一個值相對應,並且通過該鍵查找事物是訪問記錄的唯一方法。這意味着它更簡單,速度更快,但對於複雜的數據很難使用。

實例記錄:

12345 => "Fred,[email protected],20" 

您只能使用12345爲您查詢條件。您無法查詢姓名,電子郵件或年齡。

+0

然後他們是不是完全一樣的東西,用不同的名字? – 2010-04-03 21:02:52

+0

有一個速度/複雜性交易...我試圖澄清上面。 – kristina 2010-04-04 03:35:27

5

下面是一些常見的數據模型的描述:

  • 關係的系統,我們已經現在用了一段時間的數據庫。 RDBMS和支持ACIDity和連接的系統被認爲是關係型的。
  • 鍵值系統基本上支持基於主鍵的獲取,放入和刪除操作。
  • 面向列的系統仍然使用表格,但沒有連接(連接必須在應用程序中處理)。顯然,它們按列存儲數據,而不是傳統的面向行的數據庫。這使得聚合更容易。
  • 面向文檔的系統存儲結構化的「文檔」,如JSON或XML,但沒有聯接(聯接必須在應用程序中處理)。將數據從面向對象的軟件映射到這些系統是非常容易的。

從這篇博文我寫道:Visual Guide to NoSQL Systems