SQL正規化的通俗理解(舉例)

2021-06-22 04:28:59 字數 1043 閱讀 5690

如乙個員工資訊表,不能將員工資訊都放在一列中顯示,也不能將其中的兩列或多列在一列中顯示;員工資訊表的每一行只表示乙個員工的資訊,乙個員工的資訊在表中只出現一次。簡而言之,第一正規化就是無重複的列。

第二正規化是資料庫規範化中所使用的一種正規形式。它的規則是要求資料表裡的所有資料都要和該資料表的主鍵有完全依賴關係;如果有哪些資料只和主鍵的一部份有關的話,它就不符合第二正規化。同時可以得出:如果乙個資料表的主鍵只有單一乙個字段的話,它就一定符合第二正規化。

貨物型別

貨物id

貨物名稱

注意事項瓷碗1

白色瓷碗

易碎品瓷碗

2青花瓷碗

易碎品瓷碗

3雕花瓷碗

易碎品三合板

1普通三合板

易燃物品,注意防火

在該表中有兩個主鍵,即(貨物型別,貨物id),貨物名稱字段完全依賴於這兩個主鍵,換句話說,貨物的名稱完全是取決於這兩個主鍵的值的。但」注意事項「這一列,只依賴乙個主鍵」貨物型別「。換句話說,注意事項這個欄位只依賴於主鍵的一部分(這就稱為對主鍵」部分依賴「)。

那麼,既然表中存在乙個對主鍵不是完全依賴的字段,那麼我們就可以確定,該錶不符合第二正規化。

貨物型別

貨物id

貨物名稱瓷碗1

白色瓷碗瓷碗2

青花瓷碗瓷碗3

雕花瓷碗

三合板1

普通三合板

在該表中的主鍵依然是(貨物型別、貨物id),非主鍵字段「貨物名稱」,完全依賴於這兩個主鍵,那麼我們就可以說,該表是符合資料庫第二正規化的。

例如,存在乙個部門資訊表,其中每個部門有部門編號(dept_id)、部門名稱、部門簡介等資訊。那麼在的員工資訊表中列出部門編號後就不能再將部門名稱、部門簡介等與部門有關的資訊再加入員工資訊表中。如果不存在部門資訊表,則根據第三正規化(3nf)也應該構建它,否則就會有大量的資料冗餘。簡而言之,第三正規化就是屬性不依賴於其它非主屬性。





MySQL三正規化的通俗理解

就是屬性不可分割,每個欄位都應該是不可再拆分的。比如乙個欄位是姓名 name 在國內的話通常理解都是姓名是乙個不可再拆分的單位,這時候就符合第一正規化 但是在國外的話還要分為first name和last name,這時候姓名這個字段就是還可以拆分為更小的單位的字段,就不符合第一正規化了。就是要求表...

SQL三正規化理解

sql三正規化的理解 做為一條有用的資料,那麼他必須是完整的,也就是資料的完整性,那怎麼才能做到資料的完整性呢?在設計資料庫時我們需要滿足三正規化的要求,那什麼是三正規化呢,三正規化分為三部分,第一步是資料的原子性,所謂原子就是不可分割的最小的單位,我們設計的表裡面的列必須是乙個能夠表達完整的資訊的...

資料庫三大正規化通俗理解

資料庫三大正規化 正規化的簡介 正規化的英文名稱是normal form,它是英國人e.f.codd 關聯式資料庫的老祖宗 在上個世紀70年代提出關聯式資料庫模型後總結出來的。正規化是關聯式資料庫理論的基礎,也是我們在設計資料庫結構過程中所要遵循的規則和指導方法。目前有跡可尋的共有8種正規化,依次是...