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

圖1 概念模型案例
根據邏輯設計案例,進行數據庫的存儲路徑和存取方式設計,特別是index索引的實際。然后可以利用數據庫設計軟件,直接轉換成選定的關系型數據庫管理系統(如Mysql)的數據庫生成語句。案例數據庫可以得到如圖3所示數據庫定義語句,在Mysql中創建一個School主題數據庫,包含student、class、lesson、office、officer、school、sept和 sc數 據 表。抽取其中一個表“學生(student)”和邏輯模型當中實體“學生(student)”的屬性對照,如圖4所示。
讓同學選擇一個熟悉的開發平臺,例如Java、.NET或php開發平臺環境,在充分理解ODBC或JDBC的基礎上,開發數據庫應用系統。特別要注意系統開發中業務的事務處理控制。
在數據庫運行階段,進行數據庫的備份和恢復操作,查看各級日志文件。
對2018級電子商務專業和物流管理專業共125名學生的學習效果調查統計結果表明,本課程結合案例教學內容與課程目標,呈現良好的教學效果。38.5%的同學認為案例教學對數據庫系統概論課程的學習非常有幫助, 57.2% 的同學認為有幫助。
論文構建了數據庫系統概論課程的案例教學內容,拓寬了學生案例學習渠道,探索了數據庫實踐與案例教學方法。學生通過一個典型案例串聯數據庫課程的前后知識點,理解數據庫分析與設計的生產全過程,能夠深刻理解和掌握數據庫實踐知識和流程。

圖2 邏輯模型案例

圖3 數據庫定義案例

圖4 數據庫表與數據庫邏輯模型實體屬性對照圖