肖 宇,袁宏博
(上海對外經(jīng)貿(mào)大學統(tǒng)計與信息學院,上海 201620)
數(shù)據(jù)庫是一個與時俱進的領(lǐng)域,然而高校的非計算機類專業(yè)數(shù)據(jù)庫課程普遍存在諸多問題[1]。例如,數(shù)據(jù)庫軟件的選取與市場主流數(shù)據(jù)庫發(fā)展脫節(jié),實操內(nèi)容過于陳舊且缺乏創(chuàng)新型設(shè)計,課程內(nèi)容僅局限于關(guān)系型數(shù)據(jù)庫等[2]。學生難免對陳舊的教學內(nèi)容質(zhì)疑,學習積極性遭受打擊。因此,非常有必要深入探討非計算機類專業(yè)數(shù)據(jù)庫課程的改革。
以下內(nèi)容首先分析了當前非計算機專業(yè)數(shù)據(jù)庫教學現(xiàn)狀,進而引出新的教學目標,然后探討了面向大數(shù)據(jù)處理與分析的數(shù)據(jù)庫教學的內(nèi)容和方法改革,最后對本文進行總結(jié)。
考慮到數(shù)據(jù)庫教學工作的重要性,以下從數(shù)據(jù)庫的發(fā)展趨勢,未來企業(yè)數(shù)據(jù)庫技能需求和目前傳統(tǒng)的教學內(nèi)容等三方面進行分述,以多角度厘清非計算機專業(yè)數(shù)據(jù)庫教學的發(fā)展方向。
自首款企業(yè)級數(shù)據(jù)庫誕生以來,數(shù)據(jù)庫技術(shù)的發(fā)展主要經(jīng)歷了三個階段:前關(guān)系型數(shù)據(jù)庫(1960-1970)、關(guān)系型數(shù)據(jù)庫(1970-2008)和后關(guān)系型數(shù)據(jù)庫(2008至今)[3]。前關(guān)系型數(shù)據(jù)庫的主角模型主要采用網(wǎng)狀模型和層次模型,其中網(wǎng)狀模型克服了層次模型中非根結(jié)點僅能擁有一個父結(jié)點的缺陷。關(guān)系型數(shù)據(jù)庫以關(guān)系模型作為數(shù)據(jù)模型,這個階段基于“三層模式和二級映象”的設(shè)計實現(xiàn)了外模式、模式和內(nèi)模式的分離,從而使得各層相對獨立。當前大部分企業(yè)級數(shù)據(jù)庫仍屬于關(guān)系型數(shù)據(jù)庫或者支持關(guān)系操作。
后關(guān)系數(shù)據(jù)庫階段主要致力于模型拓展于架構(gòu)解耦,以解決高并發(fā)讀寫、海量數(shù)據(jù)處理、數(shù)據(jù)結(jié)構(gòu)不統(tǒng)一、橫向拓展能力受限、數(shù)據(jù)存儲能力受限等問題。受此驅(qū)動,數(shù)據(jù)庫逐漸走向分布式、多模處理和存算分離的方向演進,其中涌現(xiàn)出諸如鍵值模型(例如 Redis)、圖模型(例如neo4j)、文檔模型(例如MongoDB)等非關(guān)系數(shù)據(jù)模型。另外,隨著云計算技術(shù)的不斷成熟,云數(shù)據(jù)庫占數(shù)據(jù)庫市場份額迅速增加,而線下數(shù)據(jù)庫市場競爭愈加激烈。
據(jù)2021年6月中國信息通信研究院統(tǒng)計分析,數(shù)據(jù)庫服務(wù)市場主要集中在金融、電信、政府、制造、交通等五個行業(yè),總占比超過了80%[1]。經(jīng)過對主流求職網(wǎng)站的調(diào)查發(fā)現(xiàn),數(shù)據(jù)分析類就業(yè)崗位普遍要求職工掌握關(guān)系型數(shù)據(jù)庫。對于非計算機類專業(yè)大學生而言,未來工作中數(shù)據(jù)庫應(yīng)用場景更多地集中在對數(shù)據(jù)的查詢和存儲,或是圍繞其業(yè)務(wù)數(shù)據(jù)進行數(shù)據(jù)插入或者修改。例如MySQL、SQL Server或PostgreSQL等。此外,企業(yè)就業(yè)技能要求中通常會要求掌握Python和R等計算編程語言,因此在數(shù)據(jù)庫教學中,應(yīng)介紹在這些編程環(huán)境中管理數(shù)據(jù)庫的方法。
教學內(nèi)容包括理論和實踐兩方面。理論知識分為基礎(chǔ)理論和進階理論?;A(chǔ)知識包括關(guān)系數(shù)據(jù)庫理論,包括關(guān)系的定義、關(guān)系的運算、關(guān)系演算和關(guān)系的范式等內(nèi)容。進階理論包括數(shù)據(jù)庫的內(nèi)模式設(shè)計,事務(wù)管理,鎖機制,以及分布式數(shù)據(jù)庫等。實踐教學包括演示數(shù)據(jù)庫的安裝和配置、數(shù)據(jù)庫的備份和還原、數(shù)據(jù)庫的創(chuàng)建和修改、數(shù)據(jù)表的定義和修改、數(shù)據(jù)插入、數(shù)據(jù)更新和數(shù)據(jù)刪除、數(shù)據(jù)庫用戶管理和權(quán)限控制等內(nèi)容。數(shù)據(jù)庫是不斷演進的一門課程,需要教師能夠及時跟進最新技術(shù)發(fā)展。
當前高校的數(shù)據(jù)庫教學一般分為具有計算機專業(yè)背景的教師或非計算機專業(yè)背景教師授課。若計算機系教師承擔授課數(shù)據(jù)庫課程授課任務(wù),則對于圍繞數(shù)據(jù)庫課程的基本知識要求應(yīng)該不存在問題,教師的理論知識儲備足以應(yīng)對非計算機類數(shù)據(jù)庫課程,重點應(yīng)做好數(shù)據(jù)庫發(fā)展和新型NoSQL數(shù)據(jù)庫等方面的教學準備。若由非計算機專業(yè)背景授課,則需要在理論和實踐、基礎(chǔ)和進階、歷史和未來等方面充分做好教學準備。
結(jié)合實際來看,基于需求的酒店管理系統(tǒng)內(nèi)容框架設(shè)置,必須從顧客角度出發(fā),從其到店、入住、退房等全過程所需經(jīng)歷環(huán)節(jié)進行實時分析,以此設(shè)置專業(yè)、合理、到位的服務(wù)需求方案。體現(xiàn)在酒店管理系統(tǒng)上時,即對前臺管理系統(tǒng)、消費管理系統(tǒng)、收銀管理系統(tǒng)、客房服務(wù)系統(tǒng)設(shè)置來體現(xiàn),使其做成一套完整的酒店管理系統(tǒng)框架,明確其個分項功能,使酒店顧客需求得到有效滿足。
為了給非計算機類專業(yè)學生打下堅實的數(shù)據(jù)庫技術(shù)基礎(chǔ),應(yīng)對未來工作中大數(shù)據(jù)處理中的數(shù)據(jù)庫操作需求,從教學內(nèi)容的調(diào)整、教學方法的改進和考核方式等三個角度探索非計算機類專業(yè)數(shù)據(jù)庫教學改革思路。
從上一節(jié)的分析中可以看出,當前數(shù)據(jù)庫市場發(fā)展迅速,這將帶來未來企業(yè)應(yīng)用的變化,因此在教學中應(yīng)考慮到這一發(fā)展趨勢。另外,目前就業(yè)市場對大學生提出了新的要求,需要從業(yè)者能夠更加深入地掌握數(shù)據(jù)庫操作方法。傳統(tǒng)的教學內(nèi)容和目標顯然和現(xiàn)實是脫節(jié)的,因此綜合調(diào)整課程的教學目標。非計算機類數(shù)據(jù)庫課程的教學目標大致如下:掌握關(guān)系型數(shù)據(jù)庫高級操作方法、理解數(shù)據(jù)操作之間的效率差異、掌握典型NoSQL數(shù)據(jù)庫、了解典型的云數(shù)據(jù)庫服務(wù),具有自主學習高級數(shù)據(jù)庫技術(shù)的能力。
當前,大部分數(shù)據(jù)庫課程都包含了關(guān)系數(shù)據(jù)庫理論和SQL語言,屬于教學內(nèi)容的“基本盤”??紤]到數(shù)據(jù)庫當前發(fā)展趨勢,以及各行業(yè)的數(shù)據(jù)庫相關(guān)技能需求,非計算機類專業(yè)需要從以下三個方面對教學內(nèi)容進行調(diào)整。
(1)深入講解數(shù)據(jù)查詢部分。數(shù)據(jù)查詢部分包含簡單查詢和復雜查詢。在教學過程中,通常使用簡單數(shù)據(jù)庫作為示例數(shù)據(jù)庫,在此基礎(chǔ)上開發(fā)單表查詢、聚合和分組查詢、多表查詢等。在生產(chǎn)環(huán)境下,通常涉及分組后的組內(nèi)排序查詢、窗口函數(shù)等內(nèi)容。因此,在教學內(nèi)容設(shè)計時,可以有針對性地增加高級查詢部分,讓學生更加深入地了解數(shù)據(jù)庫的優(yōu)勢。此外,將SQL與Python等通用編程語言聯(lián)系起來,詳細講解通用編程語言的數(shù)據(jù)庫接口,以加深學生的理解,增強工作情境中的應(yīng)用能力。
(2)加入主流NoSQL數(shù)據(jù)庫。NoSQL數(shù)據(jù)占據(jù)的市場份額逐級增大,MongDB和Redis等典型代表在生產(chǎn)環(huán)境中應(yīng)用范圍廣泛,很多數(shù)據(jù)都存在NoSQL數(shù)據(jù)庫中。特別地,NoSQL數(shù)據(jù)庫由于不需考慮數(shù)據(jù)表的范式,因此使用門檻較低,在爬蟲應(yīng)用中使用廣泛。在NoSQL教學過程中,不能將這部分內(nèi)容與關(guān)系型數(shù)據(jù)庫對立起來,而應(yīng)將它們的概念和數(shù)據(jù)操作對照起來教學[4]。例如,MongoDB中的大部分概念都在SQL中有對應(yīng)物,具體對應(yīng)關(guān)系如表1所示。因此,在對NoSQL數(shù)據(jù)庫的教學中,應(yīng)與SQL中的操作對應(yīng)起來。各種數(shù)據(jù)庫的操作語言存在著差異,但操作流程具有共性。
表1 SQL和MongoDB概念的對應(yīng)關(guān)系
(3)加入云數(shù)據(jù)庫。當前,數(shù)據(jù)很有可能存儲在本文,更可能存在公有云或私有云中。因此,需要能夠連接到這些云數(shù)據(jù)庫中然后進行操作,在教學內(nèi)容上應(yīng)有體現(xiàn)。具體教學過程中,首先要講述云數(shù)據(jù)庫相對于本地數(shù)據(jù)庫的優(yōu)勢和缺點;然后,介紹當前主流的云數(shù)據(jù)庫服務(wù)商,以及云數(shù)據(jù)庫的種類;最后,以某一云數(shù)據(jù)庫為案例展示其使用過程,通過實踐展示完整的操作流程讓學生對數(shù)據(jù)庫有更加直接全面的認識。
(4)加入包含大批量數(shù)據(jù)的案例數(shù)據(jù)庫。大數(shù)據(jù)是當前乃至未來的必然趨勢,在具體工作情境中尤為如此。傳統(tǒng)教學中一般使用包含較少數(shù)據(jù)表較少數(shù)據(jù)的數(shù)據(jù)庫作為演示數(shù)據(jù)庫,這和現(xiàn)實是脫節(jié)的。為此,建議積極利用各種途徑構(gòu)建大數(shù)據(jù)庫。第一種方法是利用網(wǎng)絡(luò)爬蟲獲取大批量數(shù)據(jù)。當然在數(shù)據(jù)采集過程中應(yīng)遵守法律法規(guī)和道德規(guī)范,不能泄露他人隱私信息。第二種方法是和企業(yè)合作,由企業(yè)提供脫敏大批量數(shù)據(jù)。
教學內(nèi)容的調(diào)整也應(yīng)帶來教學方法的改變,應(yīng)該從以下四方面改進教學方法。
(1)圍繞云數(shù)據(jù)庫構(gòu)建教學案例。云數(shù)據(jù)庫是未來的數(shù)據(jù)庫產(chǎn)業(yè)發(fā)展趨勢之一。圍繞云數(shù)據(jù)庫構(gòu)建教學案例有以下兩個優(yōu)勢:第一,減少了學生在個人筆記本電腦上配置數(shù)據(jù)庫的,從而降低學生在配置環(huán)境中可能遭遇的受挫感,提升學生早期學習的積極性;第二,可進行圍繞大數(shù)據(jù)的數(shù)據(jù)庫操作,部分涉及大批量數(shù)據(jù)的操作難以在計算和存儲能力有限的個人電腦上開展,而云數(shù)據(jù)庫沒有該限制。
(2)合理利用開源平臺。開源社區(qū)是當前技術(shù)發(fā)展的重要趨勢之一。相應(yīng)地,在教學過程中可考慮使用開源數(shù)據(jù)庫,例如MySQL和MongoDB等[5]。更加重要的是,需要向?qū)W生傳遞開源精神,讓學生懂的知識分享可促進知識創(chuàng)新。另外,可以利用中國最流行的代碼共享平臺Gitee分享課件和代碼。鼓勵學生在平臺上提出更好地解決方案,修改發(fā)現(xiàn)的課件或代碼錯誤,促進師生之間的溝通。
(3)構(gòu)建面向大數(shù)據(jù)操作的案例應(yīng)用。在未來的工作實踐中,如何更加有效、更加快速的操作數(shù)據(jù)庫關(guān)系到最終的工作效率。為此,在獲取大數(shù)據(jù)庫之后,需要根據(jù)典型的工作場景抽出關(guān)鍵的數(shù)據(jù)操作,進而匯集成案例庫。然后,結(jié)合理論知識部分,可以探索各種數(shù)據(jù)庫操作的效率問題,例如插入效率、刪除效率和查詢效率等,為優(yōu)化打下基礎(chǔ)。
(4)構(gòu)建開放、平等的師生交流平臺。當前MOOC平臺有著豐富的數(shù)據(jù)庫課程資源,學生可以方便地獲取這些資源。然而,與學校小班教學相比,線上課程也有針對性差、交流互動性不及時等缺點。因此,在課堂上,建議允許學生充分提出課程相關(guān)問題或疑問,老師和其他學生應(yīng)積極參與到問題的討論中,及早解決問題;在課后,建議基于BB教學平臺或則Gitee等開源平臺構(gòu)建更加自由的交流平臺。
課程教學評價關(guān)系到學生最終的成績,如何合理評估在數(shù)據(jù)庫課程中的表現(xiàn)關(guān)系到學生的學習積極性。教學內(nèi)容和教學方法的改革也對教學評價帶來了新的機遇和挑戰(zhàn),以下從評測考核和過程考核兩方面探討如何加強教學評價。
(1)過程考核。學習是一個較為漫長的過程,對于數(shù)據(jù)庫學習而言尤為如此。以評測為導向的考核目標簡單且易操作,但不能體現(xiàn)學生在學習過程中涌現(xiàn)出的一些好方法和好行為。例如,少數(shù)學生十分擅長解決一些課程中的疑難雜癥、樂于給同學提供幫助,教師應(yīng)對類似行為予以鼓勵,但這部分成績是難以在評價中衡量的。建議教師構(gòu)建學生行為數(shù)據(jù)庫,記錄學生在課堂或者線上行為,構(gòu)建綜合指標評測學生。最后,也要著重考查學生的動手能力,應(yīng)在構(gòu)建數(shù)據(jù)庫系統(tǒng)中觀察學生的表現(xiàn)。
(2)評測考核。考慮到數(shù)據(jù)庫課程的理論性為了體現(xiàn)考核的公平性和有效性,可以采用多次考核的形式,布置多次課后和課堂作業(yè)。調(diào)整平時作業(yè)和期末考試的成績比例,凸出學生的自主學習過程。特別地,在評測中,應(yīng)該就加強體現(xiàn)學生的主動性。例如,可以布置具有開放性和
試驗性的課后作業(yè)給學生完成,重點考察其主動思考和創(chuàng)新能力。
本文首先從數(shù)據(jù)庫產(chǎn)業(yè)發(fā)展、就業(yè)技能需求和傳統(tǒng)教學內(nèi)容等三個方面分析了大數(shù)據(jù)背景下非計算機專業(yè)數(shù)據(jù)庫課程變革環(huán)境。然后,從當前存在的一些問題切入,提出包括教學目標、教學內(nèi)容、教學方法和教學評價在內(nèi)的四位一體的課程改革思想。最后,本文必然存在一些考慮不全面的地方,但希望能夠為非專業(yè)數(shù)據(jù)庫課程改革提供借鑒。