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