摘要:E-R建模方法是數據庫原理與實踐等數據庫課程中的一個重要教學內容,文章根據筆者多年的教學經驗,結合學生學習時存在的常見問題,總結教學工作中的一些具體做法和措施,旨在培養學生自主學習能力和創新思維能力,提高學生的學習興趣和學習效果。
關鍵詞:數據庫;E-R模型;實體;聯系
基金項目:北京林業大學教學改革項目(BJFU2011JG031);中央高校基本科研業務費專項資金(YX2011-30);北京林業大學新進教師科研啟動基金(BLX2w8019);北京林業大學專業建設基金“計算機科學與技術專業能力構成與培養的研究”(2010北林教辦發34號文件)。
作者簡介:田萱,女,講師,研究方向為智能信息檢索、知識工程、數據庫系統;王春玲,女,副教授,研究方向為數據庫系統;孟祥光,男,講師,研究方向為多媒體技術、信息系統。
在數據庫課程中,概念模型是一個理論和實踐緊密結合的重要知識點。概念模型主要用于信息世界的建模,它實現了從現實世界到信息世界的第一層抽象,是幫助數據庫設計人員進行數據庫設計的有力工具,也是數據庫設計人員和用戶之間交互一種交流語言。E-R模型因其具有較強的語義表達能力、簡單清晰的描述方式而成為廣泛推廣和使用的一種概念模型。
E-R模式是Peter.P. Chen(陳品山)于1976年提出的一種概念模型,在斯坦福大學Jeffrey D. Ullman教授的1976年出版的數據庫教科書《Principles of Database Systems》中首次被介紹。因其清晰方便、易于交流和理解的描述形式得到廣大數據庫理論界和企業界的支持,得到廣泛的推廣和應用。在計算機科學與技術等相關專業的大學本科階段,E-R模型是數據庫系列課中非常重要的一個知識點[1],是數據庫系統設計的基礎,是軟件工程、信息系統等課程學習的前提。
然而,大部分同學表示數據庫課程中的E-R模型學習起來比較簡單,但實際應用中并非那么容易上手。許多教授軟件工程、信息系統等課程的老師也抱怨大部分同學在數據庫相關課程學習的E-R模型難以實用,以致影響了后續課程的學習和理解。造成這一現象的原因是多方面的。筆者從教師角度總結了如下兩點:
1) 數據庫課程中老師往往就E-R模型而講E-R模型,只是講解了E-R模型的一般表示方法,而缺乏對E-R模型來龍去脈的介紹,這就導致學生對E-R模型采用一種死記硬背的學習方式,而難以融會貫通地理解應用。
2) 大部分數據庫課程中,老師往往把已經分析設計好的數據庫需求拿給學生要求畫出E-R模型,忽略了需求分析和E-R模型的緊密聯系,導致學生只會按規定的需求設計畫出模型而不會根據需求分析設計畫出模型。
導致上述問題的一個根本原因就在于大部分數據庫課程的教材在內容中是把E-R模型和數據庫需求分析割裂開來的。一般把概念模型和E-R模型的原理放在基礎部分,而把從需求分析到E-R模型的轉換部分放在數據庫系統設計部分[1-2]。這就導致教師講授時也幾乎是割裂或拋棄了需求分析而單獨講解E-R模型。這樣帶來的后果就是學生難以把數據庫系統需求和E-R模型系統的統一起來,甚至對E-R模型應用背景缺乏了解。
針對以上問題,我們在數據庫課程的E-R模型教學過程,強調一方面引導學生“知其所以然”,另一方面強調學生“知其所以用”,讓學生從E-R模型的產生過程中探究E-R模型的應用,引導學生自己獨立思考和探究學習,實現從知識到方法,從方法再到能力的自然轉換。下面介紹一下筆者在數據庫原理與技術課程中關于E-R模型教學實踐的過程和體會。
1追根溯源,從漢字和古埃及文的構成引入
E-R模型的教學內容主要包括實體、實體屬性、實體之間聯系等表示方法。其中的重點內容是實體聯系的抽取和表示。學生在學習這部分內容時往往采用死記硬背的方式。由于對E-R模型作者表示方法缺乏理解,導致學生在應用E-R模型時照貓畫虎,難以根據實際的應用系統來分析。
而事實上,E-R模型作者在提出E-R模型時借鑒了中國漢字、英語、古埃及文字的構造思想[3-5]。教師在引入E-R模型時介紹一下作者構造思想,不僅有利于學生對E-R模型消化吸收,引導學生對知識追根溯源,還增添了教學情趣。
例如,在講到實體之間的所屬聯系時,可以引用E-R模型作者在《Data&Knowledge Engineering》中發表的“English Chinese and E-R Diagrams”一文中
的圖片[3],如圖1所示,從漢字“鐵、銅、銀”等字的構造中看到實體之間的“subset”關系;例如學生、本科生、碩士生、博士生之間的聯系,如圖2所示。
圖1E-R模型作者提供的漢字構造圖
圖2學生實體之間的subset關系
再例如,講解分析給定需求抽取實體及其聯系時,可以借鑒作者給出的英語句子結構和E-R模型結構的對應關系[3],如圖3所示,供學生在分析系統時參考。
圖3E-R模型作者提供的英語句子結構和E-R模型結構的對應關系
一般來說,這部分內容可以采取一種探究引導的教學方式:即由老師在課堂上簡單介紹E-R模型作者的構思,激發學生探究的興趣,然后交由學生讀取相關論文,再在課堂上報告,老師進行必要的點評和補充。這種方式更能激發學生學習的好奇心和積極性。
2一問一答,捕捉系統需求的邊界
在進一步的練習階段,筆者通常要求學生根據自己的生活學習體驗,自由提出應用系統需求,自己構建出數據庫系統的E-R模型。通常,學生在這個練習階段積極性非常高,提出的應用系統需求多種多樣,除了和學生學習生活緊密貼切的常見的學生管理系統、宿舍管理系統、圖書管理系統之外,還有許多來源于自己生活背景的系統。例如:國防生積分系統、自行車租賃系統、農村小賣部進銷存系統、黨員管理系統、大學生競賽管理系統、社團管理系統等。但是
面對自己提出的需求,學生大都剛開始很難掌控應用系統的邊界,制定出合理的E-R模型。導致這個結果的原因在于學生就如同一個普通用戶,對自己提出的應用系統沒有明確的使用需求,因此對涉及的數據庫系統沒有邊界。
針對這個問題,筆者的經驗是采用問答方式,幫助學生確立系統邊界,從而確立相應的概念模型。例如,針對某學生提出的大學生競賽管理系統,問答如下:
1) 該系統涉及哪些對象?
2) 各個對象都有哪些屬性?
3) 該系統中對象兩兩之間有無聯系?
4) 該系統中多個對象之間是否存在聯系?
5) 各個聯系的種類是什么?
在這五個問題中,第一和第二個問題是根本,用來明確系統所涉及的實體;第三個問題是關鍵,用來明確實體之間常見的聯系;第四個問題是必要的補充,以發現和明確實體之間多對多之間的聯系;第五個問題則是把概念模型轉換為關系模型的基礎。經過這個五個層層推進的問題,一般學生都能很好地明確系統邊界,清楚定位系統所涉及的實體和實體之間的聯系。
五個問題中的第二個是剛入手學生最容易迷惑的地方。因為他在分析時會發現對象之間有許多聯系,完全不像以前做題時題目中已經給定好實體之間特定的聯系,因此面臨實體之間的聯系如何取舍的問題。針對這個問題筆者提出了矩陣分析法來幫助初學者明確實體兩兩之間的聯系。
3矩陣分析,明確實體兩兩之間的聯系
針對上述大學生競賽系統的例子,下面給出矩陣分析法來明確系統實體兩兩之間的聯系。矩陣分析法分為三步:
1) 按照實體之間的順序,采用矩陣的形式,給出所有實體兩兩之間的聯系。因為兩個實體之間的聯系是唯一的,事實上這樣畫出的矩陣是個倒三角形。分析大學生競賽系統,可以得到系統中涉及的實體包括學生、競賽、競賽小組、指導老師四個實體。這些實體兩兩之間的聯系如圖4所示。
圖4實體兩兩之間聯系的初始矩陣
2) 對第一步結果矩陣進行去重處理。這個步驟實際上把相鄰兩個實體之間的聯系去掉一個,保證系統中聯系的唯一性。這個步驟比較簡單,學生熟練之后,可以和第一步合并在一起進行。去重后的大學生競賽系統中實體兩兩之間的聯系如圖5所示。
圖5去重后得到的實體兩兩之間的聯系矩陣
3) 發現第二步結果矩陣中的間接聯系并予以剔除。這一步主要根據需求的語義進行分析,發現實體之間的間接聯系,即通過其他實體可達的聯系,以減少冗余。剔除間接聯系后的大學生競賽系統中實體兩兩之間的聯系如圖6所示。
圖6剔除間接聯系后得到的實體兩兩之間的聯系矩陣
上述過程可以幫助初學E-R模型的學生體會需求分析中實體兩兩之間存在的聯系,從而明確實體之間的聯系。經過幾次這樣初步分析的練習之后,大部分同學很快就能掌握選擇實體兩兩之間聯系的捷徑,發現需要明確的就是實體和實體之間的直接聯系,從而越過上述較為復雜的矩陣分析。
4結語
E-R建模方法是數據庫原理與實踐等數據庫課程中的一個重要教學內容,筆者根據多年的教學經
驗,結合學生學習時存在的常見問題,總結了教學工作中的一些具體做法和措施:1)追根溯源,從漢字和古埃及文的構成引入;2)一問一答,捕捉系統需求的邊界;3)矩陣分析,明確實體兩兩之間的聯系。這些方法大大提高了學生的學習興趣和學習的積極主動性,在課堂內外都獲得比較好的效果。從2008年到2011年,筆者執教的數據庫課班中的學生在老師的指導下申請了校級大學生科研創新計劃項目6項,國家級大學生科研創新計劃項目1項,這些項目后臺均有數據庫系統支撐,如表1所示。
表12008年到2011年筆者所指導的底層基于數據庫系統的大學生創新項目
參考文獻:
[1]