戴牡紅
摘? 要:針對新一代NoSQL和NewSQL技術(shù),以及軟件工程專業(yè)本科生數(shù)據(jù)庫課程教學存在授課內(nèi)容陳舊、學生數(shù)據(jù)庫應(yīng)用系統(tǒng)分析與設(shè)計能力不夠、課程講授與實驗一直采用國外數(shù)據(jù)庫產(chǎn)品等現(xiàn)狀,重構(gòu)數(shù)據(jù)庫教學中的講授內(nèi)容和課程實驗內(nèi)容。將思政教育元素融入數(shù)據(jù)庫教學中,構(gòu)建新一代數(shù)據(jù)庫教學課程知識體系。闡述大數(shù)據(jù)時代的數(shù)據(jù)庫系統(tǒng)課程建設(shè)研究與實踐,包括教學目標、課程內(nèi)容、課程結(jié)構(gòu)、教學計劃和課程評價方法。實踐結(jié)果表明,學生們對最新一代的數(shù)據(jù)庫技術(shù)很感興趣,課程效果良好,有效提高了學生數(shù)據(jù)庫系統(tǒng)分析、設(shè)計與實現(xiàn)能力。
關(guān)鍵詞:大數(shù)據(jù);NoSQL;NewSQL;數(shù)據(jù)庫;課程
中圖分類號:TP392? ? ?文獻標識碼:A
Abstract:Aiming at the new-generation NoSQL and NewSQL technology as well as the outdated teaching contents in database course for software engineering undergraduates,insufficient student's database application system analysis and design ability,course teaching and experiment depending on foreign database products,this paper reconstructs the contents of? database teaching by means of integrating the elements of ideological and political education into the database teaching,and builds a new-generation database teaching course system.The paper describes the research and practice of database system course construction in the era of big data,including teaching objectives,course content,course structure,teaching plans and course assessment methods.Practical results show that students are very interested in the latest generation database technology and the course effect is good,which effectively improves student's database system analysis,design and implementation capabilities.
Keywords:big data;NoSQL;NewSQL;database;course
1? ?引言(Introduction)
數(shù)據(jù)庫技術(shù)在過去5到10年內(nèi)經(jīng)歷了前30多年來最重大的變化,非關(guān)系型的大規(guī)模分布式數(shù)據(jù)庫系統(tǒng)不斷出現(xiàn),這些新技術(shù)提供了前所未有的大數(shù)據(jù)處理能力。目前國內(nèi)許多大學的數(shù)據(jù)庫系統(tǒng)課程主要講授的內(nèi)容是關(guān)系代數(shù)、SQL語言和E-R建模,對以NoSQL、NewSQL等復(fù)雜數(shù)據(jù)的管理技術(shù)不做討論,不能適應(yīng)大數(shù)據(jù)時代企業(yè)的數(shù)據(jù)管理與數(shù)據(jù)分析需求。
2? 數(shù)據(jù)庫技術(shù)的發(fā)展(Development of database technology)
自1970年以來,數(shù)據(jù)庫技術(shù)發(fā)展到了第四代,如圖1所示[1]。第一代是20世紀60—70年早期的層次和網(wǎng)狀數(shù)據(jù)庫系統(tǒng),第二代是70年代中期開始的關(guān)系數(shù)據(jù)庫系統(tǒng),第三代是80年出現(xiàn)的對象數(shù)據(jù)庫系統(tǒng),以及90年出現(xiàn)的對關(guān)系模型進行擴展,使關(guān)系數(shù)據(jù)庫系統(tǒng)具有面向?qū)ο蠊δ堋?/p>
自2000年以來,Web技術(shù)、社交網(wǎng)絡(luò)、移動計算和物聯(lián)網(wǎng)的進步導致全球范圍應(yīng)用程序生成的半結(jié)構(gòu)化、非結(jié)構(gòu)化數(shù)據(jù)呈現(xiàn)爆炸式增長勢態(tài),此類應(yīng)用程序產(chǎn)生了各種不同的需求,包括水平可擴展能力、支持大規(guī)模海量數(shù)據(jù)處理能力,系統(tǒng)具有高可用性和容錯能力以應(yīng)對硬件和軟件故障,并且可以通過利用額外資源響應(yīng)客戶端請求,從而提高查詢處理速率,這就導致了第四代數(shù)據(jù)庫技術(shù)NoSQL和NewSQL技術(shù)的出現(xiàn)。
NoSQL數(shù)據(jù)庫的關(guān)鍵特征是:(1)采用圖形、樹、鍵值、文檔等表格模型以外的數(shù)據(jù)模型;(2)數(shù)據(jù)庫設(shè)計時沒有固定的模式定義;(3)提供對水平可擴展性的隱式支持;(4)具有最終一致性而不是強一致性[2]。NoSQL的另一個重要概念是CAP定理,它對分布式系統(tǒng)至關(guān)重要的屬性提供了一些約束,即一致性、可用性和分區(qū)容錯性。CAP定理表明,分布式系統(tǒng)在任何給定時間最多只能滿足其中兩個屬性。
NewSQL是最新一代的數(shù)據(jù)庫系統(tǒng),它不僅提供NoSQL數(shù)據(jù)庫系統(tǒng)具有的可擴展性和可用性,還保留了傳統(tǒng)關(guān)系數(shù)據(jù)庫的ACID特性、關(guān)系數(shù)據(jù)模型和SQL查詢語言[3,4]。
3? 數(shù)據(jù)庫教學中存在的問題(Problems in database course teaching)
云計算、并行處理和分布式存儲技術(shù)等大數(shù)據(jù)開發(fā)技術(shù)的飛速發(fā)展,彰顯數(shù)據(jù)庫課程教學中存在問題[5]。
(1)數(shù)據(jù)庫課程教學以基于關(guān)系代數(shù)、SQL語言和E-R數(shù)據(jù)庫設(shè)計模型,講授數(shù)據(jù)管理的方法和技術(shù)。這些技術(shù)與方法難以高效處理海量的非結(jié)構(gòu)化數(shù)據(jù)。隨著新一代WEB技術(shù)的廣泛應(yīng)用,關(guān)系型數(shù)據(jù)庫系統(tǒng)不適用的環(huán)境越來越多,應(yīng)運而生了許多新的非關(guān)系型數(shù)據(jù)庫處理技術(shù)NoSQL和NewSQL。因此,數(shù)據(jù)庫教學中應(yīng)增加有關(guān)NoSQL、NewSQL等新一代的數(shù)據(jù)管理技術(shù)。
(2)目前的數(shù)據(jù)庫系統(tǒng)課程教學主要采用MySQL、SQL Server等國外的數(shù)據(jù)庫產(chǎn)品。近年來,國產(chǎn)數(shù)據(jù)庫正在以開源面貌煥發(fā)新一代的生機,新一代的NoSQL、NewSQL等國產(chǎn)數(shù)據(jù)庫軟件正在崛起。在數(shù)據(jù)庫系統(tǒng)課程的教學和課程實驗中,采用主流的、最新的國產(chǎn)數(shù)據(jù)庫軟件,對培養(yǎng)學生的愛國主義情懷非常有必要。
(3)高等教育的目標是立德樹人[6],NewSQL數(shù)據(jù)庫技術(shù)對非關(guān)系型數(shù)據(jù)處理技術(shù)的優(yōu)勢及其廣泛應(yīng)用為當前思政教育的革新指出了新的方向。將思政教育融入到數(shù)據(jù)庫系統(tǒng)等專業(yè)課程的教學中,建立思政素材數(shù)據(jù)庫,將思政課素材潛移默化地引入到數(shù)據(jù)庫系統(tǒng)的課程教學和實驗教學中,重新設(shè)計數(shù)據(jù)庫課程的SQL案例和數(shù)據(jù)庫實驗數(shù)據(jù)集,采用思政素材,非常有必要[7]。
4? ?課程目標(Course objectives)
目前NoSQL數(shù)據(jù)庫和NewSQL數(shù)據(jù)庫并沒有類似SQL的ISO/IEC標準,它們有自己獨特的功能,都是針對特定問題而開發(fā)的,并帶有它自己的基礎(chǔ)概念和交互語言。課程中我們涵蓋數(shù)據(jù)建模、SQL語言。學生將能夠達成以下目標和能力:(1)了解關(guān)系數(shù)據(jù)庫和NewSQL數(shù)據(jù)庫的基本存儲結(jié)構(gòu)和訪問技術(shù)。(2)使用關(guān)系數(shù)據(jù)庫和NewSQL數(shù)據(jù)庫特有的特征,可以依據(jù)應(yīng)用場景開發(fā)關(guān)系型和非關(guān)系型數(shù)據(jù)庫應(yīng)用系統(tǒng)。(3)識別新數(shù)據(jù)庫與先前已知數(shù)據(jù)庫之間的語義相似性和差異。(4)區(qū)分常用的一致性模型。(5)根據(jù)要存儲的數(shù)據(jù)和系統(tǒng)的可用性、可伸縮性和一致性要求,確定要部署的NewSQL/SQL數(shù)據(jù)庫系統(tǒng)。
5? ?課程建設(shè)內(nèi)容(Course construction contents)
為了上述課程目標的達成,課程中將討論如下主題:關(guān)系數(shù)據(jù)庫體系結(jié)構(gòu)、關(guān)系數(shù)據(jù)模型、關(guān)系代數(shù)與SQL語言、事務(wù)處理、非關(guān)系型數(shù)據(jù)建模;NewSQL中的數(shù)據(jù)庫定義與查詢處理技術(shù)、應(yīng)用軟件系統(tǒng)的開發(fā)。所有這些知識的掌握通過課堂測驗和課程實驗達成。課程建設(shè)的主要內(nèi)容包括:
(1)基礎(chǔ)知識講授,數(shù)據(jù)庫概念、E-R模型、SQL語言、事務(wù)處理與故障恢復(fù)技術(shù)、并發(fā)控制,以及數(shù)據(jù)庫安全訪問技術(shù)。
(2)NewSQL探究性知識講授,非結(jié)構(gòu)化數(shù)據(jù)表示方法;NewSQL數(shù)據(jù)建模方式,主要有key-value、Column-oriented、Document等;主流的NoSQL、NewSQL數(shù)據(jù)庫系統(tǒng)概念;NoSQL的CAP理論。
(3)設(shè)計新的數(shù)據(jù)庫系統(tǒng)課程實驗,以思想政治素材數(shù)據(jù)庫的設(shè)計貫穿數(shù)據(jù)庫系統(tǒng)課程實驗中,設(shè)計新的數(shù)據(jù)庫系統(tǒng)課程實驗,實驗的數(shù)據(jù)采用思想政治素材數(shù)據(jù)庫中的數(shù)據(jù)。
(4)采用TiDB NewSQL進行教學與實驗,培養(yǎng)學生的愛國主義情操。TiDB是國內(nèi)PingCAP團隊開發(fā)的一個分布式NewSQL數(shù)據(jù)庫系統(tǒng),TiDB支持傳統(tǒng)RDBMS和NoSQL的特性。在數(shù)據(jù)庫領(lǐng)域,國產(chǎn)正在崛起!國產(chǎn)數(shù)據(jù)庫的探索者和專家們,為我們呈現(xiàn)數(shù)據(jù)庫的隱秘世界和國產(chǎn)力量,我們將帶領(lǐng)學生跟隨國產(chǎn)數(shù)據(jù)庫領(lǐng)路人的步伐,去發(fā)現(xiàn)國產(chǎn)數(shù)據(jù)庫的強大。
6? ?課程組織結(jié)構(gòu)(Course organization)
課程要求學生在掌握數(shù)據(jù)庫基礎(chǔ)知識的同時,具有自主學習能力和工程項目能力,我們將這一理念貫穿在數(shù)據(jù)庫課程教學的整個環(huán)節(jié),通過課程講授、課程測驗、小班討論、課程實驗和小組項目開發(fā),培養(yǎng)學生的工程能力和團隊協(xié)作精神。
6.1? ?課程講授和課程測驗
上課講授核心的基礎(chǔ)知識和應(yīng)用開發(fā)技能,并且針對課堂上介紹的各種概念、技術(shù),設(shè)計各種小的課堂測驗,以便了解學生們的掌握程度。
6.2? ?小班討論
課程設(shè)計了4次、8個學時的小班討論。每個小班分成由3—4個學生組成的討論小組,就數(shù)據(jù)庫系統(tǒng)中的完整性約束、查詢與統(tǒng)計、存儲過程、數(shù)據(jù)庫設(shè)計、事務(wù)管理、NewSQL等關(guān)鍵問題和項目開發(fā)進行研討,由學生宣講,其他同學參與討論,老師進行綜述與點評。
6.3? ?課程實驗
數(shù)據(jù)庫技術(shù)的掌握,需要學生動手、動手再動手。實驗指導書中給出了軟件開發(fā)公司所使用的最新技術(shù)說明,通過實際的操作和實驗,鞏固課堂教學內(nèi)容,讓學生掌握數(shù)據(jù)庫建模技術(shù)、SQL定義和查詢處理技術(shù),培養(yǎng)學生實際動手能力。每次實驗前,教師向?qū)W生講清實驗的整體要求及實現(xiàn)的目標任務(wù),實驗1人一組,在規(guī)定的時間內(nèi),由學生獨立完成,出現(xiàn)問題時,教師引導學生獨立分析和解決,所有實驗為一整體,有其延續(xù)性,每一次實驗必須在實驗課堂上認真完成。
6.4? ?小組項目
每個班級在課程的小班討論中組成的項目小組必須利用課余時間完成一個使用NewSQL系統(tǒng)開發(fā)的應(yīng)用項目,滿足最低的功能復(fù)雜性要求。小組項目的目標是讓學生學習和使用NewSQL數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)的分析、建模和實現(xiàn)能力,培養(yǎng)學生自主學習能力、知識獲取和團隊協(xié)作能力,提高創(chuàng)新能力,使之較早滿足企業(yè)需求。
7? ?教學計劃(Teaching plan)
數(shù)據(jù)庫系統(tǒng)設(shè)計課程教學過程中,強調(diào)認知數(shù)據(jù)庫的特征與特性、面臨的問題及其解決方案,力求讓學生對數(shù)據(jù)庫知識的認知達到“當前面臨這些問題,自然要這樣做”的感性高度。課程以案例作為載體,展示數(shù)據(jù)庫的特征與特性,然后引導學生進行觀察和分析,把專業(yè)知識通俗化、形象化、直觀化和具體化。課程將工具的使用作為實驗教學的重點,強化學生將課程知識與解決具體實際問題相結(jié)合的訓練,培養(yǎng)學生的學習興趣。學生通過解決具體實際問題,對數(shù)據(jù)庫理論知識有了更好的理解和掌握。課程的總評成績計算方法如下:總評成績=課堂測試10%+小班討論10%+期中考試10%+課程實驗10%+作業(yè)10%+期末考試30%+小組項目20%。在教學中,我們強調(diào)的是數(shù)據(jù)庫的設(shè)計和應(yīng)用開發(fā)技能的培養(yǎng),課程實驗,老師自己編寫實驗指導書,每一個實驗要求學生獨立完成,并且每一個實驗完成后必須發(fā)到老師的郵箱,老師對學生的每一次實驗都要檢查。這門課程學生的到課率是很高的,對每一次作業(yè)老師都會認真批改,許多學生認真完成了作業(yè),許多學生認真做了實驗,對作業(yè)中出現(xiàn)的普遍性問題在習題課上重點講解,并且對所有的作業(yè)都給學生參考答案。所有的小班討論課,全部是由老師組織,沒有交給助教。任課教師希望20多年數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)的經(jīng)驗和技術(shù)分享給學生們。每一次課程的SQL代碼,講解的內(nèi)容在課后4個小時內(nèi)都會上傳到課程網(wǎng)站。學生們普遍反映能夠?qū)W到東西,成績效果良好。
9? ?結(jié)論(Conclusion)
NewSQL數(shù)據(jù)庫越來越多地用于大數(shù)據(jù)時代的Web應(yīng)用系統(tǒng)之中,目前的本科數(shù)據(jù)庫課程教學主要側(cè)重于關(guān)系型數(shù)據(jù)庫系統(tǒng),對各種類型NewSQL和面向NewSQL的新數(shù)據(jù)模型的掌握是目前迫切需要學生掌握的技能。我們將新的技術(shù)融合到數(shù)據(jù)庫課程的教學之中進行了有意義的探索,取得了一定成效。目前課程總評成績的計算由課堂測試、小班討論、期中考試、課程實驗、作業(yè)、期末考試和小組項目等過程組成,各個部分所占比重如何合理?將是未來的教學中著重探究的問題。
參考文獻(References)
[1] Ali Davoudian,Liu chen,Mengchi Liu.A Survey on NoSQL Stores[J].ACM Computer? Survey,2018,51(2):401-406.
[2] Jaroslav Pokorn?.Database Technologies in the World of Big Data[J].Proc of International Conference on Computer Systems and Technologies,2015:1-12.
[3] Yasin N. Silva.SQL:From Traditional Databases to Big Data[J].Proc of SIGCSE,TN,USA,2016:413-418.
[4] 徐述,汪彥,曾海洋.大數(shù)據(jù)應(yīng)用下的新型分布式數(shù)據(jù)庫NewSQL[J].數(shù)字技術(shù)與應(yīng)用,2018,36(8):51-52.
[5] 岳昆.大數(shù)據(jù)時代本科數(shù)據(jù)庫課程體系改革設(shè)想[J].計算機教育,2015(11):104-107.
[6] 趙厚寶,曾井泉.研發(fā)類課程開展課程思政教育的探索與實踐[J].高教學刊,2019(2):188-190.
[7] 余江濤,王文起,徐晏清.專業(yè)教師實踐“課程思政”的邏輯及其要領(lǐng)—以理工科課程為例[J].學校黨建與思想教育,2018(568):64-66.