Join

分解和無損連接

  • May 24, 2016

如果有人問我以下問題,我將不勝感激。

考慮具有以下函式依賴關係的關係 R(A, B, C, D, E):

A, B → C
D, E → C
B → D

i) 分解 R 使其處於第二範式。

問題的第二部分:ii)假設 R 填充了以下數據:

| A  | B  | C  | D  | E  |
| a1 | b1 | c1 | d1 | e1 |
| a2 | b1 | c2 | d1 | e2 |
| a2 | b2 | c1 | d3 | e2 |

證明您的 2NF 分解對於連接是無損的。為此,在分解的表中生成一個連接表達式,並在上面的原始表中顯示其執行結果。

謝謝。

我想通了,並在講座中得到了證實,希望這對其他人有幫助:

一世)

鍵是 {A,B,E}。

這意味著 FD1 和 FD3 都是部分鍵 - 但請注意 FD2 不是,因為 {D,E} 不是部分鍵。分解為每個 FD 創建一個表,為 PK FD 創建一個表:

R1(A,B,E) R2(A,B,C) R3(B,D)

ii) 使用上述我們可以創建以下表格:

        `R1                R2              R3`
| A  | B  | E  |   | A  | B  | C  |    | B  | D  |
| a1 | b1 | e1 |   | a1 | b1 | c1 |    | b1 | d1 | 
| a2 | b1 | e2 |   | a2 | b1 | c2 |    | b2 | d3 | 
| a2 | b2 | e2 |   | a2 | b2 | c1 |    

加入 R1 和 R2 給出:

        R1R2                  R3
| A  | B  | E  | C  |    | B  | D  | 
| a1 | b1 | e1 | c1 |    | b1 | d1 | 
| a2 | b1 | e2 | c2 |    | b2 | d3 | 
| a2 | b2 | e2 | c1 | 

將 R1R2 與 R3 連接起來:

| A  | B  | E  | C  | D  | 
| a1 | b1 | e1 | c1 | d1 | 
| a2 | b1 | e2 | c2 | d1 | 
| a2 | b2 | e2 | c1 | d3 |

這等於:

| A  | B  | C  | D  | E  |
| a1 | b1 | c1 | d1 | e1 |
| a2 | b1 | c2 | d1 | e2 |
| a2 | b2 | c1 | d3 | e2 |

因此,分解對於連接是有損失的。

引用自:https://dba.stackexchange.com/questions/139361