NoSQL數據庫類型
大小:0.6 MB 人氣: 2017-10-12 需要積分:1
標簽:
有四大NoSQL類型:鍵值存儲(key-value store),文件存儲(document store),列導向的數據庫(Column-Oriented Database)和圖形數據庫(graph database)。每種類型都解決了傳統關系數據庫無法解決的問題。實際的實現往往是這些組合的組合。例如,結合NoSQL類型,Orientdb是一個多模式的數據庫。Orientdb是圖形數據庫,每個節點都是一個文檔。在進入不同的NoSQL數據庫之前,讓我們看看與關系數據庫之間的比較。傳統關系數據庫正在努力的走向規范化:確保每一個數據都只存儲一次。正規化標志著他們的結構設置。舉個例子來說,如果你想把一個人和他的愛好存儲為數據,那么你就可以建兩個表:一個表存儲為人,一個表存儲他們的愛好。如圖1所示,一個附加的表是必要的,因為他們存在著很多關系:一個人可以有多個愛好,然而一個愛好也可以有很多人喜歡。
圖1
一個全面的關系數據庫可以由許多實體和聯系表。現在讓我們看看NoSQL不同的類型的數據庫之間的比較。
Column databases store列存儲數據庫
行數據庫實際上就是傳統的關系數據庫,每一行有一行id,并在一個表中存儲的行中的每個字段。假設,關于愛好,沒有額外的表來存儲并且你只有一個表來描述人,如圖2所示。注意,在這種情況下,你有輕微的反規范化,因為愛好是可以重復的。如果愛好這個信息是一個額外的信息,但在你使用時并不是必不可少的,添加它作為一個列表內的愛好列是可以接受的方法。但是如果這些信息對一個單獨的表來說是不夠的,它應該被存儲在所有的?
圖2
每次你在行存據庫中尋找某個數據,進行每行掃描,不管你需要哪列。假設你只需要生日在9月的列表。數據庫將在表中從上到下和從左到右掃描所有數據,如圖3所示,最終返回生日列表。
非常好我支持^.^
(0) 0%
不好我反對
(0) 0%