余艷[1],邢遠秀,劉燕麗
?
關系數據庫范式理論的實例教學法探討
余艷[1],邢遠秀,劉燕麗
(武漢科技大學 理學院,湖北 武漢 430065)
關系數據庫規范化理論是本科數據庫課程的重要內容之一.為提升教學質量,以范式理論的教學問題為例,探討了實例教學的重要性和具體實施方法.在教學環節中精心設計了4個教學實例,闡明了范式理論的意義,輔助了范式理論的講解,并引導學生積極參與到對理論知識的理解中.實踐證明教學效果良好.
關系數據庫;規范化理論;范式;實例教學
數據庫系統概論是信息類本科專業的必修課程,課程內容涵蓋豐富,理論知識和應用技術相互交融,主要包括:數據模型、關系代數、SQL語言、關系數據理論、數據庫設計和編程以及數據庫管理系統的事務處理技術[1].根據以往的教學經驗來看,學生對可以直接上機實踐的應用技術,如SQL的學習興趣盎然,且能夠輕松掌握,但是對理論知識的學習卻有抵觸情緒.
1 規范化理論實例教學的必要性
關系數據庫規范化理論是數據庫教學中的重點和難點[2-3],對該知識的掌握程度直接決定了學生在實踐工作中能否根據應用需求設計出好的數據庫模式.出于對知識嚴謹闡述的原因,教材對規范化理論的講解往往使用了大量抽象符號和術語,但這種講解模式容易擊退學生初始的學習熱情.且隨著課程的不斷深入,大量的概念和規則容易使學生產生枯燥無趣的感覺[4].在教學過程中設法調動學生自身的學習主動性和積極性,啟迪學生思維尤為重要.
實例教學法是指在授課教師指導下,根據課程教學目標和內容的需要,通過典型實例的分析和講解完成教學,這一教學方法在許多學科的教學工作中取得了良好的效果[5-9].范式理論是關系數據庫規范化理論的重要組成部分,本文圍繞該問題探討實例教學的具體實施方法.在課堂教學環節中,圍繞4個簡潔明了并具備實際意義的教學實例,通過討論式的教學方法闡明范式理論的含義,激發學生的學習興趣,增強學生運用基本理論解決實際問題的思維意識[10],進而有助于學生將相關知識靈活應用到數據庫設計的實踐活動中去.
2 范式理論的實例教學法
2.1 1NF的實例教學
關系模式屬于1NF的條件是每一個分量必須是不可分的數據項[11].在課堂教學中除了概念的陳述,更需要向學生強調:只有滿足1NF,關系模式才是合法的,才可以建立在關系數據庫中,它是對關系模式最基本的要求.在實際的數據庫設計工作中,經常要對收集到的報表進行信息采集,此時常會遇到大表套小表的情形(見表1),屬性列“應發工資”和“扣除項”均又分為3個數據項,故不滿足1NF的要求,這樣的表無法存入數據庫.要使其滿足1NF,則應將“應發工資”和“扣除項”分別拆分為3個屬性列.同時,可引導學生分析屬性列“實發工資”的冗余特性,及其帶來的問題.

表1 大表套小表的工資報表實例
值得進一步思考的是,滿足1NF的關系模式是否就是好的關系模式,以及衡量關系模式設計好壞的標準又是什么;在數據庫設計的工作中,初學者傾向于將收集到的報表中的所有字段匯集到一個關系模式中,這樣做是否正確.為回答這些問題,給出實例:學校開展了一系列的興趣活動,為協助活動的宣傳、便于活動管理,預備開發一個小型系統可以發布活動的費用信息、查詢和管理學生參與活動的信息.簡單需求分析發現,學生需繳納一定的費用參加某項活動,且每個學生可以參加多項活動,因此有學生設計了關系模式activities(sid,activity,fee),其對應的關系實例見表2.其中屬性sid表示學生的學號,activity表示活動,fee表示參與活動所需的費用.

表2 關系實例activities
該關系模式每個分量都不可分,故滿足1NF.
首先,提醒學生分析出該關系模式的碼和非主屬性.然后,帶領學生認識不合理的模式設計可能帶來的問題:
(1)每項活動所需的費用只對應一條信息,但在此表中卻重復存儲多次,重復次數等同于參與該活動的人數,此種問題稱為數據冗余;
(2)當開設了新的活動,需要發布該活動的費用信息,但由于初始時刻還沒有學生參加,而(sid,activity)是該關系模式的碼,根據實體完整性約束,元組的主屬性不能為空,導致新的活動及其費用信息無法插入該表,即該插入的信息不能插入,此種問題稱為插入異常;
(3)假設參與某活動的學生都退出,刪除這些學生參與活動的信息同時,該項活動的費用信息也一并刪除了,即不該刪除的信息也被刪除了,此問題稱為刪除異常;
(4)當某項活動的費用發生變化,由于活動費用信息重復存儲多次,則修改費用的操作也需要重復多次執行,此種問題稱為修改異常.若有漏改,則將導致同一活動對應多種費用,即產生數據不一致的問題.
提示學生,當關系模式中存在一些不合適的函數依賴,如存在非主屬性或主屬性對碼的部分或傳遞依賴則會導致上述問題的發生.引導學生分析activities中非主屬性和碼之間的依賴關系.由于非主屬性fee是由活動決定的,和參與活動的學生無關,因此該關系模式存在非主屬性fee對碼(sid,activity)的部分依賴.為解決上述問題,可以將activiteis分解為2個關系模式SA(sid,activity)和AF(activity,fee),從而消除這種不合適的函數依賴.根據上述發現,研究者們力求對關系模式提出更高的要求,從而引出2NF的定義.
2.2 2NF的實例教學
接下來引導學生進一步思考,滿足2NF的關系模式是否就一定是好的關系模式.考慮關系模式housing(sid,building,fee),其對應的關系實例見表3.該關系存儲了學生的住宿信息,通過該關系可以查詢到學生住在哪個宿舍大樓及其支付的費用.其中sid表示學號,building表示宿舍大樓,fee表示宿舍大樓的收費標準.
首先,提醒學生分析該關系的碼、主屬性和非主屬性,以及該關系模式的范式級別.由于housing的碼是單屬性sid,不可能存在非主屬性對碼的部分依賴,故housing2NF.其次,帶領學生使用上一節提到的方法來驗證housing是否.通過簡單分析就會發現,每棟宿舍大樓都有固定的費用,但該費用信息重復存儲多次,故該關系存在數據冗余的問題;若某棟大樓新建完畢,學生還未入住,由于sid是碼不能為空,則導致該大樓的費用信息無法存入該關系模式,故存在插入異常;若某棟大樓的學生均離校,由于sid不能為空,則一并刪除大樓及費用信息,故存在刪除異常;若某棟大樓的費用發生變化,則需修改多次,故存在修改異常.
最后,分析導致這些問題的原因,該關系模式存在非主屬性fee對碼sid傳遞依賴.據此發現,研究者們又力求對關系模式提出更高的要求,從而解決上述異常問題.由此,得到3NF的定義.
2.3 3NF的實例教學
同上一節的教學模式,引導學生思考滿足3NF的關系模式是否就是好的關系模式.考慮關系adviser(sid,major,tname),表示學生選擇喜愛的專業進行研究,并受該專業下某教師指導;一個學生可選多個專業,術業有專攻,每位教師只負責一個專業,每個專業有多名教師.其對應的關系實例見表4.

表4 關系實例adviser
首先,提醒學生分析該關系模式的碼,得知為(sid,major)和(sid,tname).發現此關系模式不存在非主屬性,故其不存在非主屬性對碼的部分依賴和傳遞依賴,因此adviser3NF.然后,驗證adviser是否完美.分析后發現,新分配的教師由于還沒有學生跟隨其學習,由于主屬性sid不能為空,所以該教師的信息無法存入該關系,故存在插入異常;如果某位教師唯一的學生畢業,則該教師的信息也一并刪除,故存在刪除異常;最后,分析導致這些問題的原因,該關系模式存在主屬性major對碼(sid,tname)的部分依賴.因此,研究者們對關系模式提出更高的要求,從而解決上述異常問題.由此,得到BCNF的定義.
2.4 BCNF及范式理論小結
當關系模式達到BCNF,那么在函數依賴范疇內,就實現了徹底的分離,消除了所有的插入和刪除異常.規范化的主要思想是使數據庫中各關系模式達到某種程度的分離,讓一個關系描述一個概念、一個實體或一種聯系,因此規范化的實質是概念的單一化.由前述討論可知,范式級別越高,關系的分離程度就越強.如果多表連接操作非常頻繁,則希望用降低范式級別的代價來換取系統的執行效率.由于3NF已經消除了大部分的異常,因此在實際應用中出于折衷考慮,一般要求關系達到3NF就可以了.同時,3NF也是商業數據庫設計中最普遍的標準.
3 結論
在數據庫范式理論的課堂教學中,通過對4個簡單的關系實例展開分析和討論,幫助學生認識到數據庫模式設計的重要性,引導學生積極參與到對理論知識的理解過程中.按照本文方法實施課堂教學,學生普遍反應對范式理論的授課內容理解起來很輕松,同時在后續課程設計的實踐環節中能夠將知識靈活應用到數據庫模式的設計中.實踐教學證明,本文提出的授課方法取得了良好的教學效果.
[1] 李雁翎,李鵬誼.知識的內化:計算思維的培養與數據庫教學[J].中國大學教學,2013(7):33-35
[2] 呂鳴,王萍,劉建斌.關系數據理論的教學實踐探索[J].中國電力教育,2012(28):79-80
[3] 馬金忠,田彥山.數據庫原理課程教學中幾個重難點問題的多解探討[J].高師理科學刊,2011,31(4):90-94
[4] 范紅,吳怡之.“C語言程序設計”趣味實例教學方法的探討[J].計算機教育,2009(10):58-59
[5] 朱術云, 李小琴, 樸春德,等.實例教學法在“巖土工程數值分析”課程中的應用探討[J].中國地質教育,2015(96): 111-113
[6] 張建勤,劉小林,王昕,等.實例分析教學法在《動物育種學》課程教學改革中的探索[J].家畜生態學報,2015(3): 94-96
[7] 杜雪蓮.高職計算機課程“實例式”教學模式的探索[J].中國成人教育,2013(15):175-176
[8] 馬玉真,宋方臻,邵海燕.建模仿真實例教學在研究生創新教育中的應用[J].實驗技術與管理,2012(6):86-89
[9] 唐曉明.“基因突變”課堂教學實例的選擇和呈現[J].生物學通報,2011(1):37-39
[10] 張中月,張志東,吳加貴,等.研究性實例在光學教學中的應用[J].西南師范大學學報:自然科學版,2012(5):173-176
[11] 王珊,薩師煊.數據庫系統概論[M].北京:高等教育出版社,2014
Discussion on the example teaching method of the theory of normal form for relational database
YU Yan,XING Yuan-xiu,LIU Yan-li
(School of Science,Wuhan University of Science and Technology,Wuhan 430065,China)
The normalization theory of relational database is one of the important contents of undergraduate database courses. To improve the quality of teaching,the normal form theory is taken as an example to discuss the significance and the specific methods of the example teaching. By four teaching examples well-designed in the class,the meaning of normal form is illuminated,the theory of normal form is explained,and the students are led to take active parts in understanding the theoretical knowledge. Practice has proved that the good teaching effects are obtained by our teaching method.
relational database;normalization theory;normal form;example teaching
1007-9831(2016)02-0066-04
TP311.13∶G642.0
A
10.3969/j.issn.1007-9831.2016.02.019
2016-01-03
武漢科技大學教學研究項目(2012X51);武漢科技大學研究生教學研究項目(2014JY33);湖北省自然科學基金項目(2015CFB602)
余艷(1980-),女,湖北襄陽人,副教授,碩士,從事計算機視覺和機器學習的研究.E-mail:yuyan_wust@163.com