定義:每乙個欄位是原子性不能再分。
舉例: 下圖就不符合第一正規化,因為contact列中不是原子性可以再分為phone和qq
經過修改後下圖就滿足第一正規化。
定義:第二正規化事建立在第一正規化的基礎之上,要求資料庫中所有非主鍵字段完全依賴主鍵,不能產生部份依賴。
也就是說不要使用聯合主鍵
舉例:如下圖的表使用了聯合主鍵(學生編號和老師編號)
綜合分析:1.以上雖然確定了主鍵,但此表會出現大量冗餘
2.出現冗餘的原因在於:學生姓名依賴於學生編號,而沒有依賴老師編號,老師姓名依賴於老師編號,而沒有依賴於 學生編號
解決方案:將學生表和老師表分開,分別是學生表、老師表、學生老師關聯表
定義:建立在第二正規化的基礎之上,要求非主鍵字段不能產生傳遞依賴於主鍵字段
舉例:學生資訊表
綜合分析:1、從上圖表看出,班級名稱字段存在冗餘,因為班級名稱字段沒有直接依賴於主鍵
2、班級名稱字段依賴於班級編號,班級編號依賴於學生編號,這就產生了依賴傳遞!
解決方案:可知學生和班級的關係為一對多,所以分別建學生表、班級表,學生表外來鍵與班級表關聯即可。
一對多,在多的一方新增外來鍵。
資料庫正規化 三正規化設計
資料庫第一正規化 原子性 表中每一列都不可以再分割成更小的列 資料庫第二正規化 不產生區域性依賴 每張表只描述一件事情 資料庫第三正規化 表中每列都直接依賴於主鍵,而不是通過其它列間接依賴於主鍵 什麼是資料庫正規化 學習第一正規化的應用 什麼是正規化 一種規則,指導程式設計師建立表的規則 程式設計師...
mysql三正規化 MySQL資料庫三正規化
設計關係型資料庫時,遵從不同的規範要求,設計出合理的關係型資料庫,這些不同的規範要求被稱為不同的正規化,各種正規化呈遞次規範,越高的正規化資料庫冗餘越小。目前關係型資料庫有六種正規化 第一正規化 1nf 第二正規化 2nf 第三正規化 3nf 巴斯 科德正規化 bcnf 第四正規化 4nf 和第五正...
資料庫設計三大正規化資料庫設計三大正規化
為了建立冗餘較小 結構合理的資料庫,設計資料庫時必須遵循一定的規則。在關係型資料庫中這種規則就稱為正規化。正規化是符合某一種設計要求的總結。要想設計乙個結構合理的關係型資料庫,必須滿足一定的正規化。在實際開發中最為常見的設計正規化有三個 1 第一正規化 確保每列保持原子性 第一正規化是最基本的正規化...