版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、,廈門(mén)大學(xué)計(jì)算機(jī)科學(xué)系 2017年2月版本,林子雨廈門(mén)大學(xué)計(jì)算機(jī)科學(xué)系E-mail: ziyulin@xmu.edu.cn主頁(yè):http://www.cs.xmu.edu.cn/linziyu,第5章 NoSQL數(shù)據(jù)庫(kù) (PPT版本號(hào):2017年2月版本),,,,http://dbla
2、b.xmu.edu.cn/post/bigdata,溫馨提示:編輯幻燈片母版,可以修改每頁(yè)P(yáng)PT的廈大校徽和底部文字,《大數(shù)據(jù)技術(shù)原理與應(yīng)用(第2版)》,本章配套教學(xué)視頻,http://dblab.xmu.edu.cn/post/bigdata-online-course/#lesson5,《大數(shù)據(jù)技術(shù)原理與應(yīng)用(第2版)》《第5章 NoSQL數(shù)據(jù)庫(kù)》在線視頻觀看地址,提綱,5.1 NoSQL簡(jiǎn)介5.2 NoSQL興起的原因5.3
3、 NoSQL與關(guān)系數(shù)據(jù)庫(kù)的比較5.4 NoSQL的四大類(lèi)型5.5 NoSQL的三大基石5.6 從NoSQL到NewSQL數(shù)據(jù)庫(kù)5.7 文檔數(shù)據(jù)庫(kù)MongoDB,歡迎訪問(wèn)《大數(shù)據(jù)技術(shù)原理與應(yīng)用》教材官方網(wǎng)站:http://dblab.xmu.edu.cn/post/bigdata,本PPT是如下教材的配套講義:《大數(shù)據(jù)技術(shù)原理與應(yīng)用——概念、存儲(chǔ)、處理、分析與應(yīng)用》 (2017年2月第2版)ISBN:978-7-115-
4、44330-4廈門(mén)大學(xué) 林子雨 編著,人民郵電出版社,5.1 NoSQL簡(jiǎn)介,通常,NoSQL數(shù)據(jù)庫(kù)具有以下幾個(gè)特點(diǎn):(1)靈活的可擴(kuò)展性(2)靈活的數(shù)據(jù)模型(3)與云計(jì)算緊密融合,5.1 NoSQL簡(jiǎn)介,現(xiàn)在已經(jīng)有很多公司使用了NoSQL數(shù)據(jù)庫(kù):GoogleFacebookMozillaAdobeFoursquareLinkedInDiggMcGraw-Hill EducationVermont Publ
5、ic Radio百度、騰訊、阿里、新浪、華為……,5.2 NoSQL興起的原因,1、關(guān)系數(shù)據(jù)庫(kù)已經(jīng)無(wú)法滿足Web2.0的需求。主要表現(xiàn)在以下幾個(gè)方面:(1)無(wú)法滿足海量數(shù)據(jù)的管理需求(2)無(wú)法滿足數(shù)據(jù)高并發(fā)的需求(3)無(wú)法滿足高可擴(kuò)展性和高可用性的需求,5.2 NoSQL興起的原因,復(fù)雜性:部署、管理、配置很復(fù)雜數(shù)據(jù)庫(kù)復(fù)制:MySQL主備之間采用復(fù)制方式,只能是異步復(fù)制,當(dāng)主庫(kù)壓力較大時(shí)可能產(chǎn)生較大延遲,主備切換可能會(huì)丟失
6、最后一部分更新事務(wù),這時(shí)往往需要人工介入,備份和恢復(fù)不方便擴(kuò)容問(wèn)題:如果系統(tǒng)壓力過(guò)大需要增加新的機(jī)器,這個(gè)過(guò)程涉及數(shù)據(jù)重新劃分,整個(gè)過(guò)程比較復(fù)雜,且容易出錯(cuò)動(dòng)態(tài)數(shù)據(jù)遷移問(wèn)題:如果某個(gè)數(shù)據(jù)庫(kù)組壓力過(guò)大,需要將其中部分?jǐn)?shù)據(jù)遷移出去,遷移過(guò)程需要總控節(jié)點(diǎn)整體協(xié)調(diào),以及數(shù)據(jù)庫(kù)節(jié)點(diǎn)的配合。這個(gè)過(guò)程很難做到自動(dòng)化,MySQL集群是否可以完全解決問(wèn)題?,5.2 NoSQL興起的原因,2、“One size fits all”模式很難適用于截然不
7、同的業(yè)務(wù)場(chǎng)景關(guān)系模型作為統(tǒng)一的數(shù)據(jù)模型既被用于數(shù)據(jù)分析,也被用于在線業(yè)務(wù)。但這兩者一個(gè)強(qiáng)調(diào)高吞吐,一個(gè)強(qiáng)調(diào)低延時(shí),已經(jīng)演化出完全不同的架構(gòu)。用同一套模型來(lái)抽象顯然是不合適的Hadoop就是針對(duì)數(shù)據(jù)分析MongoDB、Redis等是針對(duì)在線業(yè)務(wù),兩者都拋棄了關(guān)系模型,5.2 NoSQL興起的原因,3、關(guān)系數(shù)據(jù)庫(kù)的關(guān)鍵特性包括完善的事務(wù)機(jī)制和高效的查詢機(jī)制。但是,關(guān)系數(shù)據(jù)庫(kù)引以為傲的兩個(gè)關(guān)鍵特性,到了Web2.0時(shí)代卻成了雞肋,主要
8、表現(xiàn)在以下幾個(gè)方面:(1)Web2.0網(wǎng)站系統(tǒng)通常不要求嚴(yán)格的數(shù)據(jù)庫(kù)事務(wù)(2)Web2.0并不要求嚴(yán)格的讀寫(xiě)實(shí)時(shí)性(3)Web2.0通常不包含大量復(fù)雜的SQL查詢(去結(jié)構(gòu)化,存儲(chǔ)空間換取更好的查詢性能),5.3 NoSQL與關(guān)系數(shù)據(jù)庫(kù)的比較,表5-1 NoSQL和關(guān)系數(shù)據(jù)庫(kù)的簡(jiǎn)單比較,5.3 NoSQL與關(guān)系數(shù)據(jù)庫(kù)的比較,表5-1 NoSQL和關(guān)系數(shù)據(jù)庫(kù)的簡(jiǎn)單比較(續(xù)),5.3 NoSQL與關(guān)系數(shù)據(jù)庫(kù)的比較,表5-1 NoS
9、QL和關(guān)系數(shù)據(jù)庫(kù)的簡(jiǎn)單比較(續(xù)),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ù)成熟,有專(zhuān)業(yè)公司的技術(shù)支持劣勢(shì):可擴(kuò)展性較差,無(wú)法較好支持海量數(shù)據(jù)存儲(chǔ),數(shù)據(jù)模型過(guò)于死板、無(wú)法較好支持Web2.0應(yīng)用,事務(wù)機(jī)制影響了系統(tǒng)的整體性能等(2)NoSQL數(shù)據(jù)庫(kù)優(yōu)勢(shì):可以支持超大規(guī)模數(shù)據(jù)存儲(chǔ),靈活的數(shù)據(jù)模型可以很
10、好地支持Web2.0應(yīng)用,具有強(qiáng)大的橫向擴(kuò)展能力等劣勢(shì):缺乏數(shù)學(xué)理論基礎(chǔ),復(fù)雜查詢性能不高,大都不能實(shí)現(xiàn)事務(wù)強(qiáng)一致性,很難實(shí)現(xiàn)數(shù)據(jù)完整性,技術(shù)尚不成熟,缺乏專(zhuān)業(yè)團(tuán)隊(duì)的技術(shù)支持,維護(hù)較困難等,5.3 NoSQL與關(guān)系數(shù)據(jù)庫(kù)的比較,總結(jié)關(guān)系數(shù)據(jù)庫(kù)和NoSQL數(shù)據(jù)庫(kù)各有優(yōu)缺點(diǎn),彼此無(wú)法取代關(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ù)分析
11、)采用混合架構(gòu)案例:亞馬遜公司就使用不同類(lèi)型的數(shù)據(jù)庫(kù)來(lái)支撐它的電子商務(wù)應(yīng)用對(duì)于“購(gòu)物籃”這種臨時(shí)性數(shù)據(jù),采用鍵值存儲(chǔ)會(huì)更加高效當(dāng)前的產(chǎn)品和訂單信息則適合存放在關(guān)系數(shù)據(jù)庫(kù)中大量的歷史訂單信息則適合保存在類(lèi)似MongoDB的文檔數(shù)據(jù)庫(kù)中,5.4 NoSQL的四大類(lèi)型,NoSQL數(shù)據(jù)庫(kù)雖然數(shù)量眾多,但是,歸結(jié)起來(lái),典型的NoSQL數(shù)據(jù)庫(kù)通常包括鍵值數(shù)據(jù)庫(kù)、列族數(shù)據(jù)庫(kù)、文檔數(shù)據(jù)庫(kù)和圖形數(shù)據(jù)庫(kù),5.4 NoSQL的四大類(lèi)型,5.4
12、 NoSQL的四大類(lèi)型,文檔數(shù)據(jù)庫(kù),圖數(shù)據(jù)庫(kù),鍵值數(shù)據(jù)庫(kù),列族數(shù)據(jù)庫(kù),5.4.1 鍵值數(shù)據(jù)庫(kù),5.4.1 鍵值數(shù)據(jù)庫(kù),鍵值數(shù)據(jù)庫(kù)成為理想的緩沖層解決方案,Redis有時(shí)候會(huì)被人們稱(chēng)為“強(qiáng)化版的Memcached”支持持久化、數(shù)據(jù)恢復(fù)、更多數(shù)據(jù)類(lèi)型,5.4.2 列族數(shù)據(jù)庫(kù),5.4.3 文檔數(shù)據(jù)庫(kù),“文檔”其實(shí)是一個(gè)數(shù)據(jù)記錄,這個(gè)記錄能夠?qū)Π臄?shù)據(jù)類(lèi)型和內(nèi)容進(jìn)行“自我描述”。XML文檔、HTML文檔和JSON 文檔就屬于這一類(lèi)
13、。SequoiaDB就是使用JSON格式的文檔數(shù)據(jù)庫(kù),它的存儲(chǔ)的數(shù)據(jù)是這樣的:,關(guān)系數(shù)據(jù)庫(kù):必須有schema信息才能理解數(shù)據(jù)的含義學(xué)生(學(xué)號(hào),姓名,性別,年齡,系,年級(jí))(1001,張三,男,20,計(jì)算機(jī),2002),一個(gè)XML文檔:hbase.rootdirhdfs://localhost:9000/hbase ,5.4.3 文檔數(shù)據(jù)庫(kù),數(shù)據(jù)是不規(guī)則的,每一條記錄包含了所有的有關(guān)“SequoiaDB”的信息而沒(méi)有
14、任何外部的引用,這條記錄就是“自包含”的這使得記錄很容易完全移動(dòng)到其他服務(wù)器,因?yàn)檫@條記錄的所有信息都包含在里面了,不需要考慮還有信息在別的表沒(méi)有一起遷移走同時(shí),因?yàn)樵谝苿?dòng)過(guò)程中,只有被移動(dòng)的那一條記錄(文檔)需要操作,而不像關(guān)系型中每個(gè)有關(guān)聯(lián)的表都需要鎖住來(lái)保證一致性,這樣一來(lái)ACID的保證就會(huì)變得更快速,讀寫(xiě)的速度也會(huì)有很大的提升,5.4.3 文檔數(shù)據(jù)庫(kù),5.4.4 圖形數(shù)據(jù)庫(kù),5.4.5 不同類(lèi)型數(shù)據(jù)庫(kù)比較分析,MySQL
15、產(chǎn)生年代較早,而且隨著LAMP大潮得以成熟。盡管其沒(méi)有什么大的改進(jìn),但是新興的互聯(lián)網(wǎng)使用的最多的數(shù)據(jù)庫(kù)MongoDB是個(gè)新生事物,提供更靈活的數(shù)據(jù)模型、異步提交、地理位置索引等五花十色的功能HBase是個(gè)“仗勢(shì)欺人”的大象兵。依仗著Hadoop的生態(tài)環(huán)境,可以有很好的擴(kuò)展性。但是就像象兵一樣,使用者需要養(yǎng)一頭大象(Hadoop),才能驅(qū)使他Redis是鍵值存儲(chǔ)的代表,功能最簡(jiǎn)單。提供隨機(jī)數(shù)據(jù)存儲(chǔ)。就像一根棒子一樣,沒(méi)有多余的構(gòu)造。
16、但是也正是因此,它的伸縮性特別好。就像悟空手里的金箍棒,大可捅破天,小能成縮成針,5.5 NoSQL的三大基石,5.5.1 CAP,所謂的CAP指的是:C(Consistency):一致性,是指任何一個(gè)讀操作總是能夠讀到之前完成的寫(xiě)操作的結(jié)果,也就是在分布式環(huán)境中,多點(diǎn)的數(shù)據(jù)是一致的,或者說(shuō),所有節(jié)點(diǎn)在同一時(shí)間具有相同的數(shù)據(jù)A:(Availability):可用性,是指快速獲取數(shù)據(jù),可以在確定的時(shí)間內(nèi)返回操作結(jié)果,保證每個(gè)請(qǐng)求不
17、管成功或者失敗都有響應(yīng);P(Tolerance of Network Partition):分區(qū)容忍性,是指當(dāng)出現(xiàn)網(wǎng)絡(luò)分區(qū)的情況時(shí)(即系統(tǒng)中的一部分節(jié)點(diǎn)無(wú)法和其他節(jié)點(diǎn)進(jìn)行通信),分離的系統(tǒng)也能夠正常運(yùn)行,也就是說(shuō),系統(tǒng)中任意信息的丟失或失敗不會(huì)影響系統(tǒng)的繼續(xù)運(yùn)作。,5.5.1 CAP,CAP理論告訴我們,一個(gè)分布式系統(tǒng)不可能同時(shí)滿足一致性、可用性和分區(qū)容忍性這三個(gè)需求,最多只能同時(shí)滿足其中兩個(gè),正所謂“魚(yú)和熊掌不可兼得”。,5.5.
18、1 CAP,(a)初始狀態(tài),一個(gè)犧牲一致性來(lái)?yè)Q取可用性的實(shí)例,5.5.1 CAP,(b)正常執(zhí)行過(guò)程,一個(gè)犧牲一致性來(lái)?yè)Q取可用性的實(shí)例,5.5.1 CAP,(c) 更新傳播失敗時(shí)的執(zhí)行過(guò)程,一個(gè)犧牲一致性來(lái)?yè)Q取可用性的實(shí)例,5.5.1 CAP,當(dāng)處理CAP的問(wèn)題時(shí),可以有幾個(gè)明顯的選擇:CA:也就是強(qiáng)調(diào)一致性(C)和可用性(A),放棄分區(qū)容忍性(P),最簡(jiǎn)單的做法是把所有與事務(wù)相關(guān)的內(nèi)容都放到同一臺(tái)機(jī)器上。很顯然,這種做法會(huì)嚴(yán)
19、重影響系統(tǒng)的可擴(kuò)展性。傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)(MySQL、SQL Server和PostgreSQL),都采用了這種設(shè)計(jì)原則,因此,擴(kuò)展性都比較差CP:也就是強(qiáng)調(diào)一致性(C)和分區(qū)容忍性(P),放棄可用性(A),當(dāng)出現(xiàn)網(wǎng)絡(luò)分區(qū)的情況時(shí),受影響的服務(wù)需要等待數(shù)據(jù)一致,因此在等待期間就無(wú)法對(duì)外提供服務(wù)AP:也就是強(qiáng)調(diào)可用性(A)和分區(qū)容忍性(P),放棄一致性(C),允許系統(tǒng)返回不一致的數(shù)據(jù),5.5.1 CAP,圖5-5 不同產(chǎn)品在CAP理論
20、下的不同設(shè)計(jì)原則,5.5.2 BASE,說(shuō)起B(yǎng)ASE(Basically Availble, Soft-state, Eventual consistency),不得不談到ACID。,5.5.2 BASE,一個(gè)數(shù)據(jù)庫(kù)事務(wù)具有ACID四性:A(Atomicity):原子性,是指事務(wù)必須是原子工作單元,對(duì)于其數(shù)據(jù)修改,要么全都執(zhí)行,要么全都不執(zhí)行C(Consistency):一致性,是指事務(wù)在完成時(shí),必須使所有的數(shù)據(jù)都保持一致?tīng)顟B(tài)
21、I(Isolation):隔離性,是指由并發(fā)事務(wù)所做的修改必須與任何其它并發(fā)事務(wù)所做的修改隔離D(Durability):持久性,是指事務(wù)完成之后,它對(duì)于系統(tǒng)的影響是永久性的,該修改即使出現(xiàn)致命的系統(tǒng)故障也將一直保持,5.5.2 BASE,BASE的基本含義是基本可用(Basically Availble)、軟狀態(tài)(Soft-state)和最終一致性(Eventual consistency):,基本可用 基本可用,是
22、指一個(gè)分布式系統(tǒng)的一部分發(fā)生問(wèn)題變得不可用時(shí),其他部分仍然可以正常使用,也就是允許分區(qū)失敗的情形出現(xiàn)軟狀態(tài) “軟狀態(tài)(soft-state)”是與“硬狀態(tài)(hard-state)”相對(duì)應(yīng)的一種提法。數(shù)據(jù)庫(kù)保存的數(shù)據(jù)是“硬狀態(tài)”時(shí),可以保證數(shù)據(jù)一致性,即保證數(shù)據(jù)一直是正確的。“軟狀態(tài)”是指狀態(tài)可以有一段時(shí)間不同步,具有一定的滯后性,5.5.2 BASE,BASE的基本含義是基本可用(Basically Availble
23、)、軟狀態(tài)(Soft-state)和最終一致性(Eventual consistency):,最終一致性 一致性的類(lèi)型包括強(qiáng)一致性和弱一致性,二者的主要區(qū)別在于高并發(fā)的數(shù)據(jù)訪問(wèn)操作下,后續(xù)操作是否能夠獲取最新的數(shù)據(jù)。對(duì)于強(qiáng)一致性而言,當(dāng)執(zhí)行完一次更新操作后,后續(xù)的其他讀操作就可以保證讀到更新后的最新數(shù)據(jù);反之,如果不能保證后續(xù)訪問(wèn)讀到的都是更新后的最新數(shù)據(jù),那么就是弱一致性。而最終一致性只不過(guò)是弱一致性的一種特例,允許后續(xù)
24、的訪問(wèn)操作可以暫時(shí)讀不到更新后的數(shù)據(jù),但是經(jīng)過(guò)一段時(shí)間之后,必須最終讀到更新后的數(shù)據(jù)。 最常見(jiàn)的實(shí)現(xiàn)最終一致性的系統(tǒng)是DNS(域名系統(tǒng))。一個(gè)域名更新操作根據(jù)配置的形式被分發(fā)出去,并結(jié)合有過(guò)期機(jī)制的緩存;最終所有的客戶端可以看到最新的值。,5.5.3 最終一致性,最終一致性根據(jù)更新數(shù)據(jù)后各進(jìn)程訪問(wèn)到數(shù)據(jù)的時(shí)間和方式的不同,又可以區(qū)分為:因果一致性:如果進(jìn)程A通知進(jìn)程B它已更新了一個(gè)數(shù)據(jù)項(xiàng),那么進(jìn)程B的后續(xù)訪問(wèn)將獲得A寫(xiě)入的最
25、新值。而與進(jìn)程A無(wú)因果關(guān)系的進(jìn)程C的訪問(wèn),仍然遵守一般的最終一致性規(guī)則“讀己之所寫(xiě)”一致性:可以視為因果一致性的一個(gè)特例。當(dāng)進(jìn)程A自己執(zhí)行一個(gè)更新操作之后,它自己總是可以訪問(wèn)到更新過(guò)的值,絕不會(huì)看到舊值單調(diào)讀一致性:如果進(jìn)程已經(jīng)看到過(guò)數(shù)據(jù)對(duì)象的某個(gè)值,那么任何后續(xù)訪問(wèn)都不會(huì)返回在那個(gè)值之前的值,5.5.3 最終一致性,最終一致性根據(jù)更新數(shù)據(jù)后各進(jìn)程訪問(wèn)到數(shù)據(jù)的時(shí)間和方式的不同,又可以區(qū)分為:會(huì)話一致性:它把訪問(wèn)存儲(chǔ)系統(tǒng)的進(jìn)程放到
26、會(huì)話(session)的上下文中,只要會(huì)話還存在,系統(tǒng)就保證“讀己之所寫(xiě)”一致性。如果由于某些失敗情形令會(huì)話終止,就要建立新的會(huì)話,而且系統(tǒng)保證不會(huì)延續(xù)到新的會(huì)話單調(diào)寫(xiě)一致性:系統(tǒng)保證來(lái)自同一個(gè)進(jìn)程的寫(xiě)操作順序執(zhí)行。系統(tǒng)必須保證這種程度的一致性,否則就非常難以編程了,5.5.3 最終一致性,如何實(shí)現(xiàn)各種類(lèi)型的一致性?對(duì)于分布式數(shù)據(jù)系統(tǒng):N — 數(shù)據(jù)復(fù)制的份數(shù)W — 更新數(shù)據(jù)是需要保證寫(xiě)完成的節(jié)點(diǎn)數(shù)R — 讀取數(shù)據(jù)的時(shí)候需
27、要讀取的節(jié)點(diǎn)數(shù)如果W+R>N,寫(xiě)的節(jié)點(diǎn)和讀的節(jié)點(diǎn)重疊,則是強(qiáng)一致性。例如對(duì)于典型的一主一備同步復(fù)制的關(guān)系型數(shù)據(jù)庫(kù),N=2,W=2,R=1,則不管讀的是主庫(kù)還是備庫(kù)的數(shù)據(jù),都是一致的。一般設(shè)定是R+W = N+1,這是保證強(qiáng)一致性的最小設(shè)定如果W+R<=N,則是弱一致性。例如對(duì)于一主一備異步復(fù)制的關(guān)系型數(shù)據(jù)庫(kù),N=2,W=1,R=1,則如果讀的是備庫(kù),就可能無(wú)法讀取主庫(kù)已經(jīng)更新過(guò)的數(shù)據(jù),所以是弱一致性。,5.5.3
28、最終一致性,對(duì)于分布式系統(tǒng),為了保證高可用性,一般設(shè)置N>=3。不同的N,W,R組合,是在可用性和一致性之間取一個(gè)平衡,以適應(yīng)不同的應(yīng)用場(chǎng)景。如果N=W,R=1,任何一個(gè)寫(xiě)節(jié)點(diǎn)失效,都會(huì)導(dǎo)致寫(xiě)失敗,因此可用性會(huì)降低,但是由于數(shù)據(jù)分布的N個(gè)節(jié)點(diǎn)是同步寫(xiě)入的,因此可以保證強(qiáng)一致性。實(shí)例:HBase是借助其底層的HDFS來(lái)實(shí)現(xiàn)其數(shù)據(jù)冗余備份的。HDFS采用的就是強(qiáng)一致性保證。在數(shù)據(jù)沒(méi)有完全同步到N個(gè)節(jié)點(diǎn)前,寫(xiě)操作是不會(huì)返回成功的
29、。也就是說(shuō)它的W=N,而讀操作只需要讀到一個(gè)值即可,也就是說(shuō)它R=1。像Voldemort,Cassandra和Riak這些類(lèi)Dynamo的系統(tǒng),通常都允許用戶按需要設(shè)置N,R,W三個(gè)值,即使是設(shè)置成W+R<= N也是可以的。也就是說(shuō)他允許用戶在強(qiáng)一致性和最終一致性之間自由選擇。而在用戶選擇了最終一致性,或者是W<N的強(qiáng)一致性時(shí),則總會(huì)出現(xiàn)一段“各個(gè)節(jié)點(diǎn)數(shù)據(jù)不同步導(dǎo)致系統(tǒng)處理不一致的時(shí)間”。為了提供最終一致性的支持,這些
30、系統(tǒng)會(huì)提供一些工具來(lái)使數(shù)據(jù)更新被最終同步到所有相關(guān)節(jié)點(diǎn)。,5.6 從NoSQL到NewSQL數(shù)據(jù)庫(kù),圖5-6 大數(shù)據(jù)引發(fā)數(shù)據(jù)處理架構(gòu)變革,5.6 從NoSQL到NewSQL數(shù)據(jù)庫(kù),圖5-7 關(guān)系數(shù)據(jù)庫(kù)、NoSQL和NewSQL數(shù)據(jù)庫(kù)產(chǎn)品分類(lèi)圖,5.7 文檔數(shù)據(jù)庫(kù)MongoDB,5.7.1 MongoDB簡(jiǎn)介5.7.2 MongoDB概念解析5.7.3 安裝MongoDB,具體請(qǐng)參考網(wǎng)絡(luò)教程:http://www.runoob.c
31、om/mongodb/mongodb-tutorial.html,或者參考廈門(mén)大學(xué)數(shù)據(jù)庫(kù)實(shí)驗(yàn)室建設(shè)的中國(guó)高校大數(shù)據(jù)課程公共服務(wù)平臺(tái)的技術(shù)文章:http://dblab.xmu.edu.cn/blog/115/,5.7.1 MongoDB簡(jiǎn)介,MongoDB 是由C++語(yǔ)言編寫(xiě)的,是一個(gè)基于分布式文件存儲(chǔ)的開(kāi)源數(shù)據(jù)庫(kù)系統(tǒng)。在高負(fù)載的情況下,添加更多的節(jié)點(diǎn),可以保證服務(wù)器性能。MongoDB 旨在為WEB應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲(chǔ)解
32、決方案。MongoDB 將數(shù)據(jù)存儲(chǔ)為一個(gè)文檔,數(shù)據(jù)結(jié)構(gòu)由鍵值(key=>value)對(duì)組成。MongoDB 文檔類(lèi)似于 JSON 對(duì)象。字段值可以包含其他文檔,數(shù)組及文檔數(shù)組。,5.7.1 MongoDB簡(jiǎn)介,提供了一個(gè)面向文檔存儲(chǔ),操作起來(lái)比較簡(jiǎn)單和容易可以設(shè)置任何屬性的索引來(lái)實(shí)現(xiàn)更快的排序具有較好的水平可擴(kuò)展性支持豐富的查詢表達(dá)式,可輕易查詢文檔中內(nèi)嵌的對(duì)象及數(shù)組可以實(shí)現(xiàn)替換完成的文檔(數(shù)據(jù))或者一些指定的數(shù)據(jù)字段
33、MongoDB中的Map/Reduce主要是用來(lái)對(duì)數(shù)據(jù)進(jìn)行批量處理和聚合操作支持各種編程語(yǔ)言:RUBY,PYTHON,JAVA,C++,PHP,C#等語(yǔ)言MongoDB安裝簡(jiǎn)單,主要特點(diǎn),5.7.2 MongoDB概念解析,在mongodb中基本的概念是文檔、集合、數(shù)據(jù)庫(kù),5.7.2 MongoDB概念解析,通過(guò)下圖實(shí)例,我們也可以更直觀的的了解MongoDB中的一些概念:,,{ "_id"
34、: ObjectId("5146bb52d8524270060001f3"), "age": 25, "city": "Los Angeles", "email": "mark@abc.com", "user_name&qu
35、ot;: "Mark Hanks "}{"_id": ObjectId("5146bb52d8524270060001f2"),"age": 31,"city": "Dallas","email": "richard@abc.com","user_
36、name": "Richard Peter "},5.7.2 MongoDB概念解析,舉例2:在一個(gè)關(guān)系型數(shù)據(jù)庫(kù)中,一篇博客(包含文章內(nèi)容、評(píng)論、評(píng)論的投票)會(huì)被打散在多張數(shù)據(jù)表中。在文檔數(shù)據(jù)庫(kù)MongoDB中,能用一個(gè)文檔來(lái)表示一篇博客, 評(píng)論與投票作為文檔數(shù)組,放在正文主文檔中。這樣數(shù)據(jù)更易于管理,消除了傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)中影響性能和水平擴(kuò)展性的“JOIN”操作。,author:,blogposts:,
37、comments:,5.7.2 MongoDB概念解析,{“id”:1,“author”:”Jane”,“blogposts”:{ “tile”:”MyFirstPost”, “comment”:{ “by”:”Ada”,”text”:”Good post
38、” } }},關(guān)系數(shù)據(jù)庫(kù)中的其中一條記錄,在文檔數(shù)據(jù)庫(kù)MongoDB中的存儲(chǔ)方式類(lèi)似如下:,5.7.2 MongoDB概念解析,數(shù)據(jù)庫(kù),一個(gè)mongodb中可以建立多個(gè)數(shù)據(jù)庫(kù)。MongoDB的默認(rèn)數(shù)據(jù)庫(kù)為"db&
39、quot;,該數(shù)據(jù)庫(kù)存儲(chǔ)在data目錄中。MongoDB的單個(gè)實(shí)例可以容納多個(gè)獨(dú)立的數(shù)據(jù)庫(kù),每一個(gè)都有自己的集合和權(quán)限,不同的數(shù)據(jù)庫(kù)也放置在不同的文件中。,文檔,文檔是一個(gè)鍵值(key-value)對(duì)(即BSON)。MongoDB 的文檔不需要設(shè)置相同的字段,并且相同的字段不需要相同的數(shù)據(jù)類(lèi)型,這與關(guān)系型數(shù)據(jù)庫(kù)有很大的區(qū)別,也是 MongoDB 非常突出的特點(diǎn)。,一個(gè)簡(jiǎn)單的文檔例子如下:,{“site”:“dblab.xmu.edu.
40、cn”, “name”:“廈門(mén)大學(xué)數(shù)據(jù)庫(kù)實(shí)驗(yàn)室"},5.7.2 MongoDB概念解析,下表列出了 RDBMS 與 MongoDB 對(duì)應(yīng)的術(shù)語(yǔ):,5.7.2 MongoDB概念解析,集合,集合就是 MongoDB 文檔組,類(lèi)似于 RDBMS (關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng):Relational Database Management System)中的表格。集合存在于數(shù)據(jù)庫(kù)中,集合沒(méi)有固定的結(jié)構(gòu),這意味著你在對(duì)集合可以插入不同格式和類(lèi)
41、型的數(shù)據(jù),但通常情況下我們插入集合的數(shù)據(jù)都會(huì)有一定的關(guān)聯(lián)性。比如,我們可以將以下不同數(shù)據(jù)結(jié)構(gòu)的文檔插入到集合中:,{"site":"www.baidu.com"} {“site”:“dblab.xmu.edu.cn”, “name”:“廈門(mén)大學(xué)數(shù)據(jù)庫(kù)實(shí)驗(yàn)室"} {"site":"www.runoob.com","name"
42、:"菜鳥(niǎo)教程","num":5},5.7.2 MongoDB概念解析,MongoDB 數(shù)據(jù)類(lèi)型,5.7.3 安裝MongoDB,Window平臺(tái)安裝 MongoDB,MongoDB提供了可用于32位和64位系統(tǒng)的預(yù)編譯二進(jìn)制包,你可以從MongoDB官網(wǎng)下載安裝,MongoDB預(yù)編譯二進(jìn)制包下載地址:http://www.mongodb.org/downloads注意:在 MongoD
43、B2.2 版本后已經(jīng)不再支持 Windows XP 系統(tǒng)。,Linux平臺(tái)安裝MongoDB,MongoDB提供了linux平臺(tái)上32位和64位的安裝包,你可以在官網(wǎng)下載安裝包。下載地址:http://www.mongodb.org/downloads,啟動(dòng) MongoDB服務(wù),只需要在MongoDB安裝目錄的bin目錄下執(zhí)行'mongod'即可,5.7.4 訪問(wèn)MongoDB,5.7.4.1 使用 MongoDB s
44、hell訪問(wèn)MongoDB5.7.4.2 使用Java程序訪問(wèn) MongoDB,5.7.4.1 使用 MongoDB shell訪問(wèn)MongoDB,mongodb://localhost,使用 MongoDB shell 來(lái)連接 MongoDB 服務(wù)器,使用用戶名和密碼連接登陸到指定數(shù)據(jù)庫(kù):,mongodb://admin:123456@localhost/test,5.7.4.1 使用 MongoDB shell訪問(wèn)MongoDB,
45、MongoDB 創(chuàng)建數(shù)據(jù)庫(kù),MongoDB 創(chuàng)建數(shù)據(jù)庫(kù)的語(yǔ)法格式如下:,use DATABASE_NAME,如果數(shù)據(jù)庫(kù)不存在,則創(chuàng)建數(shù)據(jù)庫(kù),否則切換到指定數(shù)據(jù)庫(kù)。,如果你想查看所有數(shù)據(jù)庫(kù),可以使用 show dbs 命令,創(chuàng)建集合,MongoDB沒(méi)有單獨(dú)創(chuàng)建集合名的shell命令,在插入數(shù)據(jù)的時(shí)候,MongoDB會(huì)自動(dòng)創(chuàng)建對(duì)應(yīng)的集合。,5.7.4.1 使用 MongoDB shell訪問(wèn)MongoDB,MongoDB
46、 插入文檔,文檔的數(shù)據(jù)結(jié)構(gòu)和JSON基本一樣。所有存儲(chǔ)在集合中的數(shù)據(jù)都是BSON格式。BSON是一種類(lèi)JSON的一種二進(jìn)制形式的存儲(chǔ)格式,簡(jiǎn)稱(chēng)Binary JSON。,MongoDB 使用 insert() 或 save() 方法向集合中插入文檔,語(yǔ)法如下:,db.COLLECTION_NAME.insert(document),實(shí)例,>db.col.insert({title: 'MongoDB 教程
47、9;, description: 'MongoDB 是一個(gè) Nosql 數(shù)據(jù)庫(kù)', by: ‘廈門(mén)大學(xué)數(shù)據(jù)庫(kù)實(shí)驗(yàn)室', url: 'http://dblab.xmu.edu.cn', tags: ['mongodb', 'database', 'NoSQL'], likes: 100 }),5.7.4.2 使用Java程序訪問(wèn) Mongo
48、DB,MongoDB Java,環(huán)境配置在Java程序中如果要使用MongoDB,需要確保已經(jīng)安裝了Java環(huán)境及MongoDB JDBC 驅(qū)動(dòng)。首先必須下載mongo jar包,下載地址:https://github.com/mongodb/mongo-java-driver/downloads, 請(qǐng)確保下載最新版本。需要將mongo.jar包含在你的 classpath 中,5.7.4.2 使用Java程序訪問(wèn) MongoDB
49、,(1)連接數(shù)據(jù)庫(kù),import com.mongodb.MongoClient;……//這里省略其他需要導(dǎo)入的包public class MongoDBJDBC{ public static void main( String args[] ){ try{ // 連接到 mongodb 服務(wù) MongoClient mongoClient = new MongoClient( &q
50、uot;localhost" , 27017 ); // 連接到數(shù)據(jù)庫(kù) DB db = mongoClient.getDB( "test" ); System.out.println("Connect to database successfully"); boolean auth = db.authenticate(myUse
51、rName, myPassword); System.out.println("Authentication: "+auth); }catch(Exception e){ System.err.println( e.getClass().getName() + ": " + e.getMessage() ); } }},5.7.4.2 使用Java程序訪
52、問(wèn) MongoDB,(2)創(chuàng)建集合,可以使用com.mongodb.DB類(lèi)中的createCollection()來(lái)創(chuàng)建集合,public class MongoDBJDBC{ public static void main( String args[] ){ try{ // 連接到 mongodb 服務(wù) MongoClient mongoClient = new MongoClie
53、nt( "localhost" , 27017 ); // 連接到數(shù)據(jù)庫(kù) DB db = mongoClient.getDB( "test" ); System.out.println("Connect to database successfully"); boolean auth = db.authenticate(
54、myUserName, myPassword); System.out.println("Authentication: "+auth); DBCollection coll = db.createCollection("mycol"); System.out.println("Collection created successfully&quo
55、t;); }catch(Exception e){ System.err.println( e.getClass().getName() + ": " + e.getMessage() ); } }},5.7.4.2 使用Java程序訪問(wèn) MongoDB,(3)插入文檔,可以使用com.mongodb.DBCollection類(lèi)的 insert() 方法來(lái)插入一個(gè)文檔,publi
56、c class MongoDBJDBC{ public static void main( String args[] ){ try{ // 連接到 mongodb 服務(wù) MongoClient mongoClient = new MongoClient( "localhost" , 27017 ); // 連接到數(shù)據(jù)庫(kù) DB db =
57、 mongoClient.getDB( "test" ); System.out.println("Connect to database successfully"); boolean auth = db.authenticate(myUserName, myPassword); System.out.println("Authentication: &quo
58、t;+auth); DBCollection coll = db.getCollection("mycol"); System.out.println("Collection mycol selected successfully"); BasicDBObject doc = new BasicDBObject("t
59、itle", "MongoDB"). append("description", "database"). append("likes", 100). append("url", "http://www.w3cschool.cc/mongodb/&
60、quot;). append("by", "w3cschool.cc"); coll.insert(doc); System.out.println("Document inserted successfully"); }catch(Exception e){ System.err.printl
61、n( e.getClass().getName() + ": " + e.getMessage() ); } }},本章小結(jié),本章介紹了NoSQL數(shù)據(jù)庫(kù)的相關(guān)知識(shí)NoSQL數(shù)據(jù)庫(kù)較好地滿足了大數(shù)據(jù)時(shí)代的各種非結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ)需求,開(kāi)始得到越來(lái)越廣泛的應(yīng)用。但是,需要指出的是,傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)和NoSQL數(shù)據(jù)庫(kù)各有所長(zhǎng),彼此都有各自的市場(chǎng)空間,不存在一方完全取代另一方的問(wèn)題,在很長(zhǎng)的一段時(shí)期內(nèi),二者都會(huì)
62、共同存在,滿足不同應(yīng)用的差異化需求NoSQL數(shù)據(jù)庫(kù)主要包括鍵值數(shù)據(jù)庫(kù)、列族數(shù)據(jù)庫(kù)、文檔型數(shù)據(jù)庫(kù)和圖形數(shù)據(jù)庫(kù)等四種類(lèi)型,不同產(chǎn)品都有各自的應(yīng)用場(chǎng)合。CAP、BASE和最終一致性是NoSQL數(shù)據(jù)庫(kù)的三大理論基石,是理解NoSQL數(shù)據(jù)庫(kù)的基礎(chǔ)介紹了融合傳統(tǒng)關(guān)系數(shù)據(jù)庫(kù)和NoSQL優(yōu)點(diǎn)的NewSQL數(shù)據(jù)庫(kù)本章最后介紹了具有代表性的NoSQL數(shù)據(jù)庫(kù)——文檔數(shù)據(jù)庫(kù)MongoDB,附錄:主講教師林子雨簡(jiǎn)介,,單位:廈門(mén)大學(xué)計(jì)算機(jī)科學(xué)系E-mai
63、l: ziyulin@xmu.edu.cn個(gè)人網(wǎng)頁(yè):http://www.cs.xmu.edu.cn/linziyu數(shù)據(jù)庫(kù)實(shí)驗(yàn)室網(wǎng)站:http://dblab.xmu.edu.cn,主講教師:林子雨,林子雨,男,1978年出生,博士(畢業(yè)于北京大學(xué)),現(xiàn)為廈門(mén)大學(xué)計(jì)算機(jī)科學(xué)系助理教授(講師),曾任廈門(mén)大學(xué)信息科學(xué)與技術(shù)學(xué)院院長(zhǎng)助理、晉江市發(fā)展和改革局副局長(zhǎng)。中國(guó)計(jì)算機(jī)學(xué)會(huì)數(shù)據(jù)庫(kù)專(zhuān)業(yè)委員會(huì)委員,中國(guó)計(jì)算機(jī)學(xué)會(huì)信息系統(tǒng)專(zhuān)業(yè)委員會(huì)委員,榮
64、獲“2016中國(guó)大數(shù)據(jù)創(chuàng)新百人”稱(chēng)號(hào)。中國(guó)高校首個(gè)“數(shù)字教師”提出者和建設(shè)者,廈門(mén)大學(xué)數(shù)據(jù)庫(kù)實(shí)驗(yàn)室負(fù)責(zé)人,廈門(mén)大學(xué)云計(jì)算與大數(shù)據(jù)研究中心主要建設(shè)者和骨干成員,2013年度廈門(mén)大學(xué)獎(jiǎng)教金獲得者。主要研究方向?yàn)閿?shù)據(jù)庫(kù)、數(shù)據(jù)倉(cāng)庫(kù)、數(shù)據(jù)挖掘、大數(shù)據(jù)、云計(jì)算和物聯(lián)網(wǎng),并以第一作者身份在《軟件學(xué)報(bào)》《計(jì)算機(jī)學(xué)報(bào)》和《計(jì)算機(jī)研究與發(fā)展》等國(guó)家重點(diǎn)期刊以及國(guó)際學(xué)術(shù)會(huì)議上發(fā)表多篇學(xué)術(shù)論文。作為項(xiàng)目負(fù)責(zé)人主持的科研項(xiàng)目包括1項(xiàng)國(guó)家自然科學(xué)青年基金項(xiàng)目(No
65、.61303004)、1項(xiàng)福建省自然科學(xué)青年基金項(xiàng)目(No.2013J05099)和1項(xiàng)中央高?;究蒲袠I(yè)務(wù)費(fèi)項(xiàng)目(No.2011121049),同時(shí),作為課題負(fù)責(zé)人完成了國(guó)家發(fā)改委城市信息化重大課題、國(guó)家物聯(lián)網(wǎng)重大應(yīng)用示范工程區(qū)域試點(diǎn)泉州市工作方案、2015泉州市互聯(lián)網(wǎng)經(jīng)濟(jì)調(diào)研等課題。中國(guó)高校首個(gè)“數(shù)字教師”提出者和建設(shè)者,2009年至今,“數(shù)字教師”大平臺(tái)累計(jì)向網(wǎng)絡(luò)免費(fèi)發(fā)布超過(guò)100萬(wàn)字高價(jià)值的研究和教學(xué)資料,累計(jì)網(wǎng)絡(luò)訪問(wèn)量超過(guò)10
66、0萬(wàn)次。打造了中國(guó)高校大數(shù)據(jù)教學(xué)知名品牌,編著出版了中國(guó)高校第一本系統(tǒng)介紹大數(shù)據(jù)知識(shí)的專(zhuān)業(yè)教材《大數(shù)據(jù)技術(shù)原理與應(yīng)用》,并成為京東、當(dāng)當(dāng)網(wǎng)等網(wǎng)店暢銷(xiāo)書(shū)籍;建設(shè)了國(guó)內(nèi)高校首個(gè)大數(shù)據(jù)課程公共服務(wù)平臺(tái),為教師教學(xué)和學(xué)生學(xué)習(xí)大數(shù)據(jù)課程提供全方位、一站式服務(wù),年訪問(wèn)量超過(guò)50萬(wàn)次。具有豐富的政府和企業(yè)信息化培訓(xùn)經(jīng)驗(yàn),廈門(mén)大學(xué)管理學(xué)院EDP中心、浙江大學(xué)管理學(xué)院EDP中心、廈門(mén)大學(xué)繼續(xù)教育學(xué)院、泉州市科技培訓(xùn)中心特邀培訓(xùn)講師,曾給中國(guó)移動(dòng)通信集團(tuán)公
67、司、福州馬尾區(qū)政府、福建龍巖卷煙廠、福建省物聯(lián)網(wǎng)科學(xué)研究院、石獅市物流協(xié)會(huì)、廈門(mén)市物流協(xié)會(huì)、浙江省中小企業(yè)家、四川瀘州企業(yè)家、江蘇沛縣企業(yè)家等開(kāi)展信息化培訓(xùn),累計(jì)培訓(xùn)人數(shù)達(dá)3000人以上。,掃一掃訪問(wèn)個(gè)人主頁(yè),附錄:《大數(shù)據(jù)技術(shù)原理與應(yīng)用》教材,歡迎訪問(wèn)《大數(shù)據(jù)技術(shù)原理與應(yīng)用——概念、存儲(chǔ)、處理、分析與應(yīng)用》教材官方網(wǎng)站:http://dblab.xmu.edu.cn/post/bigdata,掃一掃訪問(wèn)教材官網(wǎng),《大數(shù)據(jù)技術(shù)原理與應(yīng)用
68、——概念、存儲(chǔ)、處理、分析與應(yīng)用(第2版)》,由廈門(mén)大學(xué)計(jì)算機(jī)科學(xué)系林子雨博士編著,是中國(guó)高校第一本系統(tǒng)介紹大數(shù)據(jù)知識(shí)的專(zhuān)業(yè)教材。全書(shū)共有15章,系統(tǒng)地論述了大數(shù)據(jù)的基本概念、大數(shù)據(jù)處理架構(gòu)Hadoop、分布式文件系統(tǒng)HDFS、分布式數(shù)據(jù) 庫(kù)HBase、NoSQL數(shù)據(jù)庫(kù)、云數(shù)據(jù)庫(kù)、分布式并行編程模型MapReduce、Spark、流計(jì)算、圖計(jì)算、數(shù)據(jù)可視化以及大數(shù)據(jù)在互聯(lián)網(wǎng)、生物醫(yī)學(xué)和物流等各個(gè)領(lǐng)域的應(yīng)用。在Hadoop、HDFS、
69、HBase和MapReduce等重要章節(jié),安排了入門(mén)級(jí)的實(shí)踐操作,讓讀者更好地學(xué)習(xí)和掌握大數(shù)據(jù)關(guān)鍵技術(shù)。本書(shū)可以作為高等院校計(jì)算機(jī)專(zhuān)業(yè)、信息管理等相關(guān)專(zhuān)業(yè)的大數(shù)據(jù)課程教材,也可供相關(guān)技術(shù)人員參考、學(xué)習(xí)、培訓(xùn)之用。,附錄:中國(guó)高校大數(shù)據(jù)課程公共服務(wù)平臺(tái),掃一掃訪問(wèn)平臺(tái)主頁(yè),http://dblab.xmu.edu.cn/post/bigdata-teaching-platform/,掃一掃觀看3分鐘FLASH動(dòng)畫(huà)宣傳片,,Depart
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- chapter12-廈門(mén)大學(xué)-林子雨-大數(shù)據(jù)技術(shù)原理與應(yīng)用(第2版教材)-第12章-數(shù)據(jù)可視化(20
- lesson13-廈門(mén)大學(xué)-林子雨-大數(shù)據(jù)技術(shù)原理與應(yīng)用-第13講-教材第十一、十二、十三章-大數(shù)據(jù)
- 數(shù)據(jù)庫(kù)原理與應(yīng)用第2版
- 3 數(shù)據(jù)庫(kù)第2章第5題解答
- (林子雨-2017新版-大數(shù)據(jù)技術(shù)原理與應(yīng)用)廈門(mén)大學(xué)本科課程教學(xué)大綱
- (林子雨-2017新版-大數(shù)據(jù)技術(shù)原理與~應(yīng)用)廈門(mén)大學(xué)本科課程教學(xué)大綱
- 大數(shù)據(jù)技術(shù)原理與應(yīng)用林子雨版課后習(xí)題答案
- 大數(shù)據(jù)技術(shù)原理與應(yīng)用 林子雨版 課后習(xí)題答案
- 第5章 數(shù)據(jù)庫(kù)操作
- 大數(shù)據(jù)技術(shù)原理與應(yīng)用林子雨課后習(xí)題答案
- 大數(shù)據(jù)技術(shù)原理與應(yīng)用林子雨課后習(xí)題答案
- [林子雨_2018年新版_大數(shù)據(jù)技術(shù)原理及應(yīng)用]廈門(mén)大學(xué)本科課程教學(xué)大綱
- 數(shù)據(jù)庫(kù)原理及其應(yīng)用(第2版)習(xí)題參考.答案
- 《數(shù)據(jù)庫(kù)原理與應(yīng)用》第05章在線測(cè)試
- 數(shù)據(jù)庫(kù)原理及應(yīng)用第2版習(xí)題參考答案
- 《數(shù)據(jù)庫(kù)原理與應(yīng)用》第05章在線測(cè)試
- 第5章數(shù)據(jù)庫(kù)的創(chuàng)建和管理
- 廈門(mén)大學(xué)林子雨編著
- 2 數(shù)據(jù)庫(kù)第2章第3、4、6題解答
- 4 數(shù)據(jù)庫(kù)第3章第3、4、5題解答
評(píng)論
0/150
提交評(píng)論