資料庫三大正規化定義與理解

2021-09-25 09:48:00 字數 2223 閱讀 8246

要求:要求:每乙個分量必須是不可分的資料項。

特點:1)有主鍵,且主鍵不能為空。

2)字段不能再分。

示例:(以下例子不滿足第一正規化)

學號年齡

資訊101

19101

20湖北

主鍵:學號

不滿足原因:1)主鍵重複。2)資訊字段可以再分

要求:在正規化一的基礎上,且每乙個非主屬性完全函式依賴於主鍵。

特點:1)滿足第一正規化。

2)表中的每乙個非主屬性,必須完全依賴於本表主鍵。

3)只有當乙個表中,主鍵由兩個或以上的屬性組成的時候,才會出現不符合第二正規化的情況。

示例:(以下例子不符合第二正規化)

學號課程號

得分課程名

101003

95資料庫

主鍵:學號,課程號

不滿足原因:課程名不完全依賴於所定義的所有主鍵,課程名部分依賴於主鍵課程號

要求:在第二正規化的基礎上,且消除傳遞依賴性

1)滿足第二正規化

2)所有的非主鍵列依賴於主鍵列

注:3nf是對字段冗餘性的約束,即任何字段不能由其他字段派生出來,它要求字段沒有冗餘,但是沒有資料冗餘的資料庫並不一定是最好的資料庫,所以有沒有冗餘的設計,要綜合來考慮

學生課程

老師老師職稱

教室上課時間

小明語文

王五講師

1108:30

主鍵:學生、課程

上面的「學生上課表」符合2nf,可以這樣驗證:兩個主屬性單獨使用,不用確定其它四個非主屬性的任何乙個。但是它有傳遞依賴!在「老師」和「老師職稱」這裡,乙個老師一定能確定乙個老師職稱。

如果不消除這種傳遞依賴,有可能會出現:

1、老師職稱變了,變教授了,要改資料庫,表中有n條,改了n次……(修改異常)

2、沒人選這個老師的課了,老師的職稱也沒了記錄……(刪除異常)

3、新來乙個老師,還沒分配教什麼課,他的職稱記到哪?……(插入異常)

所以為了解決這些問題應把錶拆分成:

學生課程老師

教室上課時間

小明語文

王五110

8:30

老師老師職稱

大寶講師

要求:要求:每乙個分量必須是不可分的資料項。

特點:1)有主鍵,且主鍵不能為空。

2)字段不能再分。

示例:(以下例子不滿足第一正規化)

學號年齡

資訊101

19101

20湖北

主鍵:學號

不滿足原因:1)主鍵重複。2)資訊字段可以再分

要求:在正規化一的基礎上,且每乙個非主屬性完全函式依賴於主鍵。

特點:1)滿足第一正規化。

2)表中的每乙個非主屬性,必須完全依賴於本表主鍵。

3)只有當乙個表中,主鍵由兩個或以上的屬性組成的時候,才會出現不符合第二正規化的情況。

示例:(以下例子不符合第二正規化)

學號課程號

得分課程名

101003

95資料庫

主鍵:學號,課程號

不滿足原因:課程名不完全依賴於所定義的所有主鍵,課程名部分依賴於主鍵課程號

要求:在第二正規化的基礎上,且消除傳遞依賴性

1)滿足第二正規化

2)所有的非主鍵列依賴於主鍵列

注:3nf是對字段冗餘性的約束,即任何字段不能由其他字段派生出來,它要求字段沒有冗餘,但是沒有資料冗餘的資料庫並不一定是最好的資料庫,所以有沒有冗餘的設計,要綜合來考慮

學生課程

老師老師職稱

教室上課時間

小明語文

王五講師

1108:30

主鍵:學生、課程

上面的「學生上課表」符合2nf,可以這樣驗證:兩個主屬性單獨使用,不用確定其它四個非主屬性的任何乙個。但是它有傳遞依賴!在「老師」和「老師職稱」這裡,乙個老師一定能確定乙個老師職稱。

如果不消除這種傳遞依賴,有可能會出現:

1、老師職稱變了,變教授了,要改資料庫,表中有n條,改了n次……(修改異常)

2、沒人選這個老師的課了,老師的職稱也沒了記錄……(刪除異常)

3、新來乙個老師,還沒分配教什麼課,他的職稱記到哪?……(插入異常)

所以為了解決這些問題應把錶拆分成:

學生課程老師

教室上課時間

小明語文

王五110

8:30

老師老師職稱

大寶講師

資料庫三大正規化定義與理解

要求 要求 每乙個分量必須是不可分的資料項。特點 1 有主鍵,且主鍵不能為空。2 字段不能再分。示例 以下例子 不滿足第一正規化 學號年齡 資訊101 19101 20湖北 主鍵 學號 不滿足原因 1 主鍵重複。2 資訊字段可以再分 要求 在正規化一的基礎上,且每乙個非主屬性完全函式依賴於主鍵。特點...

資料庫三大正規化理解

1nf 字段不可分 2nf 有主鍵,非主鍵字段依賴主鍵 3nf 非主鍵字段不能相互依賴 不符合第一正規化的例子 關聯式資料庫中create不出這樣的表 表 欄位1,欄位2 欄位2.1,欄位2.2 欄位3 存在的問題 因為設計不出這樣的表,所以沒有問題 不符合第二正規化的例子 假定選課關係表為sele...

資料庫三大正規化簡單理解

資料庫設計當中三正規化是經常遇到的,如果實際專案資料庫設計中能達到第三正規化基本也就滿足要求了,那麼如何快速有效的理解三個正規化,同時應用於實際專案中去呢?首先看看標準定義的三個正規化 第一正規化 1nf 所謂第一正規化 1nf 是指資料庫表的每一列都是不可分割的基本資料項,同一列中不能有多個值,即...