張瑩
(咸陽職業(yè)技術(shù)學(xué)院,陜西咸陽 712000)
各行各業(yè)離不開數(shù)據(jù)庫,咸陽職業(yè)技術(shù)學(xué)院的計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)的核心課程就是數(shù)據(jù)庫的應(yīng)用原理和具體應(yīng)用,其中的內(nèi)容涵蓋了SQL 數(shù)據(jù)庫的基礎(chǔ)框架,組成結(jié)構(gòu),工作原理,SQL 函數(shù)增刪改查的使用以及數(shù)據(jù)庫原理的技術(shù)應(yīng)用。數(shù)據(jù)庫應(yīng)用課程屬于工程技術(shù)學(xué)科,需要學(xué)生具有一定的創(chuàng)新能力。因此在數(shù)據(jù)庫技術(shù)課程中的教學(xué)中不僅需要培養(yǎng)學(xué)生在數(shù)據(jù)庫技術(shù)方面的創(chuàng)新,還需要在數(shù)據(jù)庫原理的應(yīng)用上根據(jù)實(shí)際情況進(jìn)行創(chuàng)新來滿足需求。
數(shù)據(jù)庫應(yīng)用課程包含關(guān)系型數(shù)據(jù)庫理論,數(shù)據(jù)庫設(shè)計(jì),DBMS 平臺,數(shù)據(jù)保護(hù)體系和DML 語句等[1]。在關(guān)系型數(shù)據(jù)庫理論中涵蓋了關(guān)系型數(shù)據(jù)庫的概念、模型和規(guī)則3 個(gè)因素,數(shù)據(jù)庫設(shè)計(jì)是根據(jù)實(shí)際的業(yè)務(wù)場景對數(shù)據(jù)結(jié)構(gòu)進(jìn)行設(shè)計(jì),其中又包含了對數(shù)據(jù)庫的概念結(jié)構(gòu)設(shè)計(jì),邏輯結(jié)構(gòu)設(shè)計(jì)和物理結(jié)構(gòu)設(shè)計(jì),還涵蓋了數(shù)據(jù)的存儲和容災(zāi)方面的設(shè)計(jì),以保障業(yè)務(wù)在運(yùn)行過程中的業(yè)務(wù)邏輯和數(shù)據(jù)的安全問題。DBMS 平臺中文翻譯為數(shù)據(jù)庫管理平臺,可視化數(shù)據(jù)操作平臺,其中包含了數(shù)據(jù)庫各類操作,以及數(shù)據(jù)信息處理等關(guān)鍵因素,可以利用起來進(jìn)行創(chuàng)新思維開發(fā),在數(shù)據(jù)保護(hù)課程中,讓學(xué)生了解數(shù)據(jù)的存儲機(jī)制,對數(shù)據(jù)的存儲進(jìn)行備份和還原,以及容災(zāi)處理等。最后是DML 語句的使用,如select,update,delete 等,其中包含了SQL 的基本語法,增刪改查等操作,還有視圖、存儲過程和工作流程高級技術(shù)等因素,這些課程因素可以說是SQL 數(shù)據(jù)庫技術(shù)課程中用來培養(yǎng)學(xué)生創(chuàng)新能力的基礎(chǔ)。
在關(guān)系型數(shù)據(jù)庫原理的教學(xué)中,要著重講解關(guān)系型數(shù)據(jù)庫和非關(guān)系型數(shù)據(jù)庫的差異。例如,關(guān)系型數(shù)據(jù)庫中的Oracle,Mysql 等都具有事務(wù)性,高讀寫性,在SQL 的查詢方面也更具有規(guī)范性和高可用性,非關(guān)系型數(shù)據(jù)庫如Mongodb,Firebase 等,這類非關(guān)系型數(shù)據(jù)庫統(tǒng)稱為NoSQL, 他們以圖形或文檔的方式進(jìn)行數(shù)據(jù)存儲,在接口對接方面更具有靈活性,在這幾個(gè)方面的基礎(chǔ)上可以讓學(xué)生找出關(guān)系型數(shù)據(jù)庫的其他特性。教學(xué)的時(shí)候引導(dǎo)學(xué)生不只從關(guān)系型數(shù)據(jù)庫的本身進(jìn)行發(fā)現(xiàn),還可以從數(shù)據(jù)庫的延展性方面進(jìn)行討論,分析關(guān)系型數(shù)據(jù)庫和非關(guān)系型數(shù)據(jù)庫實(shí)際應(yīng)用場景的區(qū)別,讓學(xué)生發(fā)散思維,在了解數(shù)據(jù)庫類型理論的同時(shí)還可以豐富應(yīng)用場景。
數(shù)據(jù)庫設(shè)計(jì)的教學(xué)核心是圍繞數(shù)據(jù)庫的概念結(jié)構(gòu)設(shè)計(jì)、邏輯結(jié)構(gòu)設(shè)計(jì)、物理結(jié)構(gòu)設(shè)計(jì)和運(yùn)維結(jié)構(gòu)設(shè)計(jì)來開展[2],數(shù)據(jù)庫設(shè)計(jì)的基礎(chǔ)是對實(shí)際的業(yè)務(wù)情況進(jìn)行需求分析,教學(xué)期間教師給以不同的業(yè)務(wù)場景,讓學(xué)生對不同的業(yè)務(wù)場景進(jìn)行需求分析以及數(shù)據(jù)庫設(shè)計(jì)分析。例如,普遍的業(yè)務(wù)場景都是前端頁面對后臺數(shù)據(jù)的交互操作,在這類業(yè)務(wù)中要明確用戶的業(yè)務(wù)涉及的表結(jié)構(gòu)、數(shù)據(jù)類型、主外鍵和數(shù)據(jù)量,再根據(jù)需求情況對數(shù)據(jù)庫的概念結(jié)構(gòu)預(yù)先設(shè)計(jì)出數(shù)據(jù)庫的概念結(jié)構(gòu),畫出E-R 模型圖(實(shí)體-關(guān)系圖)。實(shí)體是根據(jù)抽象的方法確定需求數(shù)據(jù),關(guān)系是不同實(shí)體間的關(guān)系確認(rèn),再根據(jù)實(shí)際的模型結(jié)構(gòu)進(jìn)行E-R 數(shù)據(jù)模型轉(zhuǎn)換,消除模型數(shù)據(jù)沖突,再通過業(yè)務(wù)場景的各種業(yè)務(wù)邏輯來確認(rèn)數(shù)據(jù)邏輯,表與表之間的關(guān)系,最后通過用戶的資金投入和數(shù)據(jù)存儲的大小對數(shù)據(jù)庫的硬件和軟件進(jìn)行相應(yīng)的配置,最終集成用戶操作文檔和管理員管理手冊,便于用戶的使用和管理員的后期運(yùn)維工作。上述幾個(gè)步驟具有一定的理解難度,教師在教學(xué)的時(shí)候要注重對E-R 圖進(jìn)行拆解分析,可以讓學(xué)生利用自我認(rèn)知先嘗試畫出E-R圖,然后再根據(jù)學(xué)生的思維進(jìn)行校正。在這些數(shù)據(jù)庫設(shè)計(jì)的過程中讓學(xué)生結(jié)合業(yè)務(wù)場景,根據(jù)數(shù)據(jù)庫類型特性來進(jìn)行分析和討論,開拓學(xué)生的思維,不可局限于某一種類型的業(yè)務(wù)場景進(jìn)行數(shù)據(jù)庫設(shè)計(jì)分析,教師在引導(dǎo)學(xué)生的時(shí)候要多元化,讓學(xué)生的思維創(chuàng)新能力更為廣闊。
DBMS 平臺是數(shù)據(jù)庫管理操作平臺,例如,oracle 數(shù)據(jù)庫的操作平臺PLSQL,它具有強(qiáng)大的集成功能,可以在PLSQL 平臺中對數(shù)據(jù)庫進(jìn)行創(chuàng)建和開發(fā)以及可視化數(shù)據(jù)操作。教師在DBMS 平臺教學(xué)的時(shí)候引導(dǎo)學(xué)生創(chuàng)建測試庫,然后利用DBMS 平臺進(jìn)行表空間的創(chuàng)建,單表的創(chuàng)建,視圖的創(chuàng)建和利用DBMS 平臺上的按鈕進(jìn)行數(shù)據(jù)的增刪改查,以及對表和表空間的處理。在數(shù)據(jù)庫實(shí)例,表空間,表和用戶的創(chuàng)建操作時(shí),可以讓學(xué)生對三者的關(guān)系進(jìn)行思考,例如,一個(gè)Oracle 數(shù)據(jù)庫可以有多個(gè)示例,一個(gè)示例中可以有多個(gè)表空間,一個(gè)表空間中有多個(gè)表,而多個(gè)表空間或者表可以同屬于一個(gè)用戶。教學(xué)過程中,教師在演示創(chuàng)建數(shù)據(jù)庫實(shí)例的時(shí)候,可以分步講解數(shù)據(jù)庫實(shí)例對于整個(gè)數(shù)據(jù)庫構(gòu)成的重要性,再讓學(xué)生進(jìn)行實(shí)踐,可以讓學(xué)生在操作的時(shí)候進(jìn)行發(fā)散思維不要怕遇到錯(cuò)誤,培養(yǎng)學(xué)生獨(dú)立處理問題的習(xí)慣。讓學(xué)生知道在DBMS 平臺上進(jìn)行操作時(shí),遇到不同類型的錯(cuò)誤時(shí)應(yīng)有的處理思路,對不同操作下的錯(cuò)誤可以有不同的解決方法[3]。
數(shù)據(jù)保護(hù)的教學(xué)核心是讓學(xué)生了解數(shù)據(jù)的重要性以及數(shù)據(jù)的保護(hù)措施,避免數(shù)據(jù)丟失以及人為誤操作導(dǎo)致的數(shù)據(jù)損壞。以O(shè)racle 數(shù)據(jù)庫為例,數(shù)據(jù)庫的保護(hù)機(jī)制有數(shù)據(jù)庫備份,數(shù)據(jù)庫還原以及數(shù)據(jù)庫容災(zāi)等機(jī)制,在數(shù)據(jù)庫備份中又分為數(shù)據(jù)的冷備份,數(shù)據(jù)的熱備份和數(shù)據(jù)的邏輯備份等。在不同的數(shù)據(jù)庫環(huán)境下,數(shù)據(jù)庫備份的方式也會有所不同,例如熱備份是在數(shù)據(jù)在運(yùn)行的情況下進(jìn)行備份,它會被分到當(dāng)前數(shù)據(jù)庫的時(shí)間節(jié)點(diǎn)下,而在節(jié)點(diǎn)后產(chǎn)生的數(shù)據(jù)庫數(shù)據(jù)的變化或者是配置的變化就不會存在備份當(dāng)中。冷備份是在數(shù)據(jù)庫脫機(jī)的情況下進(jìn)行備份,這樣的備份可以讓數(shù)據(jù)庫數(shù)據(jù)備份更加完整。邏輯備份是對數(shù)據(jù)庫的差異進(jìn)行備份,在教學(xué)的過程當(dāng)中需要讓學(xué)生了解不同備份機(jī)制之間的差異,在相同應(yīng)用場景下不同方式的備份差異,以及在不同環(huán)境下相同的備份機(jī)制是否也會有差異,了解備份后的數(shù)據(jù)存儲特點(diǎn),教師可以通過實(shí)戰(zhàn)操作,利用不同的備份方式如EMP 和EMPDP 這兩種不同的備份命令[4],解釋這兩者之間的差異,參數(shù)差異和數(shù)據(jù)差異等,再讓學(xué)生利用其他的備份方式進(jìn)行分析和對比,教師還可以在此基礎(chǔ)上進(jìn)行問題的延伸,例如,當(dāng)數(shù)據(jù)庫無法啟動或者重要文件損毀的情況下如何進(jìn)行備份和恢復(fù),如何利用雙機(jī)熱備和DATAGruand 來進(jìn)行數(shù)據(jù)的容災(zāi)處理,在結(jié)合實(shí)例講解的時(shí)候也能提升學(xué)生的學(xué)習(xí)興趣和創(chuàng)新思維。
SQL 是非過程化語言,是數(shù)據(jù)庫的專有語言,它對數(shù)據(jù)庫的定義,數(shù)據(jù)的訪問和操作都起到了必不可少的作用。操作數(shù)據(jù)庫的核心就是SQL,所以在數(shù)據(jù)庫技術(shù)教學(xué)中SQL 語言的創(chuàng)新能力需要著重培養(yǎng),培養(yǎng)學(xué)生的SQL 創(chuàng)新能力的方面主要有以下幾點(diǎn)。
2.5.1 編寫代碼的規(guī)范性和創(chuàng)新性
SQL 語句代碼具有一定的規(guī)范性,SQL 中的關(guān)鍵字要大寫,兩個(gè)字符之間需要空格隔開,在嵌套式SQL 語句當(dāng)中需要進(jìn)行合理的縮進(jìn),對于不同的SQL 代碼需要有基本的注釋。在學(xué)生利用DBMS 輔助器進(jìn)行SQL 代碼的編寫時(shí)提供了智能格式,可以讓學(xué)生養(yǎng)成SQL 編碼的正確書寫規(guī)范。創(chuàng)新性方面不是指讓學(xué)生隨性的編寫代碼而不考慮SQL 代碼的可行性和高效性[5],而是應(yīng)該盡可能地將SQL 代碼簡化,利用學(xué)生的好奇心理,將復(fù)雜的SQL 代碼利用函數(shù)和其他方式進(jìn)行簡化創(chuàng)新。
2.5.2 SQL 編寫思維上的創(chuàng)新
每一條SQL 的編寫是為了處理某種需求,因此對于同一個(gè)需求的處理會有不同的思路,這就需要對SQL 語法的儲備相當(dāng)豐富,可以通過不同的SQL語句處理其在視圖,函數(shù)和存儲過程的利用。例如,在查詢“每個(gè)學(xué)生每門學(xué)科成績”的需求中,可以讓學(xué)生發(fā)散思維,分析需求并寫出SQL 語句,在分析需求的時(shí)候要明確需求的結(jié)果,上面的例子中需求結(jié)果是成績,誰的成績,學(xué)生的成績,怎么取得學(xué)生的成績,又怎么和每一門學(xué)科進(jìn)行關(guān)聯(lián),讓學(xué)生可以在編寫SQL 語句的時(shí)候利用函數(shù)進(jìn)行解決,再衍生出其他的業(yè)務(wù)場景進(jìn)行思維開拓。
2.5.3 SQL 結(jié)構(gòu)化思維上的創(chuàng)新
SQL 語句的編寫中難免遇到復(fù)雜的語句,其中會包含多重嵌套和多級關(guān)聯(lián)。例如,像通過學(xué)生表和成績表來統(tǒng)計(jì)“數(shù)學(xué)成績在90 分以上的學(xué)生”中,就需要首先查詢出成績表中的數(shù)學(xué)成績,并且成績分?jǐn)?shù)大于90 的學(xué)生ID,再通過學(xué)生ID 去學(xué)生表查詢到對應(yīng)的學(xué)生。前部分查詢成績的SQL 就是子查詢SQL,再在外層嵌套學(xué)生表成為父查詢,在這類SQL語句中,教師需要從子查詢的邏輯進(jìn)行分析,讓學(xué)生理解子父關(guān)系以及嵌套下SQL 語句的運(yùn)行方式,讓學(xué)生產(chǎn)生SQL 的結(jié)構(gòu)化思維,從上到下從左到右的思維導(dǎo)圖,利用結(jié)構(gòu)化思維來處理需求。
2.5.4 SQL 分組思維上的創(chuàng)新
數(shù)據(jù)庫的查詢(SELECT)和更新(UPDATE)操作是最為頻繁的,在數(shù)據(jù)量較大的情況下進(jìn)行查詢和更新操作,就需要了解當(dāng)前數(shù)據(jù)集的規(guī)律和相同點(diǎn)[6],再根據(jù)規(guī)律和相同點(diǎn)通過SQL 代碼去進(jìn)行歸類和統(tǒng)計(jì)。例如,在“查詢總計(jì)算機(jī)專業(yè)課程分及格的學(xué)生”,首先通過嵌套查詢出每個(gè)學(xué)生計(jì)算機(jī)專業(yè)課程的分?jǐn)?shù),再根據(jù)及格60 分對比出課程分大于等于60 分的學(xué)生。再根據(jù)總分進(jìn)行排序,這個(gè)問題中就包含了兩個(gè)分組,第一個(gè)是對課程的分組,確定了是計(jì)算機(jī)專業(yè)課程,第二個(gè)是對及格人數(shù)的分組,最后整個(gè)在一起。SQL 的分組查詢可以讓學(xué)生通過對SQL 語句的運(yùn)算邏輯和統(tǒng)計(jì)邏輯進(jìn)行鍛煉,對比數(shù)據(jù)的差異性和同一性來進(jìn)行SQL 的編寫。
數(shù)據(jù)庫的課程內(nèi)容是枯燥的,許多概念和理論會讓學(xué)生對數(shù)據(jù)庫的學(xué)習(xí)產(chǎn)生厭倦,教師在開展教學(xué)活動的時(shí)候需要以學(xué)生為中心,利用實(shí)踐和理論的結(jié)合讓學(xué)生可以在學(xué)習(xí)數(shù)據(jù)庫技術(shù)的時(shí)候發(fā)散思維,對于邏輯思維和創(chuàng)新思維的培養(yǎng)上也需要以SQL 為中心。在DBMS 操作平臺上進(jìn)行數(shù)據(jù)庫實(shí)踐,教學(xué)內(nèi)容不能僅限于教材,對于每一個(gè)概念問題都需要有延伸場景,在處理問題方面有不同的解決思路,讓學(xué)生產(chǎn)生推理的興趣以及提升數(shù)據(jù)庫的操作能力。在數(shù)據(jù)庫設(shè)計(jì)方面,E-R 圖形的建模和邏輯結(jié)構(gòu)轉(zhuǎn)換可以分為小組進(jìn)行討論[7]。在互聯(lián)網(wǎng)發(fā)達(dá)的今天,教學(xué)模式可以通過互聯(lián)網(wǎng)的形式展開教學(xué),利用多媒體設(shè)備激發(fā)學(xué)生的學(xué)習(xí)興趣、教學(xué)效果,利用感官的沖擊讓學(xué)生可以多方位的思考。線下教學(xué)模式注重的是教師親自引導(dǎo)學(xué)生處理問題,開發(fā)問題多處理的思維方式,線上是可以利用題庫等軟件讓學(xué)生可以接觸到各類不同的問題以及不同的思維邏輯,以及鍛煉學(xué)生的獨(dú)立思考能力,讓學(xué)生在DBMS操作平臺中進(jìn)行試驗(yàn)和模仿[8],最終養(yǎng)成發(fā)現(xiàn)并處理問題的思維模式。
計(jì)算機(jī)專業(yè)學(xué)科中的數(shù)據(jù)庫原理的應(yīng)用課程的開設(shè)還處于開發(fā)階段,對于可能的創(chuàng)新因素,以及在培養(yǎng)學(xué)生創(chuàng)新思維能力的方向上還需要改進(jìn)和完善。目前階段的數(shù)據(jù)庫技術(shù)原理的應(yīng)用課程還需要注重對數(shù)據(jù)庫概念、數(shù)據(jù)庫設(shè)計(jì)、數(shù)據(jù)保護(hù)機(jī)制以及SQL 代碼的編寫方面進(jìn)行深入研究。在原有的基礎(chǔ)上進(jìn)行課程上和教學(xué)模式上的創(chuàng)新,最終將這些碎片化的創(chuàng)新因素進(jìn)行整合教育,為社會輸送更多優(yōu)質(zhì)的數(shù)據(jù)庫技術(shù)人才。