在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.
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP