哪個正規化是滿足函式依賴關係(DBMS)的最高正規化?


讓我們考慮依賴關係 F= {AB->CDEF, AF->ED, F->B},以下哪一項是表 R=ABCDEF 可以滿足的最高正規化。

從以下選項中選擇一個 -

  • 不滿足任何正規化。
  • Boyce-Codd 正規化
  • 第一正規化
  • 第二正規化
  • 第三正規化

給定 F 的函式依賴關係如下 -

AB ---> CDEF

AF ---> ED

F ---> B

現在在 F 的函式依賴關係的 RHS(右側),屬性 B、C、D、E、F 都存在,但屬性 A 缺失。因此,屬性 A 必須是超鍵的一部分。

我們需要找到 A 的閉包 (A+),

A+ = 僅 A,因此單獨的屬性 A 不能成為鍵。因此,我們需要將 A 與 F 的其他屬性組合,然後找到 F 的候選鍵。

查詢 F 的候選鍵

AB+ = ABCDEF

AC+ = AC

AD+ = AD

AE+ = AE

AF+ = AFBCDE

現在由於 (AC、AD、AE) 的閉包沒有覆蓋 F 的所有屬性。因此,我們還需要組合 AC、AD、AE 來檢查它們的組合是否成為 F 的候選鍵。

所以 ACD+ = ACD

ACE+ = ACE

ADE+ = ADE

ACDE+ = ACDE

因此,最終,我們確認 AB 和 AF 是 F 的唯一候選鍵,因為它們的閉包覆蓋了 F 的所有屬性。

因此,F 的主屬性是 A、B、F,F 的非主屬性是 C、D、E。

檢查最高正規化 (NF)

我們將從最高的正規化開始,其中 BCNF 是最高的正規化,如果 F 處於 BCNF 正規化,那麼它也將處於 1NF、2NF 和 3NF。

檢查 BCNF

F 的所有函式依賴關係 X ---> Y,其中所有 X 必須是超鍵。

在 F 的所有函式依賴關係中,只有 AF 和 AB 是超鍵,但 F 不是超鍵。

(AB ---> CDE, AF ---> ED, F ---> B)

因此,F 不在 BCNF 中,因為 (X ---> Y) 的所有 X 都不是超鍵。

檢查 3NF

對於 F 處於 3NF,不應該出現非主屬性的傳遞函式依賴,或者說 F 中的任何非主屬性都不應該匯出到其他非主屬性。

並且在 F (X --> Y) 中,函式依賴關係的所有 X 都是主屬性,因為 AF、AB 是超鍵,並且 F 是主屬性。因此,沒有傳遞依賴關係的出現,因此它在 3NF 中。

並且 F 也在 2NF 中,因為沒有部分依賴關係,即候選鍵的任何部分都不會匯出到任何非主屬性。

如果 F 在 3NF 中,那麼它也在 2NF 和 1NF 中。因為 3NF 是其中最高的正規化。

結論

表 R(A,B,C,D,E) 滿足 3NF。

更新於: 2021年7月6日

1K+ 閱讀量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告