官术网_书友最值得收藏!

3.1.5 關(guān)系模式規(guī)范化小結(jié)

關(guān)系模式規(guī)范化的過(guò)程是逐步消除關(guān)系模式中不合適的數(shù)據(jù)依賴的過(guò)程,使關(guān)系模型中的各個(gè)關(guān)系模式達(dá)到某種程度的分離,各個(gè)范式所滿足的條件一個(gè)比一個(gè)嚴(yán)格。按照它們的定義,可用圖3.1概括關(guān)系模式規(guī)范化的過(guò)程。

圖3.1 關(guān)系模式規(guī)范化的過(guò)程

以簡(jiǎn)單的關(guān)系模式為例,根據(jù)上述過(guò)程將其逐級(jí)規(guī)范化。

設(shè)有“教師任課”關(guān)系如下:

教師任課(教師工號(hào),姓名,性別,職稱,系號(hào),系名稱,教學(xué)情況(課程號(hào),課程名,教學(xué)水平,學(xué)分))

分析上述關(guān)系模式可知,該關(guān)系模式為非規(guī)范化的關(guān)系模式,所以,要對(duì)其進(jìn)行規(guī)范化,具體步驟如下。

(1)消去重復(fù)組。

以教師講授一門課作為一條記錄,合并所有的有關(guān)屬性,得到如下的關(guān)系模式:

教師任課(教師工號(hào),姓名,性別,職稱,系號(hào),系名稱,課程號(hào),課程名,教學(xué)水平,學(xué)分)

其中,{教師工號(hào),課程號(hào){為關(guān)鍵字,此關(guān)系為1NF。

(2)消去部分函數(shù)依賴。

在“教師任課”關(guān)系模式中,一些非主屬性對(duì)關(guān)鍵字{教師工號(hào),課程號(hào){部分函數(shù)依賴,如“姓名”“性別”“職稱”部分函數(shù)依賴于關(guān)鍵字{教師工號(hào),課程號(hào){,因?yàn)樗鼈儗?shí)際上是由教師工號(hào)決定的。因此,需要對(duì)關(guān)系進(jìn)行分解,使非主屬性完全函數(shù)依賴于關(guān)鍵字,從而得到如下三個(gè)關(guān)系模式:

教學(xué)情況(教師工號(hào),課程號(hào),教學(xué)水平),關(guān)鍵字為{教師工號(hào),課程號(hào)}。

教師(教師工號(hào),姓名,性別,職稱,系號(hào),系名稱),關(guān)鍵字為{教師工號(hào)}。

課程(課程號(hào),課程名,學(xué)分),關(guān)鍵字為{課程號(hào)}。

以上三個(gè)關(guān)系模式都是2NF。

但是,在“教師”關(guān)系模式中,{教師工號(hào){→{系號(hào){,{系號(hào){→{系名稱{,所以,非主屬性“系名稱”傳遞函數(shù)依賴于關(guān)鍵字{教師工號(hào){,因此“教師”關(guān)系模式不是3NF。

(3)消去傳遞函數(shù)依賴。

為消除傳遞函數(shù)依賴,將“教師”關(guān)系模式進(jìn)一步分解成如下兩個(gè)關(guān)系模式:

教師(教師工號(hào),姓名,性別,職稱,系號(hào)),

關(guān)鍵字為{教師工號(hào){。

系(系號(hào),系名稱),

關(guān)鍵字為{系號(hào){。

所以,可以用下面的四個(gè)關(guān)系模式代替最初的“教師任課”關(guān)系模式:

教師(教師工號(hào),姓名,性別,職稱,系號(hào)),

關(guān)鍵字為{教師工號(hào){。

系(系號(hào),系名稱),

關(guān)鍵字為{系號(hào){。

教學(xué)情況(教師工號(hào),課程號(hào),教學(xué)水平),

關(guān)鍵字為{教師工號(hào),課程號(hào){。

課程(課程號(hào),課程名,學(xué)分),

關(guān)鍵字為{課程號(hào){。

在這四個(gè)關(guān)系模式組成的關(guān)系模型中消除了傳遞函數(shù)依賴,達(dá)到了3NF。在以上任意一個(gè)關(guān)系模式中,每個(gè)決定因素都是關(guān)鍵字,因此也同時(shí)滿足了BCNF的要求。

一個(gè)關(guān)系模式達(dá)到BCNF,說(shuō)明在函數(shù)依賴的范疇內(nèi)已經(jīng)實(shí)現(xiàn)了徹底分離,可以消除插入、刪除和更新的異常。

對(duì)關(guān)系模式的規(guī)范化可以小結(jié)如下。

(1)目的

規(guī)范化的目的是使關(guān)系模式結(jié)構(gòu)合理,清除存儲(chǔ)異常,并使數(shù)據(jù)冗余盡量小,便于數(shù)據(jù)的插入、刪除和更新。

(2)原則

遵從“一事一地”的模式設(shè)計(jì)原則,即一個(gè)關(guān)系模式描述一個(gè)概念、一個(gè)實(shí)體或?qū)嶓w間的一種聯(lián)系。規(guī)范化的實(shí)質(zhì)是概念單一化。

(3)方法

將關(guān)系模式投影分解成兩個(gè)或兩個(gè)以上的關(guān)系模式。

(4)要求

分解后的關(guān)系模式集合應(yīng)當(dāng)與原關(guān)系模式等價(jià),即經(jīng)過(guò)自然連接可恢復(fù)原關(guān)系而不丟失信息,并保持屬性間合理的聯(lián)系。

主站蜘蛛池模板: 合阳县| 罗源县| 富锦市| 治县。| 荆门市| 蓝山县| 万安县| 格尔木市| 额济纳旗| 会泽县| 娄底市| 丹巴县| 涟水县| 西吉县| 荔波县| 孝感市| 阿拉尔市| 河北省| 南陵县| 九寨沟县| 韶山市| 新竹县| 蚌埠市| 巴中市| 霍林郭勒市| 于田县| 北宁市| 苏尼特左旗| 宁波市| 惠来县| 稻城县| 怀柔区| 新巴尔虎左旗| 丹凤县| 包头市| 绥棱县| 固原市| 勐海县| 新津县| 高州市| 龙游县|