關係型資料庫中的正規化問題?

2021-07-11 02:12:46 字數 1786 閱讀 7078



第一正規化:關係中的每乙個屬性都是原子屬性。

學生通訊錄 學號

姓名 性別

**手機號

家庭號宿舍號

這裡的**屬性就不是原子屬性。

解決方法

1:在屬性上展開。

學生通訊錄 學號

姓名 性別

手機號家庭號

宿舍號解決方法

2:分解為

2個關係

學生表 學號

姓名 性別

通訊錄表 學號

手機 家庭

宿舍第二正規化:所有非主屬性完全函式依賴於主屬性。

教師授課

職工號 姓名

職稱 住址

課程號課程名 學

分 教學評價

主鍵(職工號,課程號)

存在的問題分析:

因為乙個老師可能是教幾門課,

職工號 姓名

職稱 住址

課程號課程名 學

分 教學評價

1145李麗

教師 北京

3英語視聽說 20

優秀 1145李麗

教師 北京

5英語讀寫譯 20

優秀 1100劉婷

教師 河北

3英語視聽說 20

優秀 1100劉婷

教師 河北

5英語讀寫譯 20

優秀 看到了吧,不同的課程,同一教師,存在冗餘了吧。

同一老師,不同的課程,也會產生冗餘。

當然還有其他的問題。問題的原因,因為只有

課程號,

課程名和學分都知道了,這就是部分依賴呀。所有要進行拆分。

拆分的原則:概念單一,資料完整。

教師表職工號 姓名

職稱 住址

課程表

課程號

課程名 學分

授課 職工號

課程號

教學評價

第三正規化:非主屬性之間都不傳遞函式依賴主屬性。 讀者

讀者號 姓名

型別號型別名

限借數量

限借時日

借出數量

問題分析:

讀者號rid包含了讀者型別

type

,而讀者型別

type

包含了型別號,型別名,限借數量,限借時日。 1

小王 a年卡

2015102小李

a年卡

2015123

小九 a年卡

2015164小明

a年卡

2015205

小張 a年卡

20155

可以看到,同一讀者型別(年卡)的不同讀者

對應的型別名稱,型別

id,限借數量,限借天數都是

重複的冗餘。

問題分析:主屬性(

rid)決定

讀者型別;

讀者型別決定

型別id

,型別名稱,限借數量,限借天數。

這裡就是一種傳遞的依賴關係。

讀者型別

中的所有屬性都

通過讀者型別

傳遞依賴於讀者

rid。

解決方法:概念單一,資料完整

的原則

將乙個關係拆開。

讀者表讀者號

讀者姓名

租借型別號

租借數量

主屬性(讀者號)

外來鍵屬性(租借型別號)

租借型別表

租借型別號

租借型別名

限租數量

限租天數

主屬性(租借型別號)

關係型資料庫正規化

設計關聯式資料庫時,遵從不同的規範要求,設計出合理的關係型資料庫,這些不同的規範要求被稱為不同的正規化,各種正規化呈遞次規範,越高的正規化資料庫冗餘越小。目前關聯式資料庫有六種正規化 第一正規化 1nf 第二正規化 2nf 第三正規化 3nf 巴斯 科德正規化 bcnf 第四正規化 4nf 和第五正...

關係型資料庫的正規化

關係型資料庫有六個正規化,越靠後的正規化對資料庫的 要求 越高。我改寫了描述,讓其更通俗易懂,但是不太嚴謹,以下文字中 列對應屬性 行對應實體 表對應關係。不再一一區分。對於我們使用的關係型資料庫,滿足第三正規化即可。第一正規化 1nf 無重複的列 即每一行中,不能有兩列的含義完全相同,也不能有某一...

關係型資料庫的正規化

設計關係型資料庫時,遵從不同的規範要求,設計出合理的關係型資料庫,這些不同的規範要求被稱為不同的正規化,各種正規化呈遞次規範,越高的正規化資料庫冗餘越小。目前關係型資料庫有六種正規化,第一正規化 1nf 第二正規化 2nf 第三正規化 3nf 巴斯 科德正規化 bcnf 第四正規化 4nf 第五正規...