高曙光
摘 要:近年來(lái),隨著互聯(lián)網(wǎng)的深入發(fā)展,企業(yè)的數(shù)據(jù)庫(kù)面臨規(guī)模日益擴(kuò)大的海量數(shù)據(jù),傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)在性能上的不足逐漸顯現(xiàn),面對(duì)這一挑戰(zhàn),互聯(lián)網(wǎng)領(lǐng)域開(kāi)始出現(xiàn)了大批針對(duì)特定場(chǎng)景,以高性能和使用便利為目的的功能特殊化的數(shù)據(jù)庫(kù)產(chǎn)品,這一類數(shù)據(jù)庫(kù)被統(tǒng)稱為NoSQL。這類數(shù)據(jù)庫(kù)近幾年發(fā)展迅速,企業(yè)對(duì)相關(guān)技術(shù)人才的需求也迅速增加,高職院校是培養(yǎng)應(yīng)用技術(shù)人才的主力教育機(jī)構(gòu),但是在這一技術(shù)的應(yīng)用上幾乎沒(méi)有起步,本文從NoSQL在社會(huì)上的應(yīng)用著手,結(jié)合高職院校數(shù)據(jù)庫(kù)教學(xué)改革,對(duì)高職開(kāi)設(shè)NoSQL類數(shù)據(jù)庫(kù)課程相關(guān)問(wèn)題進(jìn)行初步探討和研究。
關(guān)鍵詞:NoSQL;高職;數(shù)據(jù)庫(kù);教學(xué)
1 概述
隨著互聯(lián)網(wǎng)的不斷發(fā)展,各種類型的應(yīng)用層出不窮,所以導(dǎo)致在這個(gè)云計(jì)算的時(shí)代,對(duì)技術(shù)提出了更多的需求。雖然關(guān)系型數(shù)據(jù)庫(kù)已經(jīng)在業(yè)界的數(shù)據(jù)存儲(chǔ)方面占據(jù)不可動(dòng)搖的地位,但是其固有的缺點(diǎn)如擴(kuò)展困難、讀寫(xiě)慢、成本高使其在當(dāng)今時(shí)代的某些數(shù)據(jù)庫(kù)應(yīng)用領(lǐng)域力不從心。業(yè)界為了解決互聯(lián)網(wǎng)發(fā)展中對(duì)數(shù)據(jù)庫(kù)的新的要求,推出了各種類型的“NoSQL”數(shù)據(jù)庫(kù)。
NoSQL這一概念是由Eric Evans在2009年正式提出,一般被認(rèn)為是指非關(guān)系型的分布式數(shù)據(jù)庫(kù),并且不支持原子性、一致性、隔離性、持久性的數(shù)據(jù)庫(kù)設(shè)計(jì)模式。
總的來(lái)說(shuō),在設(shè)計(jì)上,它們非常關(guān)注對(duì)數(shù)據(jù)高并發(fā)地讀寫(xiě)和對(duì)海量數(shù)據(jù)的存儲(chǔ)等,與關(guān)系型數(shù)據(jù)庫(kù)相比,它們?cè)诩軜?gòu)和數(shù)據(jù)模型方面做了一些減少和簡(jiǎn)化,而在擴(kuò)展和并發(fā)等功能上做了增強(qiáng)。
2 NoSQL的應(yīng)用和分類
隨著大數(shù)據(jù)時(shí)代的到來(lái),現(xiàn)今的計(jì)算機(jī)體系結(jié)構(gòu)在數(shù)據(jù)存儲(chǔ)方面要求具備龐大的水平擴(kuò)展性,傳統(tǒng)的數(shù)據(jù)庫(kù)在解決這一問(wèn)題上困難重重,許多互聯(lián)網(wǎng)知名公司只能求助于新興的NoSQL數(shù)據(jù)庫(kù)技術(shù),如Google、Yahoo、Facebook、Twitter、Amazon等都進(jìn)行了大量的開(kāi)發(fā)工作。而國(guó)內(nèi)的一些知名IT企業(yè),尤其是互聯(lián)網(wǎng)企業(yè)也紛紛采用了一些NoSQL型數(shù)據(jù)庫(kù)技術(shù),比如新浪微博就使用了REDIS,淘寶更是開(kāi)發(fā)設(shè)計(jì)了數(shù)據(jù)存儲(chǔ)系統(tǒng)oceanbase,優(yōu)酷的在線評(píng)論業(yè)務(wù)則使用MONGODB,運(yùn)營(yíng)數(shù)據(jù)分析及挖掘則使用HBASE。
通過(guò)近些年企業(yè)對(duì)NOSQL數(shù)據(jù)庫(kù)的使用,我們發(fā)現(xiàn),NOSQL數(shù)據(jù)庫(kù)正在成為數(shù)據(jù)庫(kù)領(lǐng)域不可或缺的一部分,它彌補(bǔ)了關(guān)系型數(shù)據(jù)庫(kù)在某些應(yīng)用中的不足,所以得到了飛速的發(fā)展。根據(jù)2014年1月的數(shù)據(jù),已經(jīng)有七種NOSQL類數(shù)據(jù)庫(kù)產(chǎn)品躋身數(shù)據(jù)庫(kù)的前二十名行列。
NoSQL可以大體上分為4個(gè)種類:Key-value、Document-Oriented、Column-Family Databases以及 Graph-Oriented Databases。這些類型的特性如下:
鍵值(Key-Value)數(shù)據(jù)庫(kù)
鍵值數(shù)據(jù)庫(kù)就像在傳統(tǒng)語(yǔ)言中使用的哈希表。你可以通過(guò)key來(lái)添加、查詢或者刪除數(shù)據(jù),鑒于使用主鍵訪問(wèn),所以會(huì)獲得不錯(cuò)的性能及擴(kuò)展性。
面向文檔(Document-Oriented)數(shù)據(jù)庫(kù)
面向文檔數(shù)據(jù)庫(kù)會(huì)將數(shù)據(jù)以文檔的形式儲(chǔ)存。每個(gè)文檔都是自包含的數(shù)據(jù)單元,是一系列數(shù)據(jù)項(xiàng)的集合。每個(gè)數(shù)據(jù)項(xiàng)都有一個(gè)名稱與對(duì)應(yīng)的值,值既可以是簡(jiǎn)單的數(shù)據(jù)類型,如字符串、數(shù)字和日期等;也可以是復(fù)雜的類型,如有序列表和關(guān)聯(lián)對(duì)象。
列存儲(chǔ)(Wide Column Store/Column-Family)數(shù)據(jù)庫(kù)
列存儲(chǔ)數(shù)據(jù)庫(kù)將數(shù)據(jù)儲(chǔ)存在列族(column family)中,一個(gè)列族存儲(chǔ)經(jīng)常被一起查詢的相關(guān)數(shù)據(jù)。
圖(Graph-Oriented)數(shù)據(jù)庫(kù)
圖數(shù)據(jù)庫(kù)允許我們將數(shù)據(jù)以圖的方式儲(chǔ)存。實(shí)體會(huì)被作為頂點(diǎn),而實(shí)體之間的關(guān)系則會(huì)被作為邊。
3 NoSQL的特點(diǎn)
NoSQL在使用中體現(xiàn)與傳統(tǒng)數(shù)據(jù)庫(kù)技術(shù)的幾個(gè)優(yōu)點(diǎn):
3.1 靈活的可擴(kuò)展性
當(dāng)數(shù)據(jù)快速增長(zhǎng)時(shí),一般的解決方案是使用更大型的服務(wù)器來(lái)承載增加的負(fù)載,達(dá)到擴(kuò)展數(shù)據(jù)庫(kù)的目的,這種方法成本較高,實(shí)現(xiàn)起來(lái)復(fù)雜。而使用增加主機(jī)數(shù)量來(lái)減輕負(fù)載是成本較低的方案,但在傳統(tǒng)數(shù)據(jù)庫(kù)中實(shí)現(xiàn)起來(lái)不是一件容易的事,而這是NoSQL數(shù)據(jù)庫(kù)擅長(zhǎng)的領(lǐng)域。
3.2 大數(shù)據(jù)的應(yīng)用
在過(guò)去的十年里,正如交易率發(fā)生了翻天覆地的增長(zhǎng)一樣,需要存儲(chǔ)的數(shù)據(jù)量也發(fā)生了急劇地膨脹。為了滿足數(shù)據(jù)量增長(zhǎng)的需要,關(guān)系型數(shù)據(jù)庫(kù)的容量也在日益增加,已經(jīng)大到技術(shù)和成本不能承受的地步?,F(xiàn)在,大量的“大數(shù)據(jù)”可以通過(guò)NoSQL系統(tǒng)來(lái)處理,它們能夠處理的數(shù)據(jù)量遠(yuǎn)遠(yuǎn)超出了最大型的關(guān)系型數(shù)據(jù)庫(kù)所能處理的極限。
3.3 對(duì)數(shù)據(jù)庫(kù)管理員要求降低
NoSQL數(shù)據(jù)庫(kù)從一開(kāi)始就是為了降低管理方面的要求而設(shè)計(jì)的,它采用自動(dòng)修復(fù),數(shù)據(jù)分配和簡(jiǎn)單的數(shù)據(jù)模型,可以讓管理和優(yōu)化工作要求降低很多。
3.4 成本低
關(guān)系型數(shù)據(jù)庫(kù)通常需要依靠昂貴的專有服務(wù)器和存儲(chǔ)系統(tǒng)來(lái)進(jìn)行存儲(chǔ)。使用NoSQL,每GB的成本或每秒處理的事務(wù)的成本都比使用關(guān)系型數(shù)據(jù)庫(kù)的成本少得多,可以使企業(yè)花費(fèi)更低的成本來(lái)存儲(chǔ)和處理更多的數(shù)據(jù)。
4 NoSQL在高職中的應(yīng)用
NOSQL在企業(yè)的應(yīng)用時(shí)間不太長(zhǎng),而且相應(yīng)的數(shù)據(jù)庫(kù)產(chǎn)品各類繁多,多數(shù)沒(méi)有形成標(biāo)準(zhǔn),相關(guān)的資料書(shū)籍也很少,所以影響了它在高職院校的應(yīng)用,高職院校很少對(duì)NOSQL進(jìn)行研究,也沒(méi)有學(xué)校開(kāi)設(shè)相關(guān)的系統(tǒng)課程。NOSQL研究和教學(xué)在高職院校發(fā)展基本為零,原因有以下幾點(diǎn):
4.1 教師對(duì)NOSQL的認(rèn)知和掌握能力有限
長(zhǎng)期以來(lái),普通高校計(jì)算機(jī)專業(yè)的數(shù)據(jù)庫(kù)課程以關(guān)系數(shù)據(jù)庫(kù)為講授內(nèi)容。教師認(rèn)知能力有限,基本很少接觸NOSQL方面的內(nèi)容,研究和學(xué)習(xí)掌握NOSQL有較大困難。
在講授數(shù)據(jù)庫(kù)課程時(shí),因?yàn)殛P(guān)系數(shù)據(jù)庫(kù)長(zhǎng)期占主導(dǎo)和統(tǒng)治地位,忽略了對(duì)其他數(shù)據(jù)庫(kù)的研究。當(dāng)前高校與市場(chǎng)的聯(lián)系遠(yuǎn)遠(yuǎn)不如想象的那樣緊密,因此,當(dāng)前高校教師面對(duì)著對(duì)NoSQL 技術(shù)的認(rèn)知能力,這里不僅包含對(duì)技術(shù)的掌握和熟悉,而更重要的是對(duì)該新興技術(shù)的認(rèn)可。在授課的過(guò)程中,如何把握NoSQL 技術(shù)和關(guān)系數(shù)據(jù)庫(kù)的之間的關(guān)系,巧妙地融合兩種技術(shù),使學(xué)生有個(gè)全面和清晰的認(rèn)識(shí)是數(shù)據(jù)庫(kù)課程教師的重要工作之一。
4.2 學(xué)生的知識(shí)水平有限
高職的學(xué)生來(lái)源決定了他們?cè)诔橄笏季S能力上和自學(xué)能力上都不能達(dá)到優(yōu)秀的程序,成熟的親和度高的關(guān)系型數(shù)據(jù)庫(kù)產(chǎn)品對(duì)高職學(xué)生來(lái)說(shuō)容易接受,對(duì)于需要掌握更多低層技術(shù)的NoSQL數(shù)據(jù)庫(kù)學(xué)習(xí)起來(lái)難度就大的多,而且兩種技術(shù)原理有很大不同,理解新技術(shù)的困難也是要考慮的問(wèn)題。
4.3 學(xué)校的實(shí)驗(yàn)條件限制
實(shí)驗(yàn)一直是數(shù)據(jù)庫(kù)課程教學(xué)的重要環(huán)節(jié),現(xiàn)有大多數(shù)學(xué)校的實(shí)驗(yàn)條件和環(huán)境能夠基本滿足關(guān)系數(shù)據(jù)庫(kù)技術(shù)的教學(xué)需要,但是對(duì)于實(shí)驗(yàn)和實(shí)訓(xùn)的進(jìn)程設(shè)計(jì)中如何體現(xiàn)NoSQL技術(shù)的優(yōu)勢(shì)和特點(diǎn),如何合理構(gòu)建實(shí)驗(yàn)環(huán)境也是教學(xué)的一大課題和難點(diǎn)。
5 如何在高職數(shù)據(jù)庫(kù)教學(xué)中開(kāi)展NoSQL教學(xué)活動(dòng)
在社會(huì)強(qiáng)大的需求面前,在高職開(kāi)設(shè)NoSQL的教學(xué)勢(shì)所必然,在充分研究的基礎(chǔ)上,我認(rèn)為應(yīng)在以下幾個(gè)方面來(lái)建設(shè)這一類課程:
5.1 教學(xué)內(nèi)容選取
數(shù)據(jù)庫(kù)課程的學(xué)習(xí)內(nèi)容分為三大階段,利用學(xué)習(xí)任務(wù)的遞進(jìn)實(shí)現(xiàn)教學(xué)目標(biāo)。第一,數(shù)據(jù)庫(kù)系統(tǒng)基礎(chǔ)知識(shí)階段;第二,項(xiàng)目學(xué)習(xí)階段;第三,項(xiàng)目實(shí)踐階段。
NoSQL數(shù)據(jù)庫(kù)系統(tǒng)教學(xué)中基礎(chǔ)知識(shí)階段的教學(xué)主要內(nèi)容應(yīng)該有數(shù)據(jù)庫(kù)系統(tǒng)基本概念、NoSQL基本概念、NoSQL的類別和原理。通過(guò)本階段學(xué)習(xí),學(xué)生能掌握NoSQL數(shù)據(jù)庫(kù)系統(tǒng)的基本內(nèi)容和領(lǐng)域內(nèi)涵,為后面的實(shí)際操作技能學(xué)習(xí)打下理論基礎(chǔ)。項(xiàng)目學(xué)習(xí)階段:選取一個(gè)實(shí)際的互聯(lián)網(wǎng)項(xiàng)目,作為實(shí)例貫穿全過(guò)程,依據(jù)流行的結(jié)構(gòu)和開(kāi)發(fā)過(guò)程,將課程內(nèi)容分為:項(xiàng)目準(zhǔn)備,數(shù)據(jù)庫(kù)定義,應(yīng)用開(kāi)發(fā),數(shù)據(jù)庫(kù)安全管理與維護(hù)四個(gè)學(xué)習(xí)情景。項(xiàng)目實(shí)踐階段是以小型互聯(lián)網(wǎng)應(yīng)用為例進(jìn)行從需求分析到最終系統(tǒng)集成的完整開(kāi)發(fā)過(guò)程實(shí)踐.。學(xué)生通過(guò)完整的項(xiàng)目的開(kāi)發(fā),熟悉數(shù)據(jù)庫(kù)設(shè)計(jì)和構(gòu)建的基本原則,掌握數(shù)據(jù)庫(kù)系統(tǒng)的分析和設(shè)計(jì)方法,提高學(xué)生實(shí)際編程能力,為今后從事信息系統(tǒng)開(kāi)發(fā)提供必要的技能。
5.2 教學(xué)方法的綜合應(yīng)用
NoSQL數(shù)據(jù)庫(kù)的教學(xué)應(yīng)該沿用近些年已經(jīng)成熟的“工學(xué)一體”教學(xué)方法。以項(xiàng)目導(dǎo)向教學(xué)法為主線,將相關(guān)的知識(shí)點(diǎn)匯集,把整個(gè)課程的教學(xué)演變程連貫的相關(guān)的可實(shí)際操作的業(yè)務(wù)訓(xùn)練。在各教學(xué)單元中采用任務(wù)驅(qū)動(dòng)教學(xué)方法,使“任務(wù)”存在于課程教學(xué)過(guò)程的始終,把一個(gè)項(xiàng)目分解為若干個(gè)大任務(wù),每一個(gè)大任務(wù),又分解為若干個(gè)小任務(wù),讓學(xué)生有目標(biāo),有方向。 采用角色扮演教學(xué)法,以小型互聯(lián)網(wǎng)應(yīng)用開(kāi)發(fā)團(tuán)隊(duì)為模擬單位,學(xué)生在團(tuán)隊(duì)中扮演不同角色,引導(dǎo)學(xué)生去發(fā)現(xiàn)問(wèn)題,探索問(wèn)題和熟悉開(kāi)發(fā)團(tuán)隊(duì)的協(xié)作關(guān)系。
[參考文獻(xiàn)]
[1]周雙喜.以人為本構(gòu)建科學(xué)有效的高校教師激勵(lì)機(jī)制.中國(guó)成人教育,2012.1.
[2]婁穎.淺析NoSQL技術(shù)與數(shù)據(jù)庫(kù)教學(xué)的關(guān)系.計(jì)算機(jī)時(shí)代,2013.2.
[3]Eric Redmond.Seven database in seven weeks.人民郵電出版社,2012.4.
[4]佐佐木達(dá)也(日).NoSQL數(shù)據(jù)庫(kù)入門.人民郵電出版社,2012.5.
[5]陸嘉恒.大數(shù)據(jù)挑戰(zhàn)與NoSQL數(shù)據(jù)庫(kù)技術(shù).電子工業(yè)出版社,2013.4.
[6]shashank tiwari(?。?深入NoSQL.人民郵電出版社,2012.11.
[7]蔡金花.淺析NoSQL及使用.電腦知識(shí)與技術(shù),2011.4.
[8]黃賢立.NoSQL非關(guān)系型數(shù)據(jù)庫(kù)的發(fā)展及應(yīng)用初探.福建電腦,2010.7.
[9]盧冬海,何先波.淺析NoSQL數(shù)據(jù)庫(kù).中國(guó)西部科技,2011.2.
[10]沈姝.NoSQL數(shù)據(jù)庫(kù)技術(shù)及其應(yīng)用研究.南京信息工程大學(xué),2012.1.
[11]張華強(qiáng).關(guān)系型數(shù)據(jù)庫(kù)與NoSQL數(shù)據(jù)庫(kù).電腦知識(shí)與技術(shù),2012.6.