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

3.1.5 關系模式規范化小結

關系模式規范化的過程是逐步消除關系模式中不合適的數據依賴的過程,使關系模型中的各個關系模式達到某種程度的分離,各個范式所滿足的條件一個比一個嚴格。按照它們的定義,可用圖3.1概括關系模式規范化的過程。

圖3.1 關系模式規范化的過程

以簡單的關系模式為例,根據上述過程將其逐級規范化。

設有“教師任課”關系如下:

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

分析上述關系模式可知,該關系模式為非規范化的關系模式,所以,要對其進行規范化,具體步驟如下。

(1)消去重復組。

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

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

其中,{教師工號,課程號{為關鍵字,此關系為1NF。

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

在“教師任課”關系模式中,一些非主屬性對關鍵字{教師工號,課程號{部分函數依賴,如“姓名”“性別”“職稱”部分函數依賴于關鍵字{教師工號,課程號{,因為它們實際上是由教師工號決定的。因此,需要對關系進行分解,使非主屬性完全函數依賴于關鍵字,從而得到如下三個關系模式:

教學情況(教師工號,課程號,教學水平),關鍵字為{教師工號,課程號}。

教師(教師工號,姓名,性別,職稱,系號,系名稱),關鍵字為{教師工號}。

課程(課程號,課程名,學分),關鍵字為{課程號}。

以上三個關系模式都是2NF。

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

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

為消除傳遞函數依賴,將“教師”關系模式進一步分解成如下兩個關系模式:

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

關鍵字為{教師工號{。

系(系號,系名稱),

關鍵字為{系號{。

所以,可以用下面的四個關系模式代替最初的“教師任課”關系模式:

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

關鍵字為{教師工號{。

系(系號,系名稱),

關鍵字為{系號{。

教學情況(教師工號,課程號,教學水平),

關鍵字為{教師工號,課程號{。

課程(課程號,課程名,學分),

關鍵字為{課程號{。

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

一個關系模式達到BCNF,說明在函數依賴的范疇內已經實現了徹底分離,可以消除插入、刪除和更新的異常。

對關系模式的規范化可以小結如下。

(1)目的

規范化的目的是使關系模式結構合理,清除存儲異常,并使數據冗余盡量小,便于數據的插入、刪除和更新。

(2)原則

遵從“一事一地”的模式設計原則,即一個關系模式描述一個概念、一個實體或實體間的一種聯系。規范化的實質是概念單一化。

(3)方法

將關系模式投影分解成兩個或兩個以上的關系模式。

(4)要求

分解后的關系模式集合應當與原關系模式等價,即經過自然連接可恢復原關系而不丟失信息,并保持屬性間合理的聯系。

主站蜘蛛池模板: 界首市| 五指山市| 德清县| 中山市| 夏邑县| 日照市| 遂宁市| 宁远县| 绵竹市| 汨罗市| 宿州市| 于田县| 周至县| 灵川县| 信丰县| 太仓市| 洛浦县| 昆山市| 永福县| 阜城县| 广东省| 天水市| 宝丰县| 康保县| 武冈市| 图木舒克市| 安康市| 新民市| 阜城县| 泽州县| 武平县| 静安区| 杭州市| 泌阳县| 香格里拉县| 客服| 克山县| 商丘市| 会同县| 大田县| 枞阳县|