資料庫三大正規化介紹

2020-10-25 15:01:02
  • (1)三大正規化是什麼?
    資料庫設計表時,有三種規則或者原則,叫做三大正規化
  • (2)第一規格化是什麼?
    確保每一列的原子性(做到每列不可拆分)-- 拆列
    在這裡插入圖片描述
  • (3)第二正規化是什麼?
    在第一規格化的基礎上,每列都和主鍵(直接或間接)相關 --拆表
    產品數量、產品折扣、產品價格與「訂單號」和「產品號」都相關,但是訂單金額和訂單時間僅與「訂單號」相關,與「產品號」無關

在這裡插入圖片描述

  • (4)第三正規化是什麼?
    第三正規化(3NF):在第二正規化的基礎上,每列都和主鍵直接相關(資料比較少冗餘的) – 使用外來鍵
    所有屬性都完全依賴於學號,所以滿足第二正規化,但是「班主任性別」和「班主任年齡」直接依賴的是「班主任姓名」,而不是主鍵「學號

在這裡插入圖片描述

反三正規化介紹

  • (1)反三正規化是什麼?
    反三正規化是基於第三正規化所調整的,沒有冗餘的資料庫未必是最好的資料庫,有時為了提高執行效率,就必須降低正規化標準,適當保留冗餘資料。
  • (2)目的是什麼?
    》》1:為了更好地方便地滿足業務需求
    》》2:為了獲取更高的資料庫查詢效能
    規範度 VS 效率
    我們在設計資料庫的時候,既要考慮資料庫的規範度,同時也要考慮資料庫的執行效率