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