模式分解是否為無損連接的判斷方法


方法一:無損連接定理

關系模式R(U,F)的一個分解,ρ={R1<U1,F1>,R2<U2,F2>}具有無損連接的充分必要條件是:

U1∩U2→U1-U€F或U1∩U2→U2 -U1€F+

方法二:算法

ρ={R1<U1,F1>,R2<U2,F2>,...,Rk<Uk,Fk>}是關系模式R<U,F>的一個分解,U={A1,A2,...,An},F={FD1,FD2,...,FDp},並設F是一個最小依賴集,記FDi為Xi→Alj,其步驟如下:

① 建立一張n列k行的表,每一列對應一個屬性,每一行對應分解中的一個關系模式。若屬性Aj Ui,則在j列i行上真上aj,否則填上bij

② 對於每一個FDi做如下操作:找到Xi所對應的列中具有相同符號的那些行。考察這些行中li列的元素,若其中有aj,則全部改為aj,否則全部改為bmli,m是這些行的行號最小值。

如果在某次更改后,有一行成為:a1,a2,...,an,則算法終止。且分解ρ具有無損連接性,否則不具有無損連接性。

對F中p個FD逐一進行一次這樣的處理,稱為對F的一次掃描。

③ 比較掃描前后,表有無變化,如有變化,則返回第② 步,否則算法終止。如果發生循環,那么前次掃描至少應使該表減少一個符號,表中符號有限,因此,循環必然終止。

舉例1:已知R<U,F>,U={A,B,C},F={A→B},如下的兩個分解:

① ρ1={AB,BC}

② ρ2={AB,AC}

判斷這兩個分解是否具有無損連接性。

①因為AB∩BC=B,AB-BC=A,BC-AB=C

所以B→A ¢F+,B→C ¢ F+

故ρ1是有損連接。

② 因為AB∩AC=A,AB-AC=B,AC-AB=C

所以A→B €F+,A→C ¢F+

故ρ2是無損連接。

舉例2:已知R<U,F>,U={A,B,C,D,E},F={A→C,B→C,C→D,DE→C,CE→A},R的一個分解為R1(AD),R2(AB),R3(BE),R4(CDE),R5(AE),判斷這個分解是否具有無損連接性。

 ① 構造一個初始的二維表,若“屬性”屬於“模式”中的屬性,則填aj,否則填bij

② 根據A→C,對上表進行處理,由於屬性列A上第1、2、5行相同均為a1,所以將屬性列C上的b13、b23、b53改為同一個符號b13(取行號最小值)。

③ 根據B→C,對上表進行處理,由於屬性列B上第2、3行相同均為a2,所以將屬性列C上的b13、b33改為同一個符號b13(取行號最小值)。

④ 根據C→D,對上表進行處理,由於屬性列C上第1、2、3、5行相同均為b13,所以將屬性列D上的值均改為同一個符號a4

⑤ 根據DE→C,對上表進行處理,由於屬性列DE上第3、4、5行相同均為a4a5,所以將屬性列C上的值均改為同一個符號a3

⑥ 根據CE→A,對上表進行處理,由於屬性列CE上第3、4、5行相同均為a3a5,所以將屬性列A上的值均改為同一個符號a1

⑦ 通過上述的修改,使第三行成為a1a2a3a4a5,則算法終止。且分解具有無損連接性。

聲名:該博文的部分內容轉載自百度文庫http://wenku.baidu.com/linkurl=KtuuXFU3TLD13PKSFSDoLgOdCFi9j7R0CBjpfTIY1zYxikvftzQwvLiyLg8WNX58g6t6i0YnUMgL7FFWo4RzoIl23UylHvcMsngwI0rVTgK


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM