在DBMS中查詢FD {A->BC, B->AC, C->AB}的規範覆蓋


規範覆蓋稱為最小覆蓋,也稱為FD的最小集合。如果FC中的每個FD都是簡單FD、左歸約FD和非冗餘FD,則FD集合FC稱為F的規範覆蓋。

簡單FD - 如果Y是單個屬性,則X->Y是簡單FD。

左歸約FD:如果X中不存在額外屬性,則X->Y是左歸約FD。{額外屬性:如果XA->Y,則如果X->Y,則A是額外屬性}。

非冗餘FD - 如果無法從F - {X->y}推匯出X->Y,則X->Y是非冗餘FD。

問題

查詢FD {A->BC, B->AC, C->AB}的規範覆蓋。

解決方案

關係模式R(A,B,C) F: {A->BC, B->AC, C->AB}

步驟1 - 建立一個單一右端

依賴項A->BC將分解為A->B,A->C。

F: { A->B
    A->C
    B->A
    B->C
    C->A
    C->B}

步驟2 - 刪除任何存在的額外屬性。

F:{ A->B
   A->C
   B->A
   B->C
   C->A
   C->B}  NO extraneous attributes exists

步驟3 - 刪除冗餘FD

F: { A->B
    A->C
    B->A
    B->C
    C->A
    C->B }

刪除B->A依賴項,我們可以透過B->C和C->A從B獲得A。

F= {A->B
   A->C
   B->C
   C->A
   C->B}

透過刪除C->B依賴項,我們透過C->A,A->B從C獲得B。

F={A->B
   B->C
   C->A
   A->C}

透過刪除A->C依賴項,我們可以透過A->B,B->C從A確定C

步驟4 - 最終的規範覆蓋如下所示:

FC ={ A->B, B->C, C->A }
[A]+ =BC
[B]+=AC
[C]+=AB.

更新於:2021年7月3日

9K+瀏覽量

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.