目錄
1. 第一正規化(1nf:每一列保持原子特徵)
2、第二正規化(2nf):
解決方案:只要不存在復合主鍵
3、第三正規化(3nf):
解決方案:實體單獨建表
正規化總結:1nf:確保每列保持原子性2nf:確保表中的每列都和主鍵相關3nf:確保每列都和主鍵列直接相關,而不是間接相關
列是基本資料項,不能在進行拆分,否則設計成一對多的關係,不滿足第一正規化,不能稱之為 關係型資料庫。
學生表(學號、姓名、性別、年齡,位址)
例:陝西省西安市西安郵電大學
例:陝西省西安市長安區子午大道西安郵電大學
拆分改造後:
學生表(學號、姓名、性別、年齡、位址id)
位址表(位址id、省、市、區)
屬性完全依賴於主鍵(針對聯合主鍵 → 消除部分依賴),
1nf基礎上,非主屬性完全依賴於主鍵,如果不是完全依賴主鍵,應該拆分成新的主體,拆分成一對多的關係
這裡的(學生,課程)是乙個碼
乙個課程,一定指定了某個教材,一年級語文肯定用的是《小學語文1》,那麼就有課程->教材
(學生,課程)->教材,(學生,課程)是個碼,課程可以決定教材,是部分依賴。
出現這樣的情況,就不滿足第二正規化。解決:將乙個表分解成兩個或若干個表。
2nf基礎上、屬性(某一列)不依賴於其他非主屬性(消除依賴傳遞);
將存在傳遞依賴的字段,以及依賴的字段本身單獨取出,形成乙個單獨的表,然後在需要對應的資訊的時候,將對應的實體表的主鍵加進來。
資料庫正規化的作用:
進行資料庫設計時欄位、庫表劃分的依據
資料庫正規化的優點:
減少資料冗餘(最主要的好處、其他好處因此而附帶)
消除異常(插入異常、更新異常、刪除異常)
讓資料組織的更加和諧
資料庫正規化的缺點:
應用正規化越高、表越多、表越多帶來的問題:
查詢時需要連線多個表,增加了查詢的複雜性
查詢時需要連線多個表,降低了資料庫查詢的效能
正規化不是越高越好,一般滿足3nf即可。
Mysql三正規化
第一正規化 屬性不可分 第二正規化 表中的非主屬性必須完全依賴於全部主鍵,而不是部分主鍵.第三正規化 表中的非主屬性必須完全依賴於全部主鍵,而不是依賴非主鍵屬性 1 第一正規化 元組的分量不可再分 2 第二正規化 所有分量唯一決定主鍵碼,不允許部分依賴 3 第三正規化 不允許傳遞依賴。1nf,第一正...
MySQL三正規化與反三正規化
目錄反三正規化 對於三正規化和反三正規化的選擇 參考cs notes 資料庫 資料庫系統原理.html 正規化 屬性不可再分 即表中的字段不能再拆分 例 乙個name屬性可以分為firstname屬性和lastname屬性,則不符合第一正規化。表中有鍵碼,非主屬性完全依賴鍵碼 即表中的非主屬性完全依...
mysql正規化學習 Mysql三大正規化
據庫設計正規化 什麼是正規化 簡言之就是,資料庫設計對資料的儲存效能,還有開發人員對資料的操作都有莫大的關係。所以建立科學的,規範的的資料庫是需要滿足一些 規範的來優化資料資料儲存方式。在關係型資料庫中這些規範就可以稱為正規化。什麼是三大正規化 第一正規化 當關係模式r的所有屬性都不能在分解為更基本...