余艷[1],邢遠(yuǎn)秀,劉燕麗
?
關(guān)系數(shù)據(jù)庫(kù)范式理論的實(shí)例教學(xué)法探討
余艷[1],邢遠(yuǎn)秀,劉燕麗
(武漢科技大學(xué) 理學(xué)院,湖北 武漢 430065)
關(guān)系數(shù)據(jù)庫(kù)規(guī)范化理論是本科數(shù)據(jù)庫(kù)課程的重要內(nèi)容之一.為提升教學(xué)質(zhì)量,以范式理論的教學(xué)問題為例,探討了實(shí)例教學(xué)的重要性和具體實(shí)施方法.在教學(xué)環(huán)節(jié)中精心設(shè)計(jì)了4個(gè)教學(xué)實(shí)例,闡明了范式理論的意義,輔助了范式理論的講解,并引導(dǎo)學(xué)生積極參與到對(duì)理論知識(shí)的理解中.實(shí)踐證明教學(xué)效果良好.
關(guān)系數(shù)據(jù)庫(kù);規(guī)范化理論;范式;實(shí)例教學(xué)
數(shù)據(jù)庫(kù)系統(tǒng)概論是信息類本科專業(yè)的必修課程,課程內(nèi)容涵蓋豐富,理論知識(shí)和應(yīng)用技術(shù)相互交融,主要包括:數(shù)據(jù)模型、關(guān)系代數(shù)、SQL語(yǔ)言、關(guān)系數(shù)據(jù)理論、數(shù)據(jù)庫(kù)設(shè)計(jì)和編程以及數(shù)據(jù)庫(kù)管理系統(tǒng)的事務(wù)處理技術(shù)[1].根據(jù)以往的教學(xué)經(jīng)驗(yàn)來看,學(xué)生對(duì)可以直接上機(jī)實(shí)踐的應(yīng)用技術(shù),如SQL的學(xué)習(xí)興趣盎然,且能夠輕松掌握,但是對(duì)理論知識(shí)的學(xué)習(xí)卻有抵觸情緒.
1 規(guī)范化理論實(shí)例教學(xué)的必要性
關(guān)系數(shù)據(jù)庫(kù)規(guī)范化理論是數(shù)據(jù)庫(kù)教學(xué)中的重點(diǎn)和難點(diǎn)[2-3],對(duì)該知識(shí)的掌握程度直接決定了學(xué)生在實(shí)踐工作中能否根據(jù)應(yīng)用需求設(shè)計(jì)出好的數(shù)據(jù)庫(kù)模式.出于對(duì)知識(shí)嚴(yán)謹(jǐn)闡述的原因,教材對(duì)規(guī)范化理論的講解往往使用了大量抽象符號(hào)和術(shù)語(yǔ),但這種講解模式容易擊退學(xué)生初始的學(xué)習(xí)熱情.且隨著課程的不斷深入,大量的概念和規(guī)則容易使學(xué)生產(chǎn)生枯燥無(wú)趣的感覺[4].在教學(xué)過程中設(shè)法調(diào)動(dòng)學(xué)生自身的學(xué)習(xí)主動(dòng)性和積極性,啟迪學(xué)生思維尤為重要.
實(shí)例教學(xué)法是指在授課教師指導(dǎo)下,根據(jù)課程教學(xué)目標(biāo)和內(nèi)容的需要,通過典型實(shí)例的分析和講解完成教學(xué),這一教學(xué)方法在許多學(xué)科的教學(xué)工作中取得了良好的效果[5-9].范式理論是關(guān)系數(shù)據(jù)庫(kù)規(guī)范化理論的重要組成部分,本文圍繞該問題探討實(shí)例教學(xué)的具體實(shí)施方法.在課堂教學(xué)環(huán)節(jié)中,圍繞4個(gè)簡(jiǎn)潔明了并具備實(shí)際意義的教學(xué)實(shí)例,通過討論式的教學(xué)方法闡明范式理論的含義,激發(fā)學(xué)生的學(xué)習(xí)興趣,增強(qiáng)學(xué)生運(yùn)用基本理論解決實(shí)際問題的思維意識(shí)[10],進(jìn)而有助于學(xué)生將相關(guān)知識(shí)靈活應(yīng)用到數(shù)據(jù)庫(kù)設(shè)計(jì)的實(shí)踐活動(dòng)中去.
2 范式理論的實(shí)例教學(xué)法
2.1 1NF的實(shí)例教學(xué)
關(guān)系模式屬于1NF的條件是每一個(gè)分量必須是不可分的數(shù)據(jù)項(xiàng)[11].在課堂教學(xué)中除了概念的陳述,更需要向?qū)W生強(qiáng)調(diào):只有滿足1NF,關(guān)系模式才是合法的,才可以建立在關(guān)系數(shù)據(jù)庫(kù)中,它是對(duì)關(guān)系模式最基本的要求.在實(shí)際的數(shù)據(jù)庫(kù)設(shè)計(jì)工作中,經(jīng)常要對(duì)收集到的報(bào)表進(jìn)行信息采集,此時(shí)常會(huì)遇到大表套小表的情形(見表1),屬性列“應(yīng)發(fā)工資”和“扣除項(xiàng)”均又分為3個(gè)數(shù)據(jù)項(xiàng),故不滿足1NF的要求,這樣的表無(wú)法存入數(shù)據(jù)庫(kù).要使其滿足1NF,則應(yīng)將“應(yīng)發(fā)工資”和“扣除項(xiàng)”分別拆分為3個(gè)屬性列.同時(shí),可引導(dǎo)學(xué)生分析屬性列“實(shí)發(fā)工資”的冗余特性,及其帶來的問題.
表1 大表套小表的工資報(bào)表實(shí)例
值得進(jìn)一步思考的是,滿足1NF的關(guān)系模式是否就是好的關(guān)系模式,以及衡量關(guān)系模式設(shè)計(jì)好壞的標(biāo)準(zhǔn)又是什么;在數(shù)據(jù)庫(kù)設(shè)計(jì)的工作中,初學(xué)者傾向于將收集到的報(bào)表中的所有字段匯集到一個(gè)關(guān)系模式中,這樣做是否正確.為回答這些問題,給出實(shí)例:學(xué)校開展了一系列的興趣活動(dòng),為協(xié)助活動(dòng)的宣傳、便于活動(dòng)管理,預(yù)備開發(fā)一個(gè)小型系統(tǒng)可以發(fā)布活動(dòng)的費(fèi)用信息、查詢和管理學(xué)生參與活動(dòng)的信息.簡(jiǎn)單需求分析發(fā)現(xiàn),學(xué)生需繳納一定的費(fèi)用參加某項(xiàng)活動(dòng),且每個(gè)學(xué)生可以參加多項(xiàng)活動(dòng),因此有學(xué)生設(shè)計(jì)了關(guān)系模式activities(sid,activity,fee),其對(duì)應(yīng)的關(guān)系實(shí)例見表2.其中屬性sid表示學(xué)生的學(xué)號(hào),activity表示活動(dòng),fee表示參與活動(dòng)所需的費(fèi)用.
表2 關(guān)系實(shí)例activities
該關(guān)系模式每個(gè)分量都不可分,故滿足1NF.
首先,提醒學(xué)生分析出該關(guān)系模式的碼和非主屬性.然后,帶領(lǐng)學(xué)生認(rèn)識(shí)不合理的模式設(shè)計(jì)可能帶來的問題:
(1)每項(xiàng)活動(dòng)所需的費(fèi)用只對(duì)應(yīng)一條信息,但在此表中卻重復(fù)存儲(chǔ)多次,重復(fù)次數(shù)等同于參與該活動(dòng)的人數(shù),此種問題稱為數(shù)據(jù)冗余;
(2)當(dāng)開設(shè)了新的活動(dòng),需要發(fā)布該活動(dòng)的費(fèi)用信息,但由于初始時(shí)刻還沒有學(xué)生參加,而(sid,activity)是該關(guān)系模式的碼,根據(jù)實(shí)體完整性約束,元組的主屬性不能為空,導(dǎo)致新的活動(dòng)及其費(fèi)用信息無(wú)法插入該表,即該插入的信息不能插入,此種問題稱為插入異常;
(3)假設(shè)參與某活動(dòng)的學(xué)生都退出,刪除這些學(xué)生參與活動(dòng)的信息同時(shí),該項(xiàng)活動(dòng)的費(fèi)用信息也一并刪除了,即不該刪除的信息也被刪除了,此問題稱為刪除異常;
(4)當(dāng)某項(xiàng)活動(dòng)的費(fèi)用發(fā)生變化,由于活動(dòng)費(fèi)用信息重復(fù)存儲(chǔ)多次,則修改費(fèi)用的操作也需要重復(fù)多次執(zhí)行,此種問題稱為修改異常.若有漏改,則將導(dǎo)致同一活動(dòng)對(duì)應(yīng)多種費(fèi)用,即產(chǎn)生數(shù)據(jù)不一致的問題.
提示學(xué)生,當(dāng)關(guān)系模式中存在一些不合適的函數(shù)依賴,如存在非主屬性或主屬性對(duì)碼的部分或傳遞依賴則會(huì)導(dǎo)致上述問題的發(fā)生.引導(dǎo)學(xué)生分析activities中非主屬性和碼之間的依賴關(guān)系.由于非主屬性fee是由活動(dòng)決定的,和參與活動(dòng)的學(xué)生無(wú)關(guān),因此該關(guān)系模式存在非主屬性fee對(duì)碼(sid,activity)的部分依賴.為解決上述問題,可以將activiteis分解為2個(gè)關(guān)系模式SA(sid,activity)和AF(activity,fee),從而消除這種不合適的函數(shù)依賴.根據(jù)上述發(fā)現(xiàn),研究者們力求對(duì)關(guān)系模式提出更高的要求,從而引出2NF的定義.
2.2 2NF的實(shí)例教學(xué)
接下來引導(dǎo)學(xué)生進(jìn)一步思考,滿足2NF的關(guān)系模式是否就一定是好的關(guān)系模式.考慮關(guān)系模式housing(sid,building,fee),其對(duì)應(yīng)的關(guān)系實(shí)例見表3.該關(guān)系存儲(chǔ)了學(xué)生的住宿信息,通過該關(guān)系可以查詢到學(xué)生住在哪個(gè)宿舍大樓及其支付的費(fèi)用.其中sid表示學(xué)號(hào),building表示宿舍大樓,fee表示宿舍大樓的收費(fèi)標(biāo)準(zhǔn).
首先,提醒學(xué)生分析該關(guān)系的碼、主屬性和非主屬性,以及該關(guān)系模式的范式級(jí)別.由于housing的碼是單屬性sid,不可能存在非主屬性對(duì)碼的部分依賴,故housing2NF.其次,帶領(lǐng)學(xué)生使用上一節(jié)提到的方法來驗(yàn)證housing是否.通過簡(jiǎn)單分析就會(huì)發(fā)現(xiàn),每棟宿舍大樓都有固定的費(fèi)用,但該費(fèi)用信息重復(fù)存儲(chǔ)多次,故該關(guān)系存在數(shù)據(jù)冗余的問題;若某棟大樓新建完畢,學(xué)生還未入住,由于sid是碼不能為空,則導(dǎo)致該大樓的費(fèi)用信息無(wú)法存入該關(guān)系模式,故存在插入異常;若某棟大樓的學(xué)生均離校,由于sid不能為空,則一并刪除大樓及費(fèi)用信息,故存在刪除異常;若某棟大樓的費(fèi)用發(fā)生變化,則需修改多次,故存在修改異常.
最后,分析導(dǎo)致這些問題的原因,該關(guān)系模式存在非主屬性fee對(duì)碼sid傳遞依賴.據(jù)此發(fā)現(xiàn),研究者們又力求對(duì)關(guān)系模式提出更高的要求,從而解決上述異常問題.由此,得到3NF的定義.
2.3 3NF的實(shí)例教學(xué)
同上一節(jié)的教學(xué)模式,引導(dǎo)學(xué)生思考滿足3NF的關(guān)系模式是否就是好的關(guān)系模式.考慮關(guān)系adviser(sid,major,tname),表示學(xué)生選擇喜愛的專業(yè)進(jìn)行研究,并受該專業(yè)下某教師指導(dǎo);一個(gè)學(xué)生可選多個(gè)專業(yè),術(shù)業(yè)有專攻,每位教師只負(fù)責(zé)一個(gè)專業(yè),每個(gè)專業(yè)有多名教師.其對(duì)應(yīng)的關(guān)系實(shí)例見表4.
表4 關(guān)系實(shí)例adviser
首先,提醒學(xué)生分析該關(guān)系模式的碼,得知為(sid,major)和(sid,tname).發(fā)現(xiàn)此關(guān)系模式不存在非主屬性,故其不存在非主屬性對(duì)碼的部分依賴和傳遞依賴,因此adviser3NF.然后,驗(yàn)證adviser是否完美.分析后發(fā)現(xiàn),新分配的教師由于還沒有學(xué)生跟隨其學(xué)習(xí),由于主屬性sid不能為空,所以該教師的信息無(wú)法存入該關(guān)系,故存在插入異常;如果某位教師唯一的學(xué)生畢業(yè),則該教師的信息也一并刪除,故存在刪除異常;最后,分析導(dǎo)致這些問題的原因,該關(guān)系模式存在主屬性major對(duì)碼(sid,tname)的部分依賴.因此,研究者們對(duì)關(guān)系模式提出更高的要求,從而解決上述異常問題.由此,得到BCNF的定義.
2.4 BCNF及范式理論小結(jié)
當(dāng)關(guān)系模式達(dá)到BCNF,那么在函數(shù)依賴范疇內(nèi),就實(shí)現(xiàn)了徹底的分離,消除了所有的插入和刪除異常.規(guī)范化的主要思想是使數(shù)據(jù)庫(kù)中各關(guān)系模式達(dá)到某種程度的分離,讓一個(gè)關(guān)系描述一個(gè)概念、一個(gè)實(shí)體或一種聯(lián)系,因此規(guī)范化的實(shí)質(zhì)是概念的單一化.由前述討論可知,范式級(jí)別越高,關(guān)系的分離程度就越強(qiáng).如果多表連接操作非常頻繁,則希望用降低范式級(jí)別的代價(jià)來?yè)Q取系統(tǒng)的執(zhí)行效率.由于3NF已經(jīng)消除了大部分的異常,因此在實(shí)際應(yīng)用中出于折衷考慮,一般要求關(guān)系達(dá)到3NF就可以了.同時(shí),3NF也是商業(yè)數(shù)據(jù)庫(kù)設(shè)計(jì)中最普遍的標(biāo)準(zhǔn).
3 結(jié)論
在數(shù)據(jù)庫(kù)范式理論的課堂教學(xué)中,通過對(duì)4個(gè)簡(jiǎn)單的關(guān)系實(shí)例展開分析和討論,幫助學(xué)生認(rèn)識(shí)到數(shù)據(jù)庫(kù)模式設(shè)計(jì)的重要性,引導(dǎo)學(xué)生積極參與到對(duì)理論知識(shí)的理解過程中.按照本文方法實(shí)施課堂教學(xué),學(xué)生普遍反應(yīng)對(duì)范式理論的授課內(nèi)容理解起來很輕松,同時(shí)在后續(xù)課程設(shè)計(jì)的實(shí)踐環(huán)節(jié)中能夠?qū)⒅R(shí)靈活應(yīng)用到數(shù)據(jù)庫(kù)模式的設(shè)計(jì)中.實(shí)踐教學(xué)證明,本文提出的授課方法取得了良好的教學(xué)效果.
[1] 李雁翎,李鵬誼.知識(shí)的內(nèi)化:計(jì)算思維的培養(yǎng)與數(shù)據(jù)庫(kù)教學(xué)[J].中國(guó)大學(xué)教學(xué),2013(7):33-35
[2] 呂鳴,王萍,劉建斌.關(guān)系數(shù)據(jù)理論的教學(xué)實(shí)踐探索[J].中國(guó)電力教育,2012(28):79-80
[3] 馬金忠,田彥山.?dāng)?shù)據(jù)庫(kù)原理課程教學(xué)中幾個(gè)重難點(diǎn)問題的多解探討[J].高師理科學(xué)刊,2011,31(4):90-94
[4] 范紅,吳怡之.“C語(yǔ)言程序設(shè)計(jì)”趣味實(shí)例教學(xué)方法的探討[J].計(jì)算機(jī)教育,2009(10):58-59
[5] 朱術(shù)云, 李小琴, 樸春德,等.實(shí)例教學(xué)法在“巖土工程數(shù)值分析”課程中的應(yīng)用探討[J].中國(guó)地質(zhì)教育,2015(96): 111-113
[6] 張建勤,劉小林,王昕,等.實(shí)例分析教學(xué)法在《動(dòng)物育種學(xué)》課程教學(xué)改革中的探索[J].家畜生態(tài)學(xué)報(bào),2015(3): 94-96
[7] 杜雪蓮.高職計(jì)算機(jī)課程“實(shí)例式”教學(xué)模式的探索[J].中國(guó)成人教育,2013(15):175-176
[8] 馬玉真,宋方臻,邵海燕.建模仿真實(shí)例教學(xué)在研究生創(chuàng)新教育中的應(yīng)用[J].實(shí)驗(yàn)技術(shù)與管理,2012(6):86-89
[9] 唐曉明.“基因突變”課堂教學(xué)實(shí)例的選擇和呈現(xiàn)[J].生物學(xué)通報(bào),2011(1):37-39
[10] 張中月,張志東,吳加貴,等.研究性實(shí)例在光學(xué)教學(xué)中的應(yīng)用[J].西南師范大學(xué)學(xué)報(bào):自然科學(xué)版,2012(5):173-176
[11] 王珊,薩師煊.?dāng)?shù)據(jù)庫(kù)系統(tǒng)概論[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
武漢科技大學(xué)教學(xué)研究項(xiàng)目(2012X51);武漢科技大學(xué)研究生教學(xué)研究項(xiàng)目(2014JY33);湖北省自然科學(xué)基金項(xiàng)目(2015CFB602)
余艷(1980-),女,湖北襄陽(yáng)人,副教授,碩士,從事計(jì)算機(jī)視覺和機(jī)器學(xué)習(xí)的研究.E-mail:yuyan_wust@163.com