1. 程式人生 > >關係型資料庫的設計理論(異常、函式依賴、正規化)

關係型資料庫的設計理論(異常、函式依賴、正規化)

文章目錄

異常

  • 資料冗餘大:某個屬性的值重複次數過多
  • 插入異常:沒有主鍵屬性的時候,其他屬性無法插入
  • 刪除異常:因刪除某個屬性所在的行而連帶徹底刪除了某些其他屬性
  • 更新異常:屬性的某個值發生改變時,因處理不當而沒有完成該值對應的所有元組的修改

函式依賴

  • 資料依賴: 同一個關係中,屬性間的相互依賴和相互制約。包括函式依賴、多值依賴、連線依賴。
  • 函式依賴: 指屬性或屬性之間一一對應的關係。關係R(U)是屬性集U上的關係模式,X,Y時U的子集。若對於R(U)上任意關係r的任意兩個元組,X相同則Y必相同(X可以決定Y),則稱X函式確定
    Y函式,或Y函式依賴於X函式,記作:X→Y。X叫做決定因素,Y叫做依賴因素
    • 平凡的函式依賴
      X→Y,其中,Y是X的子集。(必定成立)
    • 非平凡的函式依賴
      X→Y,且Y不是X的子集。不特別宣告,總是討論非平凡依賴。
    • 完全函式依賴部分函式依賴
      對於 X→Y,如果能找到 X 的真子集 X’,使得 X’→ Y,那麼 X->Y 就是部分函式依賴,否則就是完全函式依賴
    • 傳遞函式依賴
      如果X→Y,Y不是X的子集,Y→X不成立(為了排除直接X函式決定Z),Y→Z,則稱Z對X傳遞函式依賴

正規化

  • 概念
    • 第一正規化(1NF):
      資料表中的欄位都是單一屬性的,不可再分。這個單一屬性由基本型別構成,包括整型、實數、字元型、邏輯型、日期型等。(不滿足第一正規化的不是關係模式
    • 第二正規化(2NF): 在第一正規化的基礎上,資料表中所有非關鍵欄位完全依賴任意一組候選關鍵字
    • 第三正規化(3NF): 在第二正規化的基礎上,資料表中所有非關鍵欄位不傳遞依賴任意一組候選關鍵字。(一般企業都要求滿足
    • BCNF正規化:也叫作擴充的第三正規化,或修正的第三正規化。消除了插入和刪除異常。