賀琳
(大連海事大學(xué) 航運(yùn)經(jīng)濟(jì)管理學(xué)院,遼寧 大連)
數(shù)據(jù)庫是數(shù)據(jù)管理的有效技術(shù),是計(jì)算機(jī)科學(xué)的重要分支[1,2]。近年來,數(shù)據(jù)庫技術(shù)發(fā)展速度異常迅速,應(yīng)用廣泛,因此,各院校除了信息類專業(yè),大量與信息相關(guān)的工科專業(yè)都開設(shè)了數(shù)據(jù)庫相關(guān)課程。然而,通過對(duì)現(xiàn)有數(shù)據(jù)庫系統(tǒng)概論教材、內(nèi)容、教學(xué)體系的梳理,可以發(fā)現(xiàn),目前數(shù)據(jù)庫系統(tǒng)概論課程教學(xué)過程中還存在許多問題,學(xué)生不清楚知識(shí)點(diǎn)、知識(shí)流在實(shí)際過程中如何體現(xiàn)以及之間的內(nèi)在聯(lián)系,沒有形成合理的知識(shí)體系[3]。 最終導(dǎo)致“教”與“學(xué)”脫節(jié),“學(xué)”與“用”脫節(jié),沒有達(dá)到教學(xué)目標(biāo)。造成該結(jié)果的直接原因就是在教授數(shù)據(jù)庫系統(tǒng)概論課程時(shí),忽略了數(shù)據(jù)庫案例的建設(shè),導(dǎo)致了理論教學(xué)與實(shí)踐教學(xué)的脫節(jié)。
2015年教育部出臺(tái)的《教育部關(guān)于加強(qiáng)專業(yè)學(xué)位研究生案例教學(xué)和聯(lián)合培養(yǎng)基地建設(shè)的意見》中將案例教學(xué)定義為:以學(xué)生為中心,以案例為基礎(chǔ),將理論與實(shí)踐緊密結(jié)合,引導(dǎo)學(xué)生發(fā)現(xiàn)問題、分析問題、解決問題,從而掌握理論、形成觀點(diǎn)、提高能力的一種教學(xué)方式[4]。案例教學(xué)是一種有效結(jié)合理論與實(shí)踐的互動(dòng)教學(xué)方式,本文主要分析了數(shù)據(jù)庫系統(tǒng)概論課程的特點(diǎn),從知識(shí)和能力兩方面重新設(shè)計(jì)了教學(xué)目標(biāo),探討了教學(xué)案例分析在數(shù)據(jù)庫教學(xué)中的效果,旨在為數(shù)據(jù)庫課程教學(xué)方法提供一定的可參考性建議。
目前,多數(shù)院校的數(shù)據(jù)庫系統(tǒng)概論課程的教學(xué)內(nèi)容基本包含數(shù)據(jù)庫基礎(chǔ)概念,數(shù)據(jù)庫設(shè)計(jì)和數(shù)據(jù)庫系統(tǒng)管理三個(gè)部分,涉及的教學(xué)知識(shí)點(diǎn)主要包括數(shù)據(jù)庫系統(tǒng)基本概念、關(guān)系代數(shù)、SQL語言、數(shù)據(jù)庫安全性、數(shù)據(jù)完整性、關(guān)系數(shù)據(jù)庫模式分解、關(guān)系數(shù)據(jù)庫設(shè)計(jì)、關(guān)系數(shù)據(jù)庫查詢優(yōu)化、關(guān)系數(shù)據(jù)庫事務(wù)處理、關(guān)系數(shù)據(jù)庫并發(fā)控制和故障恢復(fù)等。每個(gè)知識(shí)點(diǎn)又涵蓋很多概念和定理證明。例如封鎖是實(shí)現(xiàn)并發(fā)控制的一個(gè)非常重要的技術(shù),DBMS通常提供了多種類型的封鎖,一個(gè)事務(wù)對(duì)某個(gè)數(shù)據(jù)對(duì)象加鎖后究竟擁有什么樣的控制是由封鎖的類型、封鎖的粒度決定的。鎖的類型、粒度等,內(nèi)容復(fù)雜、抽象,難以理解。
在授課過程中,是一個(gè)知識(shí)點(diǎn)一個(gè)知識(shí)點(diǎn)講解,但在實(shí)踐中,需要串聯(lián)使用[5]。例如,基礎(chǔ)內(nèi)容里的關(guān)系代數(shù)是數(shù)據(jù)庫系統(tǒng)管理內(nèi)容中查詢優(yōu)化的基礎(chǔ),模式分解是數(shù)據(jù)庫設(shè)計(jì)中邏輯模型設(shè)計(jì)的基礎(chǔ)。單個(gè)知識(shí)點(diǎn)授課,無法體現(xiàn)知識(shí)點(diǎn)、知識(shí)流在實(shí)際應(yīng)用中的內(nèi)在聯(lián)系。
授課順序上也是理論內(nèi)容在前,只有講到相關(guān)設(shè)計(jì)編程章節(jié)時(shí)才進(jìn)行實(shí)踐操作[6]。以大連海事大學(xué)航運(yùn)經(jīng)濟(jì)管理學(xué)院為例,信息管理專業(yè)、電子商務(wù)專業(yè)和物流管理專業(yè)開設(shè)的“數(shù)據(jù)庫系統(tǒng)概論”課程為64課時(shí),理論40課時(shí),實(shí)踐24課時(shí)。課程的實(shí)踐部分集中在課程的后半段的。學(xué)生對(duì)所學(xué)知識(shí)“只知其表,不知其理”,沒有理解理論知識(shí)點(diǎn)內(nèi)涵;對(duì)知識(shí)生搬硬套、簡(jiǎn)單模仿,無法針對(duì)實(shí)際管理問題,提出合理可行的解決方法。
隨著大數(shù)據(jù)、云計(jì)算、機(jī)器學(xué)習(xí)與人工智能技術(shù)的發(fā)展,數(shù)據(jù)庫模式也由經(jīng)典的關(guān)系型數(shù)據(jù)庫向多元化的數(shù)據(jù)庫模型(分布式數(shù)據(jù)庫,NewSql數(shù)據(jù)庫,數(shù)據(jù)倉庫)發(fā)展,工業(yè)界涌現(xiàn)了大量新型數(shù)據(jù)庫管理(如阿里的OceanBase數(shù)據(jù)庫,Google Spanner,ScaleBase等)[7,8]。但國內(nèi)大多院校的教材的更新速度明顯滯后,同時(shí)院校的實(shí)驗(yàn)環(huán)境也無法快速升級(jí)。
針對(duì)理論教學(xué)與實(shí)踐教學(xué)的脫節(jié)問題,結(jié)合數(shù)據(jù)庫課程的特點(diǎn),以及各專業(yè)對(duì)數(shù)據(jù)庫應(yīng)用的實(shí)際需求,論文對(duì)數(shù)據(jù)庫類課程教學(xué)目標(biāo)進(jìn)行了重新設(shè)計(jì)。將數(shù)據(jù)庫系統(tǒng)概論課程的目標(biāo)可以分為知識(shí)目標(biāo)和能力目標(biāo)兩部分。
(1)理解數(shù)據(jù)庫系統(tǒng)概論基本概念和基礎(chǔ)理論知識(shí),掌握數(shù)據(jù)、數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫系統(tǒng)的概念和內(nèi)涵,系統(tǒng)掌握數(shù)據(jù)模型、數(shù)據(jù)庫三級(jí)模式結(jié)構(gòu)的概念和知識(shí);
(2)在了解數(shù)據(jù)庫相關(guān)操作語言種類的基礎(chǔ)上,掌握SQL語言中DDL、DML、DCL等方面的知識(shí);
(3)理解和掌握范式、數(shù)據(jù)依賴、函數(shù)依賴閉包、屬性閉包、最小函數(shù)依賴集、Armstrong公理系統(tǒng)等關(guān)系數(shù)據(jù)庫理論的知識(shí),以及數(shù)據(jù)庫設(shè)計(jì)步驟、方法、開發(fā)技能等;
(4)理解和掌握數(shù)據(jù)庫安全、完整性、并發(fā)、備份與恢復(fù)等數(shù)據(jù)庫維護(hù)和控制方面知識(shí)。
(1)具有相關(guān)數(shù)據(jù)庫管理系統(tǒng)軟件實(shí)際操作能力;
(2)針對(duì)實(shí)際數(shù)據(jù)管理系統(tǒng)具有分析、設(shè)計(jì)、優(yōu)化數(shù)據(jù)庫,以及進(jìn)行數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)實(shí)現(xiàn)的能力;
(3)具有數(shù)據(jù)庫維護(hù)和控制的實(shí)際操作技能。
根據(jù)數(shù)據(jù)庫設(shè)計(jì)與實(shí)現(xiàn)的步驟,進(jìn)行案例教學(xué)內(nèi)容的設(shè)計(jì),利用一個(gè)案例串聯(lián)課程的前后知識(shí)點(diǎn)。
給出一個(gè)同學(xué)比較熟悉的業(yè)務(wù)場(chǎng)景,簡(jiǎn)化后,讓同學(xué)分組討論,對(duì)數(shù)據(jù)進(jìn)行分析,繪制數(shù)據(jù)流程圖,編寫詳細(xì)的數(shù)據(jù)詞典。業(yè)務(wù)場(chǎng)景可以根據(jù)學(xué)生的專業(yè)背景,參考企業(yè)人才需求,與各學(xué)科專家,行業(yè)專家協(xié)同精選。案例教學(xué)中采用的案例應(yīng)該是基于事實(shí)的基礎(chǔ)上講述道理而編寫的故事,具有明確的教學(xué)內(nèi)涵,有助于學(xué)生理解理論知識(shí)點(diǎn)、提升實(shí)踐操作能力的[9]。論文以經(jīng)典的學(xué)校院系和學(xué)生管理情景為例,假設(shè)學(xué)校有若干個(gè)系,每個(gè)系有若干班級(jí)和教研室,每個(gè)教研室有若干教員,其中有的教授和副教授每人各帶若干研究生,每個(gè)班有若干學(xué)生,每個(gè)學(xué)生選修若干課程,每門課程可以由若干學(xué)生選修。根據(jù)以上業(yè)務(wù)背景,寫出表1所示數(shù)據(jù)字典。
在需求分析的基礎(chǔ)上,利用數(shù)據(jù)庫設(shè)計(jì)軟件,如Power Design進(jìn)行E-R模型設(shè)計(jì),詳細(xì)描述實(shí)體的屬性和實(shí)體之間的聯(lián)系,消除不必要的冗余。上述場(chǎng)景中,可抽取出圖1概念模型,一共包含學(xué)校、系、教研室、班級(jí)、教員、學(xué)生、課程七個(gè)實(shí)體。圖中的矩形表示實(shí)體,連線表示確定每個(gè)實(shí)體的屬性和碼以及實(shí)體和實(shí)體之間的聯(lián)系。
選擇關(guān)系模型作為數(shù)據(jù)庫的邏輯模型,依據(jù)概念模型向邏輯模型的轉(zhuǎn)換規(guī)則,實(shí)現(xiàn)E-R圖向關(guān)系模型的轉(zhuǎn)換。在此基礎(chǔ)上,根據(jù)函數(shù)依賴,優(yōu)化數(shù)據(jù)模型。詳細(xì)說明實(shí)體、實(shí)體屬性和實(shí)體之間的關(guān)系。圖1概念模型可以轉(zhuǎn)換成圖2的所示的8個(gè)邏輯模型,其中新增的選修關(guān)系,是由概念模型中的m:n聯(lián)系轉(zhuǎn)換而來,1:n聯(lián)系n頭的實(shí)體屬性中,增加了1頭實(shí)體的碼。案例直觀立體地展示了實(shí)體的1:n和m:n聯(lián)系的轉(zhuǎn)換規(guī)則。
圖1 概念模型案例
根據(jù)邏輯設(shè)計(jì)案例,進(jìn)行數(shù)據(jù)庫的存儲(chǔ)路徑和存取方式設(shè)計(jì),特別是index索引的實(shí)際。然后可以利用數(shù)據(jù)庫設(shè)計(jì)軟件,直接轉(zhuǎn)換成選定的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(如Mysql)的數(shù)據(jù)庫生成語句。案例數(shù)據(jù)庫可以得到如圖3所示數(shù)據(jù)庫定義語句,在Mysql中創(chuàng)建一個(gè)School主題數(shù)據(jù)庫,包含student、class、lesson、office、officer、school、sept和 sc數(shù) 據(jù) 表。抽取其中一個(gè)表“學(xué)生(student)”和邏輯模型當(dāng)中實(shí)體“學(xué)生(student)”的屬性對(duì)照,如圖4所示。
讓同學(xué)選擇一個(gè)熟悉的開發(fā)平臺(tái),例如Java、.NET或php開發(fā)平臺(tái)環(huán)境,在充分理解ODBC或JDBC的基礎(chǔ)上,開發(fā)數(shù)據(jù)庫應(yīng)用系統(tǒng)。特別要注意系統(tǒng)開發(fā)中業(yè)務(wù)的事務(wù)處理控制。
在數(shù)據(jù)庫運(yùn)行階段,進(jìn)行數(shù)據(jù)庫的備份和恢復(fù)操作,查看各級(jí)日志文件。
對(duì)2018級(jí)電子商務(wù)專業(yè)和物流管理專業(yè)共125名學(xué)生的學(xué)習(xí)效果調(diào)查統(tǒng)計(jì)結(jié)果表明,本課程結(jié)合案例教學(xué)內(nèi)容與課程目標(biāo),呈現(xiàn)良好的教學(xué)效果。38.5%的同學(xué)認(rèn)為案例教學(xué)對(duì)數(shù)據(jù)庫系統(tǒng)概論課程的學(xué)習(xí)非常有幫助, 57.2% 的同學(xué)認(rèn)為有幫助。
論文構(gòu)建了數(shù)據(jù)庫系統(tǒng)概論課程的案例教學(xué)內(nèi)容,拓寬了學(xué)生案例學(xué)習(xí)渠道,探索了數(shù)據(jù)庫實(shí)踐與案例教學(xué)方法。學(xué)生通過一個(gè)典型案例串聯(lián)數(shù)據(jù)庫課程的前后知識(shí)點(diǎn),理解數(shù)據(jù)庫分析與設(shè)計(jì)的生產(chǎn)全過程,能夠深刻理解和掌握數(shù)據(jù)庫實(shí)踐知識(shí)和流程。
圖2 邏輯模型案例
圖3 數(shù)據(jù)庫定義案例
圖4 數(shù)據(jù)庫表與數(shù)據(jù)庫邏輯模型實(shí)體屬性對(duì)照?qǐng)D