1. 程式人生 > >簡述資料庫三大正規化

簡述資料庫三大正規化

第一正規化(1NF):原子性 欄位不可再分,否則就不是關係資料庫;

第二正規化(2NF):唯一性 一個表只說明一個事物;

第三正規化(3NF):每列都與主鍵有直接關係,不存在傳遞依賴;

PS:第二正規化要遵循第一正規化,第三正規化要遵循第二正規化。

 

簡單來說:

1NF:列表欄位不可分;

2NF:有主鍵且非主鍵依賴主鍵;

3NF:非主鍵欄位不能相互依賴;

 

 

不符合第一正規化的例子(關係資料庫中create不出這樣的表):

表:姓名,性別,電話

問題:若某個人有兩個電話,家庭電話和手機,這樣則不符合第一正規化。

解決:把電話列分成兩個列即可。

 

不符合第二正規化的例子:

表:學號, 姓名, 年齡, 課程名稱, 成績, 學分;

這個表明顯說明了兩個事務:學生資訊, 課程資訊,不符合第二正規化。

存在問題:資料冗餘,每條記錄都含有相同資訊。

解決:分成學生表和課程表分別儲存即可。

 

不符合第三正規化的例子:

學號, 姓名, 年齡, 所在學院, 學院聯絡電話,關鍵字為單一關鍵字"學號";

存在依賴傳遞: (學號) → (所在學院) → (學院地點, 學院電話)

存在問題:

資料冗餘:有重複值;

解決:分成學生表,學院表即可。
---------------------
作者:逛了12遍
來源:CSDN
原文:https://blog.csdn.net/qq_37979377/article/details/64928149
版權宣告:本文為博主原創文章,轉載請附上博文連結!