公務員期刊網(wǎng) 論文中心 正文

關系數(shù)據(jù)庫理論教學的反思

前言:想要寫出一篇引人入勝的文章?我們特意為您整理了關系數(shù)據(jù)庫理論教學的反思范文,希望能給你帶來靈感和參考,敬請閱讀。

關系數(shù)據(jù)庫理論教學的反思

本文作者:劉麗娟 單位:大連交通大學軟件學院

當前設計數(shù)據(jù)庫系統(tǒng)主要采用的是以邏輯數(shù)據(jù)庫設計核物理數(shù)據(jù)庫設計為核心的規(guī)范設計方法,通常將數(shù)據(jù)庫設計分為六個階段,即(1)需求分析階段;(2)概念設計階段;(3)邏輯設計階段;(4)物理設計階段;(5)數(shù)據(jù)庫實施階段;(6)數(shù)據(jù)庫運行、維護階段。邏輯結構設計階段需要對數(shù)據(jù)模型進行優(yōu)化,優(yōu)化方法通常以關系數(shù)據(jù)庫規(guī)范化理論為指導[1]。因此規(guī)范化理論的重要性不言而喻。

1.關系數(shù)據(jù)庫規(guī)范化理論的研究

規(guī)范化理論研究的是關系模式中各屬性之間的數(shù)據(jù)依賴關系以及對關系模式性能的影響,規(guī)范化理論是判斷關系模式優(yōu)劣的理論標準。

2.學習要點

2.1確定函數(shù)依賴

關系數(shù)據(jù)庫的規(guī)范化理論主要包括三個方面的內容:函數(shù)依賴、范式、模式設計。其中,函數(shù)依賴起著核心的作用,是模式分解和模式設計的基礎;范式是模式分解的標準。關于函數(shù)依賴,首先要正確理解函數(shù)依賴、完全函數(shù)依賴、部分函數(shù)依賴以及傳遞函數(shù)依賴的定義。下面給出函數(shù)依賴的定義。定義1函數(shù)依賴設R(U)是一個關系模式,U是R的屬性集合(如U={A1,…,An})。X、Y是U的子集。如果R(U)的所有關系r都存在著:對于X的每個值,都有Y的唯一值與之相對應,則稱X函數(shù)決定Y,或Y函數(shù)依賴X。記作X→Y。其中X叫作決定屬性集,Y叫作被決定屬性集。從軟件系統(tǒng)的需求過程中,我們得出了現(xiàn)實生活中的語義關系,根據(jù)屬性間的語義關系,我們很容易確定函數(shù)依賴。

2.2候選鍵

根據(jù)現(xiàn)實中的語義給出的函數(shù)依賴關系來求解候選鍵主要有2種方法,一種是圖示法,另一種是算法。圖示法要求學生具有很強的理論基礎,因此對于初學者來說不是很容易掌握,這里作者介紹求解算法,根據(jù)這些算法能很容易地求出候選鍵。(1)首先將屬性分為4類,即L類屬性、R類屬性、N類屬性以及LR類屬性。(2)根據(jù)求解候選鍵的算法得出結論。下面給出4類屬性[2]的定義。①L類屬性:只出現(xiàn)在函數(shù)依賴左部的屬性②R類屬性:只出現(xiàn)在函數(shù)依賴右部的屬性③N類屬性:在函數(shù)依賴左右兩邊都沒出現(xiàn)的屬性④LR類屬性:在函數(shù)依賴左右兩邊都出現(xiàn)的屬性算法1對于給定的關系模式R及其函數(shù)依賴集F,若X(X∈R)是L類屬性或N類屬性,則X必為R的候選鍵的成員,若X+包含了R的全部屬性,則X必為R的唯一候選鍵;若X+不能包含R的全部屬性,則LR類屬性也會成為候選鍵的成員;R類屬性不在任何候選鍵中。下面舉例說明求解候選鍵的算法過程。例2設有關系模式R(A、B、C、D、E、P),其函數(shù)依賴集F={A→D,E→D,D→B,BC→D,DC→A},求R的所有候選鍵。解:(1)L類屬性:C、E;N類屬性:P。(2)則C、E、P必為候選鍵的成員,又因為(CEP)+=ABCDEP,所以CEP是R的唯一候選鍵。

2.3范式

范式是符合某一種級別的關系模式的集合。根據(jù)關系數(shù)據(jù)庫中的關系滿足的不同要求,范式分為幾個等級,按照等級升序排序依次是1NF、2NF、3NF、BCNF、4NF、5NF,在低一級別的范式中滿足進一步的要求就成為高一級別的范式。為了使關系模式設計達到最優(yōu)化,通過將低一級別的范式分解,從而轉換為若干個高級的范式,這個過程稱作規(guī)范化。下面給出范式的定義。定義21NF如果一個關系模式R(U,F)的所有屬性都是不可分的基本數(shù)據(jù)項,則R∈1NF。定義32NF如果R∈1NF,且所有非主屬性都完全函數(shù)依賴于候選鍵,則R∈2NF。定義43NF如果R∈2NF,且所有非主屬性都不傳遞依賴于候選鍵,則R∈3NF。定義5BCNF如果R∈1NF,若X→Y且Y不真包含于X時X必包含鍵,則R∈BCNF。

從以上定義我們可以看出,(1)2NF消除了部分函數(shù)依賴,(2)3NF消除了傳遞依賴,(3)BCNF要求每一個決定屬性集都包含候選鍵。下面我們舉例說明范式的規(guī)范化過程。例3關系模式SLC(SNO,SDEPT,SLOC,CNAME,SCORE)∈1NF,函數(shù)依賴包括:(SNO,CNAME)→SCORE,(SNO,CNAME)→SDEPT,(SNO,CNAME)→SLOC,SNO→SDEPT,SNO→SLOC,SDEPT→SLOC。解:根據(jù)上述候選鍵求解算法得出,候選鍵是(SNO,CNAME)。

(1)從上述函數(shù)依賴關系我們可以看出,SDEPT和SLOC都部分函數(shù)依賴于候選鍵,所以應該消除這些部分依賴關系,因此分解時應將SDEPT和SLOC同SNO放在同一個關系模式中,即SL(SNO,SDEPT,SLOC),毫無疑問,SCORE與候選鍵被分到同一個關系模式,即SC(SNO,CNAME,SCORE)。這樣SL∈2NF,且SC∈2NF。

(2)從上述函數(shù)依賴關系我們可以看出,SLOC傳遞依賴于SNO,所以應該消除這個傳遞依賴,因此分解時應將SNO和SLOC分到不同的關系模式中,即SD(SNO,SDEPT)和DL(SDEPT,SLOC)。這樣SD∈3NF,且DL∈3NF。

(3)關系模式SD和DL中,每個決定因素都包含候選鍵,所以SD∈BCNF,且DL∈BCNF。

目前我們設計及使用的數(shù)據(jù)庫在函數(shù)依賴范疇領域BCNF已經(jīng)是最高級別了,如果考慮到其他依賴,比如多值依賴,還會要求4NF、5NF等等,關于多值依賴,作者這里不做介紹。BCNF消除了插入異常、更新異常、刪除異常,并且減少了數(shù)據(jù)冗余,但是在實際應用中并不是所有的范式都能達到BCNF,我們通常為了滿足一定的語義聯(lián)系,在設計模式中基本采用3NF。

3.結語

知識是靠不斷學習積累的,這里只是結合本科教學中關系數(shù)據(jù)庫規(guī)范化理論進行系統(tǒng)總結,所以不可能單憑幾個教學經(jīng)驗總結就能解決所有學生的學習問題。因此,我們教師應該在教學中不斷地探索、不斷地總結,結合每個學生的學習特點,具體問題具體分析,在一些總的原則下因人而異,因為教師的真正本領,不在于他是否會講述知識,而在于是否能喚起學生的求知欲望,讓他們興趣盎然地參與到教學過程中來。