包 瓊
(湖北經(jīng)濟(jì)學(xué)院,湖北 武漢 430205)
現(xiàn)代計算機(jī)技術(shù)的發(fā)展,信息管理技術(shù)水平的提高,使得人們越來越多地享受到信息技術(shù)帶來的便利。不受空間、時間限制的海量數(shù)據(jù)的存儲與共享,涉及教育、商貿(mào)、醫(yī)療、社交等各個領(lǐng)域,人們越來越離不開信息技術(shù)。除了掌握基本的計算機(jī)操作能力,對于日新月異的信息管理的技術(shù)的了解,也成為當(dāng)代大學(xué)生必備的知識。計算機(jī)是如何進(jìn)行數(shù)據(jù)管理從而解決現(xiàn)實世界問題的,信息技術(shù)是如何服務(wù)于人們的工作、生活、學(xué)習(xí)的,對于這些問題的了解有助于使人們有效的融入到這個高速發(fā)展的信息化社會中,并有效的享受信息化帶來的種種好處,并為更有效的信息利用奠定堅實的基礎(chǔ)。
目前,我校針對非計算機(jī)專業(yè)的本科學(xué)生,除了開設(shè)有教授計算機(jī)基本操作能力的《計算文化基礎(chǔ)》課程,另一門重要的計算機(jī)相關(guān)的課程就是《數(shù)據(jù)庫原理與應(yīng)用》了。在《數(shù)據(jù)庫原理與應(yīng)用》課程中的教學(xué)中,采用Access軟件為載體,向?qū)W生介紹如何利用計算機(jī)技術(shù)進(jìn)行數(shù)據(jù)管理。相對于《計算機(jī)文化基礎(chǔ)》的偏重操作性的教學(xué)而言,該門課程的教學(xué)更側(cè)重理論與實踐結(jié)合,因此教學(xué)難度相對更大些。
《數(shù)據(jù)庫原理及應(yīng)用》課程的教學(xué)目的并不僅僅是教會學(xué)生使用某種數(shù)據(jù)庫管理系統(tǒng)軟件(如:Access),更重要的是,以一個特定的數(shù)據(jù)庫管理系統(tǒng)軟件(Access)為載體,向?qū)W生介紹數(shù)據(jù)處理與數(shù)據(jù)管理的知識,使學(xué)生對于計算機(jī)的數(shù)據(jù)管理的能力有所了解,并能夠?qū)λ硎艿降默F(xiàn)有的信息服務(wù)進(jìn)行有效的理解;更進(jìn)一步的能夠?qū)ο嚓P(guān)的信息技術(shù)的理解與本專業(yè)的知識進(jìn)行融合,并在相關(guān)專業(yè)領(lǐng)域的信息利用上提供良好的幫助。
從《數(shù)據(jù)庫原理及應(yīng)用》課程的多年教學(xué)中,發(fā)現(xiàn)學(xué)生在以下幾個方面的理解上存在較大難度:
(一)對于現(xiàn)實世界與計算機(jī)中管理的數(shù)據(jù)的關(guān)系的理解存在問題
學(xué)生們往往會困惑計算機(jī)中管理的數(shù)據(jù)到底是從何而來的,為什么是這些數(shù)據(jù)而不是那些數(shù)據(jù)。其實,計算機(jī)中所管理的數(shù)據(jù)來源于現(xiàn)實世界,需要經(jīng)過多次的抽象過程而得到。首先人們對現(xiàn)實世界的事物有一個認(rèn)識的抽象,形成一種概念,然后需要將人腦中獲得的這種概念,進(jìn)一步抽象為計算機(jī)軟件能夠表示的數(shù)據(jù)形式,這就是數(shù)據(jù)模型的概念了。數(shù)據(jù)模型是數(shù)據(jù)庫中數(shù)據(jù)組織的基礎(chǔ)。如果學(xué)生不能很好的理解現(xiàn)實與計算機(jī)之間的關(guān)系,那么課程中很多的相關(guān)概念的理解就會存在問題,如關(guān)鍵字、參照完整性等。
(二)對于數(shù)據(jù)表的關(guān)鍵字、索引的理解上存在一定難度
為什么要指定關(guān)鍵字,關(guān)鍵字有什么用,指定關(guān)鍵字后對于表中數(shù)據(jù)會產(chǎn)生什么影響。主關(guān)鍵字與唯一索引之間的關(guān)系等等。在學(xué)生的自我實踐過程中,由于對關(guān)鍵字、索引這些基本概念的理解的不透徹,導(dǎo)致在上機(jī)實踐的過程中,不能有效地根據(jù)操作過程中系統(tǒng)提示的錯誤信息,進(jìn)行相應(yīng)問題的解決,往往表現(xiàn)為不知所措。
(三)對于表間關(guān)系的理解,尤其是參照完整性的理解難度較大
為什么數(shù)據(jù)庫中的數(shù)據(jù)需要分解為多張不同的但是相互聯(lián)系的表,為什么要這樣分解。數(shù)據(jù)管理的基礎(chǔ)是數(shù)據(jù),數(shù)據(jù)如何組織在多張表中。按什么方式保證多張表間數(shù)據(jù)的一致性、有效性和正確性,是理解表間關(guān)系的要點(diǎn)。表的組織與數(shù)據(jù)的分解,表間參照的建立,是數(shù)據(jù)綜合利用的基礎(chǔ)。在實際教學(xué)過程中,學(xué)生經(jīng)常在向表中隨意輸入數(shù)據(jù),結(jié)果導(dǎo)致多張表間的數(shù)據(jù)無法相互印證,無法建立有效的參照關(guān)系,最后在多表查詢時出現(xiàn)嚴(yán)重錯誤。
(四)存在學(xué)習(xí)上的誤區(qū),將數(shù)據(jù)庫及其應(yīng)用課程的學(xué)習(xí)等同于計算機(jī)文化基礎(chǔ)課的學(xué)習(xí)
《計算機(jī)文化基礎(chǔ)》的學(xué)習(xí)側(cè)重于軟件的使用,而《數(shù)據(jù)庫及其應(yīng)用》課程側(cè)重于對于數(shù)據(jù)管理的基礎(chǔ)知識和規(guī)范的理解和靈活運(yùn)用,并在軟件中得以實現(xiàn)。學(xué)生在學(xué)習(xí)過程中,往往會出現(xiàn)這種情況:進(jìn)行查詢設(shè)計時,根據(jù)實驗指導(dǎo)書中的示例的查詢結(jié)果去檢測自己的實際操作結(jié)果的對錯。問題是:學(xué)生在數(shù)據(jù)表中所輸入的數(shù)據(jù)不一定與指導(dǎo)書中的數(shù)據(jù)完全一致,因此結(jié)果肯定是會有所不同的。因此,必須根據(jù)所建查詢的實際完成的功能,然后結(jié)合實際的數(shù)據(jù),進(jìn)行結(jié)果正誤的檢查。
以上問題,究其根源,乃是對計算機(jī)數(shù)據(jù)管理中相關(guān)基本概念的理解存在偏差造成的。因此,該課程教學(xué)中如何通過案例明晰相關(guān)的理論基礎(chǔ),成為關(guān)鍵問題。
下面以數(shù)據(jù)表的設(shè)計以及表間關(guān)系的創(chuàng)建環(huán)節(jié)為例,介紹此部分內(nèi)容的教學(xué)案例的設(shè)計與教學(xué)實施的要點(diǎn)。
(一)首先,設(shè)計一個初始的“學(xué)生”關(guān)系,關(guān)系模式描述為:學(xué)生(學(xué)號,姓名,性別,專業(yè)編號,專業(yè)名稱,課程號,課程名稱,學(xué)分,平時成績,期末成績),其中:學(xué)號與課程號一起構(gòu)成了該關(guān)系的主關(guān)鍵字。
該關(guān)系表中存儲有學(xué)生信息,課程信息,專業(yè)信息,成績信息,以及學(xué)生所選的某門課程的成績信息,學(xué)生所在專業(yè)的信息。對該關(guān)系進(jìn)行分析,發(fā)現(xiàn)該關(guān)系中數(shù)據(jù)存在以下問題:
1.數(shù)據(jù)冗余太大:每門課程的課程名稱信息重復(fù)出現(xiàn),將浪費(fèi)存儲空間。
2.更新異常:當(dāng)學(xué)生轉(zhuǎn)專業(yè)時,對應(yīng)學(xué)生的專業(yè)信息均須修改。
4.刪除異常:如果刪除了某個學(xué)生的所有信息,則可能相關(guān)課程的信息也刪除了。
由于該關(guān)系中存在部分依賴關(guān)系:表中的“課程名稱”字段不依賴于主鍵“學(xué)號+課程號”,而僅僅依賴于“課程號”(主鍵的一部分),姓名,性別,專業(yè)編號,專業(yè)名稱也僅依賴于“學(xué)號”(主鍵的一部分)。因此,對學(xué)生關(guān)系進(jìn)行分解,分解結(jié)果為3個關(guān)系,結(jié)果描述如下:
學(xué)生(學(xué)號,姓名,性別,專業(yè)編號,專業(yè)名稱)
課程(課程號,課程名稱,學(xué)分)
選課(學(xué)號,課程號,平時成績,期末成績)
經(jīng)過分解后,目前“學(xué)生”關(guān)系中還存在一個傳遞依賴關(guān)系:“學(xué)號”—>“專業(yè)編號”,反過來不成立,且“專業(yè)編號”—>“專業(yè)”,則有:“學(xué)號”—>“專業(yè)”。 解決方法:對“學(xué)生”關(guān)系進(jìn)一步分解:得到2個關(guān)系,結(jié)果描述如下:
學(xué)生(學(xué)號,姓名,性別,專業(yè)編號)
專業(yè)(專業(yè)編號,專業(yè)名稱)
在高速公路工程建設(shè)過程當(dāng)中,中心試驗室通過對各項施工原材料進(jìn)行合理的檢測,能夠?qū)①|(zhì)量不過關(guān)的施工原材料及時淘汰,有效提升高速公路工程的施工質(zhì)量。由于高速公路工程的施工規(guī)模比較大,工程中的各項施工原材料種類與數(shù)量不斷增多,為了保證各項施工原材料得到更加高效的使用,中心試驗室檢測人員要對各項原材料進(jìn)行科學(xué)的檢測試驗,針對質(zhì)量不過關(guān)的原材料,要及時更換原材料或者重新購買。
經(jīng)過這一系列的分解,最后得到的4個關(guān)系分別是:學(xué)生(學(xué)號,姓名,性別,專業(yè)編號);課程(課程號,課程名稱,學(xué)分);專業(yè)(專業(yè)編號,專業(yè)名稱);成績(學(xué)號,課程號,平時成績,期末成績)。一般來說對于非計算機(jī)專業(yè)學(xué)生就介紹到此就可以了。
這個分解的過程就是關(guān)系規(guī)范化的過程,它能夠解決單個關(guān)系進(jìn)行數(shù)據(jù)管理所帶來的一系列問題。至此數(shù)據(jù)分解的原因是就介紹清楚了。
(二)接著,引出下一個問題:當(dāng)關(guān)系表分解后,各關(guān)系表之間如何保證數(shù)據(jù)的正確性、一致性的問題。
首先,這4個關(guān)系并不是孤立的4個關(guān)系,而是相互有聯(lián)系。這4個關(guān)系是從最初的1張關(guān)系通過分解的過程得到。分解的過程可以對數(shù)據(jù)進(jìn)行有效的分類管理,并有效解決更新、刪除、插入異常等問題,但分解的結(jié)果應(yīng)該仍然保持?jǐn)?shù)據(jù)信息的應(yīng)有的信息含量,不會因為分解而造成數(shù)據(jù)的丟失,也不會因為分解而造成無來由的數(shù)據(jù)的出現(xiàn),分解之后關(guān)系中依然反映的是最初的現(xiàn)實世界的各項特征。在關(guān)系數(shù)據(jù)庫中實體以及實體之間的關(guān)系都是通過二維表的形式表達(dá)的,應(yīng)該是先有實體本身,然后才有實體之間的關(guān)系的存在。因此應(yīng)該是先有課程實體的數(shù)據(jù),然后才有學(xué)生選課以及成績的信息,因此要求成績關(guān)系中的課程號一定是客觀存在的有效的課程號,即應(yīng)該是課程關(guān)系中存在的課程實體的課程號屬性,同理成績關(guān)系中的學(xué)號一定是客觀存在的有效的學(xué)號,即應(yīng)該是學(xué)生關(guān)系中存在的學(xué)生實體的學(xué)號屬性。也就是說,成績關(guān)系中的課程號需要以課程關(guān)系中的課程號為參照,學(xué)號需要以學(xué)生關(guān)系中的學(xué)號為參照,因此需要指定它們之間的參照關(guān)系。于是引出外關(guān)鍵字和參照完整性的概念的介紹。關(guān)于設(shè)置參照完整性的意義就可以順理成章的介紹給學(xué)生了,而且易于理解和掌握。在此基礎(chǔ)之上可以通過實際數(shù)據(jù)的刪除、更新、修改等操作,演示設(shè)置參照完整性后對數(shù)據(jù)表的操作所產(chǎn)生的影響,而且可以與參照完整性設(shè)置之前的情況進(jìn)行一個對比。在參照完整性概念理解清楚之后,就可以進(jìn)一步介紹級聯(lián)更新與級聯(lián)刪除的概念了。
(三)在表間關(guān)系建立后,就可以開始轉(zhuǎn)入下一個議題:各個關(guān)系是如何通過連接又重新組合到一起,得到人們需要的綜合性的數(shù)據(jù)。于是就涉及到了多表查詢中關(guān)于多表連接的概念的介紹了。在Access中多表的連接主要有inner join、left join和right join三種。通過對關(guān)系代數(shù)中笛卡爾集、以及內(nèi)聯(lián)接、自然連接等概念的循序漸進(jìn)的介紹,通過上述4個關(guān)系中的數(shù)據(jù),介紹inner join、left join與right join的不同應(yīng)用。
上述3個內(nèi)容一環(huán)扣一環(huán),前面的內(nèi)容是后面內(nèi)容的基礎(chǔ)。在教學(xué)過程中切不可省略數(shù)據(jù)表的分解過程的介紹,否則學(xué)生在理解數(shù)據(jù)庫的數(shù)據(jù)管理上就會存在知識的欠缺,對于后面參照完整性乃至多表的操作均會存在不同程度的困惑。
在案例教學(xué)的實施過程中,應(yīng)注意以下幾個方面:
(一)案例內(nèi)容應(yīng)該是學(xué)生易于理解的。案例的設(shè)計中一方面要注意表結(jié)構(gòu)的設(shè)計,另一方面表中數(shù)據(jù)集的設(shè)計同樣重要。不同的數(shù)據(jù),在教學(xué)中能夠反映不同情況的分析結(jié)果。
(二)理論教學(xué)應(yīng)該與實踐環(huán)節(jié)密切聯(lián)系。在上機(jī)實踐的環(huán)節(jié)中,要求學(xué)生多注意看系統(tǒng)的錯誤提示信息,并進(jìn)行分析,以提高對基本概念的理解。
通過不斷改進(jìn)的案例教學(xué),筆者發(fā)現(xiàn)學(xué)生們對于計算機(jī)數(shù)據(jù)管理的概念的理解更透徹了。在數(shù)據(jù)表的創(chuàng)建、表間關(guān)系的創(chuàng)建以及涉及多表連接的內(nèi)容的設(shè)計上出錯的頻率大幅下降。并且,學(xué)生們可以自己進(jìn)行數(shù)據(jù)庫的設(shè)計,并利用所設(shè)計的數(shù)據(jù)表完成有一定難度的查詢了。
[1]金國鳴.高校非計算機(jī)專業(yè)Access數(shù)據(jù)庫教學(xué)方法探討[J].甘肅科技縱橫,2011,(3).
[2]馬曉榮.項目教學(xué)法在數(shù)據(jù)庫教學(xué)中的研究與實踐[J].陜西教育(高教版),2011,(6).