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