1. 程式人生 > >數據庫設計-邏輯設計-範式

數據庫設計-邏輯設計-範式

出現 若有 什麽 沒有 enter -a 學習 插入 和數

數據庫設計

數據庫設計範式

  • 為什麽要使用範式?
    • 數據庫設計範式可以很好的為我們規避數據操作異常和數據冗余,可以更合理的設計數據庫表,處理表與表之間的關系。
      • 數據操作異常
        1. 插入異常:本該被插入的數據沒有被插入。
          • 一個實體依賴於另一個實體,插入該實體時,若依賴的實體沒有插入,則會產生插入異常。
        2. 更新異常:簡單事實卻要更新多次。
          • 更新實體的單獨屬性時,產生多行更新。
          刪除異常:刪除不該刪除的數據。
          • 刪除一個實體實例時,導致另一個實體實例信息的丟失。
      • 數據冗余
        • 相同數據多個地方存在或者表中某列可以由其他列計算得到。

  • 第一範式:實體的屬性都是單一屬性,不可再分。(原子性約束)
    • 數據庫表的每一列都是不可分隔的原子數據項。

  • 第二範式:實體的非主屬性完全依賴於主關鍵字(單一屬性或者屬性組),不能僅依賴於主關鍵字的部分屬性。(唯一性約束)
    • 數據庫表中的每一行必須可以被唯一地區分。
    • 消除非主屬性對主碼的部分函數依賴。

  • 第三範式:實體的非主屬性不依賴於其他的非主屬性,即不傳遞依賴於主屬性。(冗余性約束)
    • 數據庫表中字段不能冗余出現,任何字段不能由其他字段派生出來。
    • 消除非主屬性對主碼的傳遞依賴。

  • BC範式:實體的非主屬性不依賴於主鍵子集。(進一步降低冗余性)
    • 對第三範式的修正,使數據庫冗余性更小。
    • 消除非主屬性對主碼子集的依賴。

以上僅為本人學習過程中的知識總結,若有錯誤,還請諸位不吝賜教。

數據庫設計-邏輯設計-範式