資料庫設計 三正規化

2021-06-12 13:50:05 字數 1677 閱讀 2906

建立冗餘小,結構合理的資料庫,設計資料庫時必須准許你一定的規則,在關聯式資料庫中的這種規則就成為正規化.是要符合某一種設計要求的總結

要想設計乙個合理的關係資料型資料庫庫,就必須滿足一定的正規化

也是最基本的正規化. 如果資料庫表中的所有字段值是都不可分解的原子值.

例如 ,使用者資訊表中.

但是這個並不是乙個規範化的關係.因為**可以進一步分解.包含兩個子屬性.長途好和家庭**.

使表達到第一規範化要求很簡單, 只需要把子屬性提公升為一般屬性就滿足了第一規範式要求.

它是在滿足第一正規化的基礎上建立起來的. 第二正規化必須先滿足第二正規化.

要求資料庫表中的每個例項或行必須可以被唯一區分,完全依賴主關鍵字, 也就是和主鍵相關. 而不能與主鍵的某

一部分相關. 不可以把多種資料儲存在同一張資料庫表中.

比如要設計乙個訂單資訊表,因為訂單可能會有多種商品.所以要將訂單編號和商品編號作為乙個資料庫表的聯合主鍵

如下表.

訂單資訊表

就這意味著這個屬性決定其他屬性.比如(訂單編號, 商品編號) 確定 ****.

其次,這個關係中還存在其他依賴, 如(商品編號 確定 單位,  **, 上平名稱等) 這裡就違反了第二規範式設計原則.

乙個關係,如果沒有滿足第二正規化,只滿足第一正規化, 那麼就會帶來資料的冗餘和操作異常.包括,插入異常, 刪除和修改異常. 操作異常又經常稱為更新異常或儲存異常. 

這裡可以看到 張三在表中出現了兩次.這裡就存在著大量的冗餘的資料.

一般可以通過分分解的方法,消除部分依賴.

把商品資訊分離到另乙個表中,把定單專案也分離到另外乙個表中,如下圖

第三正規化必須先滿足第二正規化. 要求乙個資料庫表中不包含已經在其他表中已包含的非主關鍵字.

下面看乙個不滿足的表

一張employee 雇員表

可以觀察到 ,以上表中出現了問題

人力部出現了兩次, 而銷售部更賤過分,出現了四次,這是不能容忍的.怎麼減呢》

另外增加乙個department部門表. 如下

department(deptid, deptname)

雇員表中

employee(empid, ename, deptid)

這樣就好多了。

資料庫正規化 三正規化設計

資料庫第一正規化 原子性 表中每一列都不可以再分割成更小的列 資料庫第二正規化 不產生區域性依賴 每張表只描述一件事情 資料庫第三正規化 表中每列都直接依賴於主鍵,而不是通過其它列間接依賴於主鍵 什麼是資料庫正規化 學習第一正規化的應用 什麼是正規化 一種規則,指導程式設計師建立表的規則 程式設計師...

資料庫設計三大正規化資料庫設計三大正規化

為了建立冗餘較小 結構合理的資料庫,設計資料庫時必須遵循一定的規則。在關係型資料庫中這種規則就稱為正規化。正規化是符合某一種設計要求的總結。要想設計乙個結構合理的關係型資料庫,必須滿足一定的正規化。在實際開發中最為常見的設計正規化有三個 1 第一正規化 確保每列保持原子性 第一正規化是最基本的正規化...

資料庫設計三正規化

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