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

關(guān)系數(shù)據(jù)庫理論教學(xué)的反思

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

關(guān)系數(shù)據(jù)庫理論教學(xué)的反思

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

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

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

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

2.學(xué)習(xí)要點

2.1確定函數(shù)依賴

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

2.2候選鍵

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

范式是符合某一種級別的關(guān)系模式的集合。根據(jù)關(guān)系數(shù)據(jù)庫中的關(guān)系滿足的不同要求,范式分為幾個等級,按照等級升序排序依次是1NF、2NF、3NF、BCNF、4NF、5NF,在低一級別的范式中滿足進一步的要求就成為高一級別的范式。為了使關(guān)系模式設(shè)計達到最優(yōu)化,通過將低一級別的范式分解,從而轉(zhuǎn)換為若干個高級的范式,這個過程稱作規(guī)范化。下面給出范式的定義。定義21NF如果一個關(guān)系模式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關(guān)系模式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ù)依賴關(guān)系我們可以看出,SDEPT和SLOC都部分函數(shù)依賴于候選鍵,所以應(yīng)該消除這些部分依賴關(guān)系,因此分解時應(yīng)將SDEPT和SLOC同SNO放在同一個關(guān)系模式中,即SL(SNO,SDEPT,SLOC),毫無疑問,SCORE與候選鍵被分到同一個關(guān)系模式,即SC(SNO,CNAME,SCORE)。這樣SL∈2NF,且SC∈2NF。

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

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

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

3.結(jié)語

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