1NF:屬性單一,不可再分(僅一個值僅一種值)
很顯然,在當前的任何RDBMS中,傻瓜也不可能做出不符合第一范式的數據庫,因為RDBMS不允許你把數據庫表的一列再分成二列或多列。實際上,還真有這樣的垃圾設計,我在某個項目中遇到,將 first_name,middle_name,last_name放在一個字段的,最后想分都分不開,完全折服。
2NF:消除了部分依賴(部分依賴由復合主鍵導致,顯然所有單主鍵的表都符合2NF)
<反例> 一個表
(學號, 課程名稱)→(姓名, 年齡, 成績, 學分)
<部分依賴>
(課程名稱)→(學分)
(學號)→(姓名, 年齡)
<改正> 改為三個表
(學號)→(姓名, 年齡)
(課程名稱)→(學分)
(學號,課程名稱)→(成績)
3NF:消除了傳遞依賴
<反例>
(學號)→(姓名, 年齡, 學院, 學院地點, 學院電話)
<傳遞依賴>
(學號)→(學院)→(學院地點, 學院電話)
<改正> 改為兩個表
(學號)→(姓名,年齡,學院)
(學院)→(地點,電話)
posted on 2008-04-16 14:16
Jcat 閱讀(418)
評論(0) 編輯 收藏 所屬分類:
Database