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