第一范式(1NF):原子性 字段不可再分,否則就不是關系數據庫;
第二范式(2NF):唯一性 一個表只說明一個事物;
第三范式(3NF):每列都與主鍵有直接關系,不存在傳遞依賴;
PS:第二范式要遵循第一范式,第三范式要遵循第二范式。
簡單來說:
1NF:列表字段不可分;
2NF:有主鍵且非主鍵依賴主鍵;
3NF:非主鍵字段不能相互依賴;
不符合第一范式的例子(關系數據庫中create不出這樣的表):
表:姓名,性別,電話
問題:若某個人有兩個電話,家庭電話和手機,這樣則不符合第一范式。
解決:把電話列分成兩個列即可。
不符合第二范式的例子:
表:學號, 姓名, 年齡, 課程名稱, 成績, 學分;
這個表明顯說明了兩個事務:學生信息, 課程信息,不符合第二范式。
存在問題:數據冗余,每條記錄都含有相同信息。
解決:分成學生表和課程表分別存儲即可。
不符合第三范式的例子:
學號, 姓名, 年齡, 所在學院, 學院聯系電話,關鍵字為單一關鍵字"學號";
存在依賴傳遞: (學號) → (所在學院) → (學院地點, 學院電話)
存在問題:
數據冗余:有重復值;
解決:分成學生表,學院表即可。
---------------------
作者:逛了12遍
來源:CSDN
原文:https://blog.csdn.net/qq_37979377/article/details/64928149
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
