版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
廈門大學(xué)計(jì)算機(jī)科學(xué)系2015年版
第5章NoSQL數(shù)據(jù)庫
(PPT版本號:2015年6月第1.0版)
《大數(shù)據(jù)技術(shù)原理與應(yīng)用》溫馨提示:編輯幻燈片母版,可以修改每頁P(yáng)PT的廈大校徽和底部文字提綱5.1NoSQL簡介5.2NoSQL興起的原因5.3NoSQL與關(guān)系數(shù)據(jù)庫的比較5.4NoSQL的四大類型5.5NoSQL的三大基石5.6從NoSQL到NewSQL數(shù)據(jù)庫本章小結(jié)歡迎訪問《大數(shù)據(jù)技術(shù)原理與應(yīng)用》教材官方網(wǎng)站:本PPT是如下教材的配套講義:21世紀(jì)高等教育計(jì)算機(jī)規(guī)劃教材《大數(shù)據(jù)技術(shù)原理與應(yīng)用——概念、存儲(chǔ)、處理、分析與應(yīng)用》(2015年6月第1版)廈門大學(xué)林子雨編著,人民郵電出版社ISBN:978-7-115-39287-95.1NoSQL簡介通常,NoSQL數(shù)據(jù)庫具有以下幾個(gè)特點(diǎn):(1)靈活的可擴(kuò)展性(2)靈活的數(shù)據(jù)模型(3)與云計(jì)算緊密融合5.2NoSQL興起的原因1、關(guān)系數(shù)據(jù)庫已經(jīng)無法滿足Web2.0的需求。主要表現(xiàn)在以下幾個(gè)方面:(1)無法滿足海量數(shù)據(jù)的管理需求(2)無法滿足數(shù)據(jù)高并發(fā)的需求(3)無法滿足高可擴(kuò)展性和高可用性的需求2、關(guān)系數(shù)據(jù)庫的關(guān)鍵特性包括完善的事務(wù)機(jī)制和高效的查詢機(jī)制。但是,關(guān)系數(shù)據(jù)庫引以為傲的兩個(gè)關(guān)鍵特性,到了Web2.0時(shí)代卻成了雞肋,主要表現(xiàn)在以下幾個(gè)方面:(1)Web2.0網(wǎng)站系統(tǒng)通常不要求嚴(yán)格的數(shù)據(jù)庫事務(wù)(2)Web2.0并不要求嚴(yán)格的讀寫實(shí)時(shí)性(3)Web2.0通常不包含大量復(fù)雜的SQL查詢5.3NoSQL與關(guān)系數(shù)據(jù)庫的比較比較標(biāo)準(zhǔn)RDBMSNoSQL備注數(shù)據(jù)庫原理完全支持部分支持RDBMS有關(guān)系代數(shù)理論作為基礎(chǔ)NoSQL沒有統(tǒng)一的理論基礎(chǔ)數(shù)據(jù)規(guī)模大超大RDBMS很難實(shí)現(xiàn)橫向擴(kuò)展,縱向擴(kuò)展的空間也比較有限,性能會(huì)隨著數(shù)據(jù)規(guī)模的增大而降低NoSQL可以很容易通過添加更多設(shè)備來支持更大規(guī)模的數(shù)據(jù)數(shù)據(jù)庫模式固定靈活RDBMS需要定義數(shù)據(jù)庫模式,嚴(yán)格遵守?cái)?shù)據(jù)定義和相關(guān)約束條件NoSQL不存在數(shù)據(jù)庫模式,可以自由靈活定義并存儲(chǔ)各種不同類型的數(shù)據(jù)查詢效率快可以實(shí)現(xiàn)高效的簡單查詢,但是不具備高度結(jié)構(gòu)化查詢等特性,復(fù)雜查詢的性能不盡人意RDBMS借助于索引機(jī)制可以實(shí)現(xiàn)快速查詢(包括記錄查詢和范圍查詢)NoSQL沒有索引,雖然NoSQL可以使用MapReduce來加速查詢,但是,在復(fù)雜查詢方面的性能仍然不如RDBMS表5-1NoSQL和關(guān)系數(shù)據(jù)庫的簡單比較5.3NoSQL與關(guān)系數(shù)據(jù)庫的比較比較標(biāo)準(zhǔn)RDBMSNoSQL備注一致性強(qiáng)一致性弱一致性RDBMS嚴(yán)格遵守事務(wù)ACID模型,可以保證事務(wù)強(qiáng)一致性NoSQL放松對事務(wù)ACID四性的要求,而是遵守BASE模型,只能保證最終一致性數(shù)據(jù)完整性容易實(shí)現(xiàn)很難實(shí)現(xiàn)任何一個(gè)RDBMS都可以很容易實(shí)現(xiàn)數(shù)據(jù)完整性,比如通過主鍵或者非空約束來實(shí)現(xiàn)實(shí)體完整性,通過主鍵、外鍵來實(shí)現(xiàn)參照完整性,通過約束或者觸發(fā)器來實(shí)現(xiàn)用戶自定義完整性但是,在NoSQL數(shù)據(jù)庫卻無法實(shí)現(xiàn)擴(kuò)展性一般好RDBMS很難實(shí)現(xiàn)橫向擴(kuò)展,縱向擴(kuò)展的空間也比較有限NoSQL在設(shè)計(jì)之初就充分考慮了橫向擴(kuò)展的需求,可以很容易通過添加廉價(jià)設(shè)備實(shí)現(xiàn)擴(kuò)展可用性好很好RDBMS在任何時(shí)候都以保證數(shù)據(jù)一致性為優(yōu)先目標(biāo),其次才是優(yōu)化系統(tǒng)性能,隨著數(shù)據(jù)規(guī)模的增大,RDBMS為了保證嚴(yán)格的一致性,只能提供相對較弱的可用性NoSQL任何時(shí)候都能提供較高的可用性表5-1NoSQL和關(guān)系數(shù)據(jù)庫的簡單比較(續(xù))5.3NoSQL與關(guān)系數(shù)據(jù)庫的比較比較標(biāo)準(zhǔn)RDBMSNoSQL備注標(biāo)準(zhǔn)化是否RDBMS已經(jīng)標(biāo)準(zhǔn)化(SQL)NoSQL還沒有行業(yè)標(biāo)準(zhǔn),不同的NoSQL數(shù)據(jù)庫都有自己的查詢語言,很難規(guī)范應(yīng)用程序接口技術(shù)支持高低RDBMS經(jīng)過幾十年的發(fā)展,已經(jīng)非常成熟,Oracle等大型廠商都可以提供很好的技術(shù)支持NoSQL在技術(shù)支持方面仍然處于起步階段,還不成熟,缺乏有力的技術(shù)支持可維護(hù)性復(fù)雜復(fù)雜RDBMS需要專門的數(shù)據(jù)庫管理員(DBA)維護(hù)NoSQL數(shù)據(jù)庫雖然沒有DBMS復(fù)雜,也難以維護(hù)表5-1NoSQL和關(guān)系數(shù)據(jù)庫的簡單比較(續(xù))5.4NoSQL的四大類型NoSQL數(shù)據(jù)庫雖然數(shù)量眾多,但是,歸結(jié)起來,典型的NoSQL數(shù)據(jù)庫通常包括鍵值數(shù)據(jù)庫、列族數(shù)據(jù)庫、文檔數(shù)據(jù)庫和圖形數(shù)據(jù)庫5.4NoSQL的四大類型NoSQL數(shù)據(jù)庫雖然數(shù)量眾多,但是,歸結(jié)起來,典型的NoSQL數(shù)據(jù)庫通常包括鍵值數(shù)據(jù)庫、列族數(shù)據(jù)庫、文檔數(shù)據(jù)庫和圖形數(shù)據(jù)庫5.4.1鍵值數(shù)據(jù)庫相關(guān)產(chǎn)品Redis、Riak、SimpleDB、Chordless、Scalaris、Memcached數(shù)據(jù)模型鍵/值對典型應(yīng)用內(nèi)容緩存,比如會(huì)話、配置文件、參數(shù)、購物車等優(yōu)點(diǎn)擴(kuò)展性好,靈活性好,大量寫操作時(shí)性能高缺點(diǎn)無法存儲(chǔ)結(jié)構(gòu)化信息,條件查詢效率較低使用者百度云數(shù)據(jù)庫(Redis)、GitHub(Riak)、BestBuy(Riak)、Twitter(Redis和Memcached)、StackOverFlow(Redis)、Instagram(Redis)、Youtube(Memcached)、Wikipedia(Memcached)列列族族數(shù)數(shù)據(jù)據(jù)庫庫相關(guān)產(chǎn)品BigTable、HBase、Cassandra、HadoopDB、GreenPlum、PNUTS數(shù)據(jù)模型列族典型應(yīng)用分布式數(shù)據(jù)存儲(chǔ)與管理優(yōu)點(diǎn)查找速度快,可擴(kuò)展性強(qiáng),容易進(jìn)行分布式擴(kuò)展,復(fù)雜性低缺點(diǎn)功能較少,大都不支持強(qiáng)事務(wù)一致性使用者Ebay(Cassandra)、Instagram(Cassandra)、NASA(Cassandra)、Twitter(CassandraandHBase)、Facebook(HBase)、Yahoo!(HBase)文文檔檔數(shù)數(shù)據(jù)據(jù)庫庫相關(guān)產(chǎn)品CouchDB、MongoDB、Terrastore、ThruDB、RavenDB、SisoDB、RaptorDB、CloudKit、Perservere、Jackrabbit數(shù)據(jù)模型版本化的文檔典型應(yīng)用存儲(chǔ)、索引并管理面向文檔的數(shù)據(jù)或者類似的半結(jié)構(gòu)化數(shù)據(jù)優(yōu)點(diǎn)性能好,靈活性高,復(fù)雜性低,數(shù)據(jù)結(jié)構(gòu)靈活缺點(diǎn)缺乏統(tǒng)一的查詢語法使用者百度云數(shù)據(jù)庫(MongoDB)、SAP(MongoDB)、Codecademy(MongoDB)、Foursquare(MongoDB)、NBCNews(RavenDB)圖圖形形數(shù)數(shù)據(jù)據(jù)庫庫相關(guān)產(chǎn)品Neo4J、OrientDB、InfoGrid、InfiniteGraph、GraphDB數(shù)據(jù)模型圖結(jié)構(gòu)典型應(yīng)用應(yīng)用于大量復(fù)雜、互連接、低結(jié)構(gòu)化的圖結(jié)構(gòu)場合,比如社交網(wǎng)絡(luò)、推薦系統(tǒng)等優(yōu)點(diǎn)靈活性高,支持復(fù)雜的圖形算法,可用于構(gòu)建復(fù)雜的關(guān)系圖譜缺點(diǎn)復(fù)雜性高,只能支持一定的數(shù)據(jù)規(guī)模使用者Adobe(Neo4J)、Cisco(Neo4J)、T-Mobile(Neo4J)5.5NoSQL的的三三大大基基石石NoSQLCAPBASE最終一致性所謂謂的的CAP指的的是是::C(Consistency)::一致致性性,,是是指指任任何何一一個(gè)個(gè)讀讀操操作作總總是是能能夠夠讀讀到到之之前前完完成成的的寫寫操操作作的的結(jié)結(jié)果果,,也也就就是是在在分分布布式式環(huán)環(huán)境境中中,,多多點(diǎn)點(diǎn)的的數(shù)數(shù)據(jù)據(jù)是是一一致致的的;;A:(Availability)::可用用性性,,是是指指快快速速獲獲取取數(shù)數(shù)據(jù)據(jù),,可可以以在在確確定定的的時(shí)時(shí)間間內(nèi)內(nèi)返返回回操操作作結(jié)結(jié)果果;;P(ToleranceofNetworkPartition):分區(qū)容容忍性性,是是指當(dāng)當(dāng)出現(xiàn)現(xiàn)網(wǎng)絡(luò)絡(luò)分區(qū)區(qū)的情情況時(shí)時(shí)(即即系統(tǒng)統(tǒng)中的的一部部分節(jié)節(jié)點(diǎn)無無法和和其他他節(jié)點(diǎn)點(diǎn)進(jìn)行行通信信),,分離離的系系統(tǒng)也也能夠夠正常常運(yùn)行行。CAP理論告告訴我我們,,一個(gè)個(gè)分布布式系系統(tǒng)不不可能能同時(shí)時(shí)滿足足一致致性、、可用用性和和分區(qū)區(qū)容忍忍性這這三個(gè)個(gè)需求求,最最多只只能同同時(shí)滿滿足其其中兩兩個(gè),,正所所謂““魚和和熊掌掌不可可兼得得”。。(a)初始始狀態(tài)態(tài)一個(gè)犧犧牲一一致性性來換換取可可用性性的實(shí)實(shí)例(b)正常常執(zhí)行行過程程一個(gè)犧犧牲一一致性性來換換取可可用性性的實(shí)實(shí)例(c)更新傳傳播失失敗時(shí)時(shí)的執(zhí)執(zhí)行過過程一個(gè)犧犧牲一一致性性來換換取可可用性性的實(shí)實(shí)例當(dāng)處理理CAP的問題題時(shí),,可以以有幾幾個(gè)明明顯的的選擇擇:CA:也就就是強(qiáng)強(qiáng)調(diào)一一致性性(C)和可可用性性(A),放放棄分分區(qū)容容忍性性(P),最最簡單單的做做法是是把所所有與與事務(wù)務(wù)相關(guān)關(guān)的內(nèi)內(nèi)容都都放到到同一一臺(tái)機(jī)機(jī)器上上。很很顯然然,這這種做做法會(huì)會(huì)嚴(yán)重重影響響系統(tǒng)統(tǒng)的可可擴(kuò)展展性。。傳統(tǒng)統(tǒng)的關(guān)關(guān)系數(shù)數(shù)據(jù)庫庫(MySQL、SQLServer和PostgreSQL),都都采用用了這這種設(shè)設(shè)計(jì)原原則,,因此此,擴(kuò)擴(kuò)展性性都比比較差差CP:也就就是強(qiáng)強(qiáng)調(diào)一一致性性(C)和分分區(qū)容容忍性性(P),放放棄可可用性性(A),當(dāng)當(dāng)出現(xiàn)現(xiàn)網(wǎng)絡(luò)絡(luò)分區(qū)區(qū)的情情況時(shí)時(shí),受受影響響的服服務(wù)需需要等等待數(shù)數(shù)據(jù)一一致,,因此此在等等待期期間就就無法法對外外提供供服務(wù)務(wù)AP:也就就是強(qiáng)強(qiáng)調(diào)可可用性性(A)和分分區(qū)容容忍性性(P),放放棄一一致性性(C),允允許系系統(tǒng)返返回不不一致致的數(shù)數(shù)據(jù)圖5-5不不同同產(chǎn)品品在CAP理論論下的的不同同設(shè)計(jì)計(jì)原則則說起B(yǎng)ASE(BasicallyAvailble,Soft-state,Eventualconsistency),不不得不不談到到ACID。一個(gè)個(gè)數(shù)據(jù)據(jù)庫事事務(wù)具具有ACID四性::A(Atomicity):原原子性性,是是指事事務(wù)必必須是是原子子工作作單元元,對對于其其數(shù)據(jù)據(jù)修改改,要要么全全都執(zhí)執(zhí)行,,要么么全都都不執(zhí)執(zhí)行C(Consistency):一一致性性,是是指事事務(wù)在在完成成時(shí),,必須須使所所有的的數(shù)據(jù)據(jù)都保保持一一致狀狀態(tài)I(Isolation):隔隔離性性,是是指由由并發(fā)發(fā)事務(wù)務(wù)所做做的修修改必必須與與任何何其它它并發(fā)發(fā)事務(wù)務(wù)所做做的修修改隔隔離D(Durability):持持久性性,是是指事事務(wù)完完成之之后,,它對對于系系統(tǒng)的的影響響是永永久性性的,,該修修改即即使出出現(xiàn)致致命的的系統(tǒng)統(tǒng)故障障也將將一直直保持持BASE的基本本含義義是基基本可可用((BasicallyAvailble)、軟軟狀態(tài)態(tài)(Soft-state)和最最終一一致性性(Eventualconsistency):基本可可用基本可可用,,是指指一個(gè)個(gè)分布布式系系統(tǒng)的的一部部分發(fā)發(fā)生問問題變變得不不可用用時(shí),,其他他部分分仍然然可以以正常常使用用,也也就是是允許許分區(qū)區(qū)失敗敗的情情形出出現(xiàn)軟狀態(tài)態(tài)“軟狀狀態(tài)((soft-state)”是是與““硬狀狀態(tài)((hard-state)”相相對應(yīng)應(yīng)的一一種提提法。。數(shù)據(jù)據(jù)庫保保存的的數(shù)據(jù)據(jù)是““硬狀狀態(tài)””時(shí),,可以以保證證數(shù)據(jù)據(jù)一致致性,,即保保證數(shù)數(shù)據(jù)一一直是是正確確的。?!败涇洜顟B(tài)態(tài)”是是指狀狀態(tài)可可以有有一段段時(shí)間間不同同步,,具有有一定定的滯滯后性性BASE的基本本含義義是基基本可可用((BasicallyAvailble)、軟軟狀態(tài)態(tài)(Soft-state)和最最終一一致性性(Eventualconsistency):最終一一致性性一致性性的類類型包包括強(qiáng)強(qiáng)一致致性和和弱一一致性性,二二者的的主要要區(qū)別別在于于高并并發(fā)的的數(shù)據(jù)據(jù)訪問問操作作下,,后續(xù)續(xù)操作作是否否能夠夠獲取取最新新的數(shù)數(shù)據(jù)。。對于于強(qiáng)一一致性性而言言,當(dāng)當(dāng)執(zhí)行行完一一次更更新操操作后后,后后續(xù)的的其他他讀操操作就就可以以保證證讀到到更新新后的的最新新數(shù)據(jù)據(jù);反反之,,如果果不能能保證證后續(xù)續(xù)訪問問讀到到的都都是更更新后后的最最新數(shù)數(shù)據(jù),,那么么就是是弱一一致性性。而而最終終一致致性只只不過過是弱弱一致致性的的一種種特例例,允允許后后續(xù)的的訪問問操作作可以以暫時(shí)時(shí)讀不不到更更新后后的數(shù)數(shù)據(jù),,但是是經(jīng)過過一段段時(shí)間間之后后,必必須最最終讀讀到更更新后后的數(shù)數(shù)據(jù)。。最最終終一致致性最終一一致性性根據(jù)據(jù)更新新數(shù)據(jù)據(jù)后各各進(jìn)程程訪問問到數(shù)數(shù)據(jù)的的時(shí)間間和方方式的的不同同,又又可以以區(qū)分分為::因果一一致性性:如果果進(jìn)程程A通知進(jìn)進(jìn)程B它已更更新了了一個(gè)個(gè)數(shù)據(jù)據(jù)項(xiàng),,那么么進(jìn)程程B的后續(xù)續(xù)訪問問將獲獲得A寫入的的最新新值。。而與與進(jìn)程程A無因果果關(guān)系系的進(jìn)進(jìn)程C的訪問問,仍仍然遵遵守一一般的的最終終一致致性規(guī)規(guī)則“讀己己之所所寫””一致致性:可以以視為為因果果一致致性的的一個(gè)個(gè)特例例。當(dāng)當(dāng)進(jìn)程程A自己執(zhí)執(zhí)行一一個(gè)更更新操操作之之后,,它自自己總總是可可以訪訪問到到更新新過的的值,,絕不不會(huì)看看到舊舊值單調(diào)讀讀一致致性:如果果進(jìn)程程已經(jīng)經(jīng)看到到過數(shù)數(shù)據(jù)對對象的的某個(gè)個(gè)值,,那么么任何何后續(xù)續(xù)訪問問都不不會(huì)返返回在在那個(gè)個(gè)值之之前的的值最最終終一致致性最終一一致性性根據(jù)據(jù)更新新數(shù)據(jù)據(jù)后各各進(jìn)程程訪問問到數(shù)數(shù)據(jù)的的時(shí)間間和方方式的的不同同,又又可以以區(qū)分分為::會(huì)話一一致性性:它把把訪問問存儲(chǔ)儲(chǔ)系統(tǒng)統(tǒng)的進(jìn)進(jìn)程放放到會(huì)會(huì)話((session)的上上下文文中,,只要要會(huì)話話還存存在,,系統(tǒng)統(tǒng)就保保證““讀己己之所所寫””一致致性。。如果果由于于某些些失敗敗情形形令會(huì)會(huì)話終終止,,就要要建立立新的的會(huì)話話,而而且系系統(tǒng)保保證不不會(huì)延延續(xù)到到新的的會(huì)話話單調(diào)寫寫一致致性:系統(tǒng)統(tǒng)保證證來自自同一一個(gè)進(jìn)進(jìn)程的的寫操操作順順序執(zhí)執(zhí)行。。系統(tǒng)統(tǒng)必須須保證證這種種程度度的一一致性性,否否則就就非常常難以以編程程了5.6從從NoSQL到NewSQL數(shù)數(shù)據(jù)庫庫圖5-6大大數(shù)數(shù)據(jù)引引發(fā)數(shù)數(shù)據(jù)處處理架架構(gòu)變變革5.6從從NoSQL到NewSQL數(shù)數(shù)據(jù)庫庫圖5-7關(guān)關(guān)系系數(shù)據(jù)據(jù)庫、、NoSQL和和NewSQL數(shù)據(jù)據(jù)庫產(chǎn)產(chǎn)品分分類圖圖本章小小結(jié)本章介介紹了
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學(xué)一年級10以內(nèi)連加連減口算練習(xí)題1080道
- 一位高中生的懺悔高考語文閱讀理解
- 《汽車知識簡述》課件
- 《初中數(shù)學(xué)打折銷售》課件
- 等離子弧焊類型、原理及其安全特點(diǎn)
- 酒店服務(wù)員的職責(zé)和要求
- 律師行業(yè)安全生產(chǎn)工作總結(jié)
- 財(cái)務(wù)培訓(xùn)與職業(yè)發(fā)展總結(jié)
- 民航技術(shù)行業(yè)技術(shù)工作總結(jié)
- 廣西河池市南丹縣2021-2022學(xué)年六年級上學(xué)期英語期末試卷
- 壯醫(yī)藥水蛭療法
- 2024年高考語文備考之語用新題“語境+語義”專練
- 生產(chǎn)計(jì)劃實(shí)施考核管理辦法
- 200句搞定中考英語詞匯
- 2024年型材切割機(jī)市場需求分析報(bào)告
- 二型糖尿病足
- 汽車文化教案(汽車發(fā)展史)
- 實(shí)習(xí)生安全教育培訓(xùn)課件
- 土木工程認(rèn)識實(shí)習(xí)報(bào)告
- 服務(wù)區(qū)安全生產(chǎn)培訓(xùn)
- 兒童顱內(nèi)腫瘤的診斷與手術(shù)治療
評論
0/150
提交評論