摘 要:規(guī)范化問題是關系數(shù)據(jù)理論的重點和難點,僅從理論上作出解釋,很難使學生理解,本文提出通過一個完整的實例,采用逐步深入的方法解決關系模式中存在的問題,使學生加深對規(guī)范化理論的理解。
關鍵詞:數(shù)據(jù)依賴;規(guī)范化;范式
中圖分類號:G64
文獻標識碼:B
文章編號:1672,5913f2008)O1-0051-03
1 問題的提出
我們建立一個描述學校教務的數(shù)據(jù)庫,該數(shù)據(jù)庫涉及的對象包括學生的學號(sno)、學生姓名(sname)、所在系(sdept)、系主任姓名(Mname)、教師姓名(Tname)、課程號(cno)、成績(Grade)。假設用一個單一的關系模式來表示,則該關系模式的屬性集合為:
U={Sno,Sname,Sdept,Mname,Tname,Cno,Grade}
從這個關系模式中,我們可以看出存在以下問題:
(1)數(shù)據(jù)冗余太大
比如:Sdept,Mname等列中數(shù)據(jù)項重復出現(xiàn),這將浪費大量的存儲空間。
(2)更新異常(update Anomalies)
由于數(shù)據(jù)冗余,當更新數(shù)據(jù)庫中的數(shù)據(jù)時必然造成麻煩,例如,張一改
換了系,從計算機系調到自動化系,則需從整個關系中逐一找到其對應的元組進行修改,若漏改一處則造成數(shù)據(jù)矛盾。
(3)插入異常(InsertionAnomalies)
在StudentI表中,主碼是由學號和課程號組合而成的,兩者取值都不允許是空值。這樣,若有一新學生來報道,會由于他沒有選修任何一門課程而無法將其信息插入表中,這樣就形成了插入異常。如果一個系新成立,尚無學生,就無法把這個系及其系主任的信息存入數(shù)據(jù)庫,這樣也形成了插入異常。
(4)刪除異常(Deletion Anomalies)
在Studentl表中,若刪除張三,則整個元組不復存在,連同自動化系主任吳總這一信息也會一并刪掉,這樣會引起信息丟失。
關系數(shù)據(jù)庫規(guī)范化理論是用來研究如何將一個“不好”的關系模型轉化為一個“好”的關系模型?!?br>