總結(jié):
這里講的是NoSQL數(shù)據(jù)庫(kù)的基本原理檬寂,重要的特性和類型终抽。NoSQL數(shù)據(jù)庫(kù)并沒有一種特定的標(biāo)準(zhǔn),因?yàn)槟壳皝碚f還是比較新穎的形式桶至,而且每個(gè)廠商都有每個(gè)廠商的做法昼伴,不同類型的數(shù)據(jù)庫(kù)也有不同數(shù)據(jù)庫(kù)的做法。它更像是傳統(tǒng)數(shù)據(jù)庫(kù)的一種補(bǔ)充镣屹,暫時(shí)還沒辦法完全替代圃郊。在企業(yè)里面一般是混合使用,現(xiàn)在用的比較多的是mongoDB女蜈。
5.1 NoSQL簡(jiǎn)介
Not only SQL
NoSQL數(shù)據(jù)庫(kù)具有以下幾個(gè)特點(diǎn):
(1)靈活的可擴(kuò)展性
(2)靈活的數(shù)據(jù)模型
(3)與云計(jì)算緊密融合
5.2 NoSQL興起的原因
1持舆、關(guān)系數(shù)據(jù)庫(kù)已經(jīng)無法滿足Web2.0的需求。主要表現(xiàn)在以下幾個(gè)方面:
(1)無法滿足海量數(shù)據(jù)的管理需求
(2)無法滿足數(shù)據(jù)高并發(fā)的需求
(3)無法滿足高可擴(kuò)展性和高可用性的需求
- MySQL集群是否可以完全解決問題伪窖?
不能解決問題逸寓,它很復(fù)雜,而且很多操作需要手工去做覆山,無論是復(fù)制擴(kuò)容還是動(dòng)態(tài)數(shù)據(jù)遷移都會(huì)很麻煩竹伸。
3、“One size fits all”模式很難適用于截然不同的業(yè)務(wù)場(chǎng)景
?Hadoop就是針對(duì)數(shù)據(jù)分析
?MongoDB汹买、Redis等是針對(duì)在線業(yè)務(wù)佩伤,兩者都拋棄了關(guān)系模型
- 關(guān)系數(shù)據(jù)庫(kù)的關(guān)鍵特性包括完善的事務(wù)機(jī)制和高效的查詢機(jī)制聊倔。但是,關(guān)系數(shù)據(jù)庫(kù)引以為傲的兩個(gè)關(guān)鍵特性生巡,到了Web2.0時(shí)代卻成了雞肋耙蔑,主要表現(xiàn)在以下幾個(gè)方面:
(1)Web2.0網(wǎng)站系統(tǒng)通常不要求嚴(yán)格的數(shù)據(jù)庫(kù)事務(wù)
(2)Web2.0并不要求嚴(yán)格的讀寫實(shí)時(shí)性
(3)Web2.0通常不包含大量復(fù)雜的SQL查詢(去結(jié)構(gòu)化,存儲(chǔ)空間換取更好的查詢性能)
5.3 NoSQL與關(guān)系數(shù)據(jù)庫(kù)的比較
總結(jié)
(1)關(guān)系數(shù)據(jù)庫(kù) 優(yōu)勢(shì):以完善的關(guān)系代數(shù)理論作為基礎(chǔ)孤荣,有嚴(yán)格的標(biāo)準(zhǔn)甸陌,支持事務(wù)ACID四性,借助索引機(jī)制可以實(shí)現(xiàn)高效的查詢盐股,技術(shù)成熟钱豁,有專業(yè)公司的技術(shù)支持 劣勢(shì):可擴(kuò)展性較差,無法較好支持海量數(shù)據(jù)存儲(chǔ)疯汁,數(shù)據(jù)模型過于死板牲尺、無法較好支持Web2.0應(yīng)用,事務(wù)機(jī)制影響了系統(tǒng)的整體性能等
(2)NoSQL數(shù)據(jù)庫(kù) 優(yōu)勢(shì):可以支持超大規(guī)模數(shù)據(jù)存儲(chǔ)幌蚊,靈活的數(shù)據(jù)模型可以很好地支持Web2.0應(yīng)用谤碳,具有強(qiáng)大的橫向擴(kuò)展能力等 劣勢(shì):缺乏數(shù)學(xué)理論基礎(chǔ),復(fù)雜查詢性能不高溢豆,大都不能實(shí)現(xiàn)事務(wù)強(qiáng)一致性蜒简,很難實(shí)現(xiàn)數(shù)據(jù)完整性,技術(shù)尚不成熟漩仙,缺乏專業(yè)團(tuán)隊(duì)的技術(shù)支持搓茬,維護(hù)較困難等
總結(jié)
關(guān)系數(shù)據(jù)庫(kù)和NoSQL數(shù)據(jù)庫(kù)各有優(yōu)缺點(diǎn),彼此無法取代
?關(guān)系數(shù)據(jù)庫(kù)應(yīng)用場(chǎng)景:電信队他、銀行等領(lǐng)域的關(guān)鍵業(yè)務(wù)系統(tǒng)卷仑,需要保證強(qiáng)事務(wù)一致性
?NoSQL數(shù)據(jù)庫(kù)應(yīng)用場(chǎng)景:互聯(lián)網(wǎng)企業(yè)、傳統(tǒng)企業(yè)的非關(guān)鍵業(yè)務(wù)(比如數(shù)據(jù)分析)
5.4 NoSQL的四大類型
鍵值數(shù)據(jù)庫(kù)麸折、列族數(shù)據(jù)庫(kù)系枪、文檔數(shù)據(jù)庫(kù)和圖形數(shù)據(jù)庫(kù)
5.5 NoSQL的三大基石
- CAP: Consistency、Availability磕谅、Tolerance of Network Partition
一個(gè)分布式系統(tǒng)不可能同時(shí)滿足一致性、可用性和分區(qū)容忍性這三個(gè)需求雾棺,最多只能同時(shí)滿足其中兩個(gè)
- BASE:Basically Availble, Soft-state, Eventual consistency
5.6 從NoSQL到NewSQL數(shù)據(jù)庫(kù)
5.7 文檔數(shù)據(jù)庫(kù)MongoDB
待做
2018.6.17
課程來自中國(guó)大學(xué)mooc膊夹,廈門大學(xué) 林子雨老師的 《大數(shù)據(jù)技術(shù)原理與應(yīng)用》