要求:要求:每乙個分量必須是不可分的資料項。
特點: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 是指資料庫表的每一列都是不可分割的基本資料項,同一列中不能有多個值,即...