【數據庫】 第一範式,第二範式,第三範式

第一範式,第二範式,第三範式


Level 1

定義

範式(Normal Form,NF),數據庫滿足的約束條件,並按照等級可以分爲第一範式(1NF),第二範式(2NF)和第三範式(NF)(約束程度遞增)。

範式化優勢:
  1. 範式化的更新操作通常比反範式化要快。
  2. 當數據較好地範式化時,就只有很少或者沒有重複數據,所以只需要修改更少的數據。
  3. 範式化的表通常更小,可以更好地存放在內存中,所以執行操作會更快。
  4. 很少有多餘的數據意味着檢索列表數據時更少需要DISTINCT或者GROUP BY語句。
反範式化優勢:
  1. 可以利用反範式避免表關聯,減小數據庫開銷。

Level 2

第一範式:

簡要來說,第一範式規定所有域都應該是原子性的。即,數據庫表中的每一列都是不可分割的;不應該是集合,數組等非原子數據項。

第二範式:

在滿足第一範式的基礎上,第二範式規定非碼屬性必須完全依賴於主碼。即,表中的字段必須完全依賴(而非部分依賴)與主碼。

第三範式:

在滿足第二範式的基礎上,第三範式規定,任何非主屬性不依賴於其它非主屬性。即,表中字段不能存在傳遞依賴1


Level 3

錯誤示例

綠色背底:該表主鍵。
黃色背底:表中的正常字段。
肉色背底:表中不符合範式的字段。

第一範式

如圖,張三擁有兩個電話號碼,卻記錄在了同一個字段中,違反了第一範式中字段不可分割的規則。
第一範式 錯誤示例

第二範式

如圖,主鍵(複合)爲姓名+課程,出勤率和分數由主鍵唯一確定(完全依賴);但性別字段卻只依賴於姓名,與課程並無依賴關係(部分依賴)。違反了第二範式中,字段不能部分依賴的規定。

第二範式 錯誤示例

第三範式

如圖,主鍵爲姓名;學校,性別,學院爲正常字段,依賴於主鍵;但學校所在地卻依賴於學校,由學校唯一確定(傳遞依賴)。違反了第三範式中,表中屬性不能依賴於非主屬性的規定。
在這裏插入圖片描述


  1. 百度百科 數據庫範式https://baike.baidu.com/item/%E6%95%B0%E6%8D%AE%E5%BA%93%E8%8C%83%E5%BC%8F/7309898 ↩︎

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章