您好,歡迎來(lái)電子發(fā)燒友網(wǎng)! ,新用戶?[免費(fèi)注冊(cè)]

您的位置:電子發(fā)燒友網(wǎng)>源碼下載>數(shù)值算法/人工智能>

NoSQL數(shù)據(jù)庫(kù)類(lèi)型

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

非常好我支持^.^

(0) 0%

不好我反對(duì)

(0) 0%

NoSQL數(shù)據(jù)庫(kù)類(lèi)型下載

相關(guān)電子資料下載

      發(fā)表評(píng)論

      用戶評(píng)論
      評(píng)價(jià):好評(píng)中評(píng)差評(píng)

      發(fā)表評(píng)論,獲取積分! 請(qǐng)遵守相關(guān)規(guī)定!

      ?