第一範式
- 第一範式(1NF)要求數據庫表的每一列都是不可分割的基本數據項,同一列中不能有多個值。
- 若某一列有多個值,可以將該列單獨拆分成一個實體,新實體和原實體間是一對多的關係。
- 在任何一個關係數據庫中,第一範式(1NF)是對關係模式的基本要求,不滿足第一範式(1NF)的數據庫就不是關係數據庫。
第二範式
- 滿足第二範式(2NF)必須先滿足第一範式(1NF)。
- 第二範式要求實體中沒一行的所有非主屬性都必須完全依賴於主鍵;即:非主屬性必須完全依賴於主鍵。
- 完全依賴:主鍵可能由多個屬性構成,完全依賴要求不允許存在非主屬性依賴於主鍵中的某一部分屬性。
- 若存在哪個非主屬性依賴於主鍵中的一部分屬性,那麼要將發生部分依賴的這一組屬性單獨新建一個實體,並且在舊實體中用外鍵與新實體關聯,並且新實體與舊實體間是一對多的關係。
第三範式
- 滿足第三範式必須先滿足第二範式。
- 第三範式要求:實體中的屬性不能是其他實體中的非主屬性。因爲這樣會出現冗餘。即:屬性不依賴於其他非主屬性。
- 如果一個實體中出現其他實體的非主屬性,可以將這兩個實體用外鍵關聯,而不是將另一張表的非主屬性直接寫在當前表中
- 簡單的說,第三範式要滿足以下的條件:首先要滿足第二範式,其次非主屬性之間不存在函數依賴。由於滿足了第二範式,表示每個非主屬性都函數依賴於主鍵。如果非主屬性之間存在了函數依賴,就會存在傳遞依賴,這樣就不滿足第三範式。
參考:http://blog.csdn.net/u010425776/article/details/60968300
http://blog.csdn.net/wangyulong22/article/details/34814089