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