數(shù)據(jù)庫范式理論淺析論文

時(shí)間:2021-06-28 10:35:55 論文范文 我要投稿

數(shù)據(jù)庫范式理論淺析論文

  一、關(guān)系數(shù)據(jù)庫規(guī)范化理論

數(shù)據(jù)庫范式理論淺析論文

  關(guān)系規(guī)范化理論就是按照統(tǒng)一的標(biāo)準(zhǔn)對(duì)關(guān)系進(jìn)行優(yōu)化,將一個(gè)初始的、不太合理的關(guān)系模型轉(zhuǎn)化為一個(gè)高級(jí)的、合理的關(guān)系模型。其基本思想是通過合理的分解關(guān)系模式來消除其中不合適的數(shù)據(jù)依賴,以減少冗余數(shù)據(jù),提供有效的數(shù)據(jù)檢索方法,避免不合理的插入、刪除、修改等數(shù)據(jù)操作,保持?jǐn)?shù)據(jù)的一致性[1]。在關(guān)系數(shù)據(jù)庫中,對(duì)關(guān)系模式的基本要求是滿足第一范式,這樣的關(guān)系模式就是合法的、允許的。但是人們發(fā)現(xiàn)有些關(guān)系模式存在插入、刪除異常、修改復(fù)雜、數(shù)據(jù)冗余等毛病,解決的辦法就是對(duì)關(guān)系進(jìn)行規(guī)范化。規(guī)范化的過程就是將一個(gè)低一級(jí)范式的關(guān)系模式,通過模式分解轉(zhuǎn)換為若干個(gè)高一級(jí)范式的關(guān)系模式的集合。從理論上講,范式越高,規(guī)范化的程度就越高,但也不是范式越高就越好,要根據(jù)應(yīng)用場合具體問題具體分析。范式低了,數(shù)據(jù)冗余嚴(yán)重,范式高了,影響系統(tǒng)速度。對(duì)于一般的數(shù)據(jù)庫應(yīng)用系統(tǒng),只要將數(shù)據(jù)表規(guī)范到BCNF的標(biāo)準(zhǔn)就可以滿足用戶需求。

  二、第一范式(1NF)

  第一范式形式指在一個(gè)關(guān)系(二維表)中,各屬性(字段)均是不可再分的數(shù)據(jù)項(xiàng),即是一個(gè)規(guī)則的二維表。1NF是關(guān)系的基本性質(zhì),任何關(guān)系必須滿足第一范式。比如表1表示的關(guān)系不滿足第一范式,將重復(fù)項(xiàng)表頭去掉,分解為表2,就滿足第一范式?梢钥闯,表2符合第一范式,但還有很多缺點(diǎn):(1)數(shù)據(jù)冗余太大。每當(dāng)有學(xué)生選一門課程時(shí),該學(xué)生及學(xué)員隊(duì)信息都會(huì)重復(fù)出現(xiàn)一次,其實(shí)這些信息只出現(xiàn)一次就夠了。(2)數(shù)據(jù)更新麻煩。由于數(shù)據(jù)重復(fù)存儲(chǔ),在更新時(shí)可能會(huì)造成數(shù)據(jù)不一致,直接影響了系統(tǒng)的質(zhì)量。若工程一隊(duì)隊(duì)長調(diào)換成李季,則所有關(guān)于工程一隊(duì)的記錄都要修改,加大了工作量,還有可能發(fā)生遺漏,造成數(shù)據(jù)的不一致。(3)插入異常。表2的主鍵是學(xué)號(hào)和課程名稱,因?yàn)橹麈I字段不允許為空,所以新入學(xué)的同學(xué)因?yàn)檫沒有選修任何一門課程而無法錄入到該表中。(4)刪除異常。若工程一隊(duì)學(xué)生畢業(yè),將學(xué)生記錄刪除,則連同工程一隊(duì)隊(duì)長的信息一起刪除,引起信息丟失。

  三、第二范式(2NF)

  第二規(guī)范化形式是指如果在一個(gè)滿足1NF的關(guān)系中,所有非關(guān)鍵字?jǐn)?shù)據(jù)元素都完全依賴于候選關(guān)鍵字,即,如果給定一個(gè)關(guān)鍵字,則可以在這個(gè)數(shù)據(jù)表中唯一確定一條記錄。分析上面的.例子,該關(guān)系的關(guān)鍵字為學(xué)號(hào)和課程名稱,(學(xué)號(hào),課程名稱)一起函數(shù)決定任課教師和期末成績,(學(xué)號(hào),課程名稱)也函數(shù)決定姓名,學(xué)員隊(duì)和隊(duì)長。但實(shí)際上只要學(xué)號(hào)就能函數(shù)決定姓名,學(xué)員隊(duì)和隊(duì)長。所以說任課教師和期末成績完全函數(shù)依賴于學(xué)號(hào)和課程名稱,姓名,學(xué)員隊(duì)和隊(duì)長部分函數(shù)依賴于學(xué)號(hào),課程名稱。根據(jù)以上分析對(duì)表2進(jìn)行無損分解為表3和表4。我們可以看出,表3和表4所有非關(guān)鍵字都完全依賴于候選關(guān)鍵字,但是表3仍然存在以下問題:數(shù)據(jù)冗余大。學(xué)員隊(duì)隊(duì)長的姓名會(huì)隨學(xué)生個(gè)數(shù)重復(fù)若干次;數(shù)據(jù)更新麻煩。若工程一隊(duì)更換隊(duì)長,則必須更改表3中所有工程一隊(duì)每個(gè)學(xué)員的紀(jì)錄,如果有遺漏,還會(huì)造成數(shù)據(jù)不一致;插入異常。若新成立一個(gè)隊(duì),在沒有招生之前就無法輸入學(xué)員隊(duì)及隊(duì)長信息;刪除異常。如果張三退學(xué),將張三的記錄刪除,則連同學(xué)員隊(duì)長的信息一起刪除,引起信息丟失。

  四、第三范式(3NF)

  對(duì)于那些滿足2NF的關(guān)系,所有非關(guān)鍵字都不傳遞依賴于候選關(guān)鍵字,則稱這個(gè)關(guān)系滿足第三規(guī)范化形式[2]。從表3可以看出,存在問題的原因就是存在傳遞依賴:隊(duì)長通過學(xué)員隊(duì)依賴于學(xué)號(hào)。消除表中傳遞依賴的方法,仍然是將表進(jìn)行無損分解,將傳遞依賴單獨(dú)建立一張二維表,得到表5和表6。分析表4,雖然滿足第三范式,但仍然存在以下問題:(1)數(shù)據(jù)冗余大。高麗任數(shù)學(xué)教師,她的信息會(huì)隨其所教學(xué)生的數(shù)目重復(fù)若干次。(2)數(shù)據(jù)更新麻煩。若將計(jì)算機(jī)課的任課教師李可更換為李政,則所有李可教的學(xué)生的記錄都要更新,若漏改一處就會(huì)造成數(shù)據(jù)不一致。(3)插入異常。如果新來一個(gè)英語老師,會(huì)因?yàn)闆]有學(xué)生選課而不能插入其信息。(4)刪除異常。若刪除04號(hào)的數(shù)學(xué)成績,則連同任課教師的信息一同刪除,會(huì)造成信息丟失。

  五、BCNF范式

  若關(guān)系模式中,每一個(gè)決定因素都包含候選關(guān)鍵字,則稱該關(guān)系滿足BCNF范式。具體來講就是一個(gè)滿足BCNF的關(guān)系模式有:(1)所有非主屬性對(duì)每一個(gè)候選關(guān)鍵字都是完全函數(shù)依賴。(2)所有的主屬性對(duì)每一個(gè)不包含它的候選關(guān)鍵字,也是完全函數(shù)依賴。(3)沒有任何屬性完全函數(shù)依賴于非候選關(guān)鍵字的任何一組屬性[3]。表4中,任課教師函數(shù)決定課程名稱,而任課教師是非關(guān)鍵字,不符合第3條,所以還應(yīng)對(duì)表4進(jìn)行無損分解,得到表7和表8。

  六、結(jié)論

  一個(gè)關(guān)系模式經(jīng)過規(guī)范化,如果都屬于BCNF范式,那么在函數(shù)依賴的范疇內(nèi),它已實(shí)現(xiàn)了徹底的分離,消除了插入和刪除異常,能滿足一般程序設(shè)計(jì)的要求。在實(shí)際應(yīng)用中,并不一定要求所有關(guān)系都達(dá)到BCNF范式不可。有時(shí),適當(dāng)保留部分冗余可能更方便數(shù)據(jù)查詢,尤其對(duì)于那些更新頻度不高,查詢頻度較高的數(shù)據(jù)庫系統(tǒng)更是如此。

【數(shù)據(jù)庫范式理論淺析論文】相關(guān)文章:

淺析合并理論論文04-28

關(guān)于當(dāng)代會(huì)計(jì)理論的困境與范式改革論文05-10

庫恩的范式與理論創(chuàng)新12-07

簡單談?wù)勱P(guān)系數(shù)據(jù)庫中范式理論 -電腦資料01-01

交往行為理論:社會(huì)批判理論的范式轉(zhuǎn)變08-08

淺析彩禮返還糾紛的處理論文01-20

淺析哈貝馬斯的生活世界理論論文02-17

系統(tǒng)理論中的范式轉(zhuǎn)換12-03

淺析標(biāo)記理論07-29