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

2021-10-10 14:22:35 字數 816 閱讀 9809

資料庫三大正規化:

正規化的簡介

正規化的英文名稱是normal form,它是英國人e.f.codd(關聯式資料庫的老祖宗)在上個世紀70年代提出關聯式資料庫模型後總結出來的。正規化是關聯式資料庫理論的基礎,也是我們在設計資料庫結構過程中所要遵循的規則和指導方法。目前有跡可尋的共有8種正規化,依次是:1nf,2nf,3nf,bcnf,4nf,5nf,dknf,6nf。通常所用到的只是前三個正規化,即:第一正規化(1nf),第二正規化(2nf),第三正規化(3nf)。

通俗的理解

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

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

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

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

資料庫三大正規化通俗理解 1 原子性,要求屬性具有原子性,不可再分解。表 欄位1 欄位2 欄位2.1 欄位2.2 欄位3 如學生 學號,姓名,性別,出生年月日 如果認為最後一列還可以再分成 出生年,出生月,出生日 它就不是一正規化了,否則就是 2 唯一性,乙個表只能說明乙個事物,即實體的惟一性。表 ...

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

資料庫三大正規化通俗理解 1 原子性,要求屬性具有原子性,不可再分解。表 欄位1 欄位2 欄位2.1 欄位2.2 欄位3 如學生 學號,姓名,性別,出生年月日 如果認為最後一列還可以再分成 出生年,出生月,出生日 它就不是一正規化了,否則就是 2 唯一性,乙個表只能說明乙個事物,即實體的惟一性。表 ...

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

標準資料庫三大正規化描述 1 第一正規化 1nf 如果關係模式 r 它的每個屬性分量都是乙個不可分割的資料項,則稱 r 符合第一規範,記 r 1nf 2 第二正規化 2nf 若 r 1nf 且每個非主屬性完全依賴於碼,則稱 r 2nf 常見的違反 把兩個或多個實體集放在乙個關係模式中 引起的問題 存...