數據庫關係理論之——碼+範式+模式分解

一、碼

KKR<U,F>R<U,F>中的屬性或者屬性組合
K是

  1. 超碼:KPUK\xrightarrow{P}U
  2. 候選碼:KFUK\xrightarrow{F}U,候選碼是最新小的超碼,任意一個候選碼的子集都不是候選碼,候選碼可以有多個。
  3. 主碼:候選碼其中之一
  4. 主屬性:候選碼的並集
  5. 非主屬性:UU-主屬性
  6. 全碼:UU是碼

主碼和候選碼簡稱碼

二、範式

  1. 1NF:實體中每個屬性都只有一個值並且屬性不重複
  2. 2NF:是1NF,並且每一個非主屬性完全依賴於任何一個候選碼
  3. 3NF:是2NF,並且每一個非主屬性不傳遞依賴於碼
  4. BCNF:是1NF,並且每一個決定因素都包含碼

三、數據依賴的公理系統

  1. 自反律(平凡函數依賴)
  2. 增廣律
  3. 傳遞律
  4. 推論:合併規則、僞傳遞規則、分解規則
  5. F+F^+:爲FF邏輯蘊含的函數依賴的全體
  6. XF+X^{+}_{F}:屬性集XX關於函數依賴集FF的閉包
    XYX\rightarrow Y的充分必要條件是YXF+Y\subseteq X^+_F
  7. 最小函數依賴:右側拆單,刪除冗餘的依賴,然後對左側非單的屬性集刪除冗餘的屬性。

冗餘:刪除這一依賴或者屬性後,該依賴或者刪除屬性所在的依賴的右側的屬性仍舊屬於左側屬性集關於刪完之後的依賴的閉包

四、模式分解

(1)、轉化爲3NF的保持函數依賴的分解

  1. R<U,F>R<U,F>中的F作極小化處理
  2. 所有不在FF中出現的屬性構成單個關係模式
  3. 按左側相同屬性集進行分組,每組全部屬性構成一個屬性集,去掉包含屬性集

(2)、轉化爲3NF的無損連接+保持函數依賴的分解

在(1)的基礎上

  1. 添加碼作爲新的關係模式
  2. 去掉包含屬性集

(3)、轉化爲BCNF的無損連接分解

若關係模式中Ri<Ui,Fi>R_i<U_i,F_i>不是BCNF,那麼一定有XAX\rightarrow AXX不是RiR_i的碼,則對RiR_i進行分解:U1=XA,U2=UiAU_1=XA,U_2=U_i-{A}
不斷執行上述操作直到所有的關係模式都是BCNF

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章