4、資料庫設計三正規化
4.1、資料庫設計正規化
4.2、資料庫設計正規化
3個第一正規化:要求任何一張表必須有主鍵,每乙個字段原子性不可再分
第二正規化:建立在第一正規化的基礎之上,要求所有非主鍵字段完全依賴主鍵,不要產生部分依賴。
第三正規化:建立在第二正規化的基礎上,要求所有非主鍵字段直接依賴主鍵,不要產生傳遞依賴
宣告:三正規化是面試官常問
設計資料庫表的時候,按照以上的正規化進行,可以避免表中資料的冗餘,空間的浪費
4.3、第一正規化
最核心,最重要的正規化,所有表的設計都需要滿足
必須有主鍵,每乙個字段原子性不可再分
4.4、第二正規化
建立在第一正規化的基礎之上
要求所有非主鍵字段完全依賴主鍵,不要產生部分依賴。
不滿足第一正規化
學生編號 教師編號,兩個字段聯合做主鍵,復合主鍵(pk:學生編號+教師編號)
經過修改後滿足第一正規化,不滿足第二正規化,張三依賴1001,王老師依賴001,是部分依賴
產生部分依賴的缺點:資料冗餘,空間浪費
為了讓以上表滿足第二正規化,需要這樣設計:
使用三張表表示多對多關係!!
學生表學生編號(pk) 學生名字
1001 張三
1002 李四
1003 王五
教師表
教師編號(pk) 教師姓名
001 王老師
002 趙老師
學生教師關係表
id(pk) 學生編號(fk) 教師編號(fk)
1 1001 001
2 1002 002
3 1003 001
4 1001 002
背口訣:多對多,三張表,關係表兩個外來鍵(重要)
4.5、第三正規化
建立在第二正規化的基礎上
要求所有非主鍵字段直接依賴主鍵,不要產生傳遞依賴
一對多關係乙個教室多個學生
滿足第一正規化:有主鍵
滿足第二正規化:因為主鍵不是復合主鍵,沒有產生部分依賴。主鍵是單一主鍵
一年一班依賴01 01依賴1001 產生了傳遞依賴
不符合第三正規化要求:產生資料冗餘
背口訣:一對多,兩張表,多的表加外來鍵!!!
資料庫正規化 三正規化設計
資料庫第一正規化 原子性 表中每一列都不可以再分割成更小的列 資料庫第二正規化 不產生區域性依賴 每張表只描述一件事情 資料庫第三正規化 表中每列都直接依賴於主鍵,而不是通過其它列間接依賴於主鍵 什麼是資料庫正規化 學習第一正規化的應用 什麼是正規化 一種規則,指導程式設計師建立表的規則 程式設計師...
資料庫三大正規化 重要
資料庫正規化1nf 2nf 3nf bcnf 例項 設計正規化 正規化,資料庫設計正規化,資料庫的設計正規化 是符合某一種級別的關係模式的集合。構造資料庫必須遵循一定的規則。在關聯式資料庫中,這種規則就是正規化。關聯式資料庫中的關係必須滿足一定的要求,即滿足不同的正規化。目前關聯式資料庫有六種正規化...
資料庫設計三大正規化資料庫設計三大正規化
為了建立冗餘較小 結構合理的資料庫,設計資料庫時必須遵循一定的規則。在關係型資料庫中這種規則就稱為正規化。正規化是符合某一種設計要求的總結。要想設計乙個結構合理的關係型資料庫,必須滿足一定的正規化。在實際開發中最為常見的設計正規化有三個 1 第一正規化 確保每列保持原子性 第一正規化是最基本的正規化...