想要玩轉數據庫必須掌握的鐵律!!--數據庫的三大範式!

前言

一:三大範式

1.1:範式概述

數據庫有三大範式。

範式的簡介

範式的英文名稱是Normal Form,它是英國人E.F.Codd(關係數據庫的老祖宗)在上個世紀70年代提出關係數據庫模型後總結出來的。範式是關係數據庫理論的基礎,也是我們在設計數據庫結構過程中所要遵循的規則和指導方法。目前有跡可尋的共有8種範式,依次是:1NF,2NF,3NF,BCNF,4NF,5NF,DKNF,6NF。通常所用到的只是前三個範式,即:第一範式(1NF),第二範式(2NF),第三範式(3NF)。

數據往往種類繁多,而且每種數據之間又互相關聯,因此,在設計數據庫時,所需要滿足的範式越多,那表的層次及結構也就越複雜,最終造成數據的處理困難。這樣,還不如不滿足這些範式呢。所以在使用範式的時候也要細細斟酌,是否一定要使用該範式,必須根據實際情況做出選擇。一般情況下,我們使用前三個範式已經夠用了,不再使用更多範式,就能完成對數據的優化,達到最優效果。

1.2:第一範式

通俗的理解

第一範式就是屬性不可分割,每個字段都應該是不可再拆分的。比如一個字段是姓名(NAME),在國內的話通常理解都是姓名是一個不可再拆分的單位,這時候就符合第一範式;但是在國外的話還要分爲FIRST NAME和LAST NAME,這時候姓名這個字段就是還可以拆分爲更小的單位的字段,就不符合第一範式了。

1.3:第二範式

第二範式就是要求表中要有主鍵,表中其他其他字段都依賴於主鍵,因此第二範式只要記住主鍵約束就好了。比如說有一個表是學生表,學生表中有一個值唯一的字段學號,那麼學生表中的其他所有字段都可以根據這個學號字段去獲取,依賴主鍵的意思也就是相關的意思,因爲學號的值是唯一的,因此就不會造成存儲的信息對不上的問題,即學生001的姓名不會存到學生002那裏去。

1.4:第三範式

第三範式就是要求表中不能有其他表中存在的、存儲相同信息的字段,通常實現是在通過外鍵去建立關聯,因此第三範式只要記住外鍵約束就好了。比如說有一個表是學生表,學生表中有學號,姓名等字段,那如果要把他的系編號,系主任,系主任也存到這個學生表中,那就會造成數據大量的冗餘,一是這些信息在系信息表中已存在,二是系中有1000個學生的話這些信息就要存1000遍。因此第三範式的做法是在學生表中增加一個系編號的字段(外鍵),與系信息表做關聯。

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