7

因此,我正在查看我的數據庫筆記和材料,試圖爲即將到來的訪談提供一般概念和術語。然而,我依然依賴於依賴關係,並且無損地加入了分解。我搜遍了所有的東西,看到很多的mathy方程式,但我正在尋找一個簡單而簡單的英語回答或例子。保留依賴

我從http://www.cs.kent.edu/~jin/DM09Fall/lecture6.ppt找到了一個powerpoint,它說明了我無法完全理解的一個示例。它在下面發佈。

R = (A, B, C)F = {A → B, B → C) 
Can be decomposed in two different ways 
R1 = (A, B), R2 = (B, C) 
Lossless-join decomposition: 
     R1 ∩ R2 = {B} and B → BC 
Dependency preserving 
R1 = (A, B), R2 = (A, C) 
Lossless-join decomposition: 
     R1 ∩ R2 = {A} and A → AB 
Not dependency preserving (cannot check B -> C without computing R1 ⋈ R2) 

所以我明白,具有A→B和B→C意味着你有在彼此「參考」,而A→B和A→C意味着有B和C之間沒有引用或鏈接。

所以,

  1. 不無損聯接分解意味着數據總體依然完好?在這兩種情況下,你仍然可以最終獲得這兩個數據,對吧?如果這是錯誤的,請糾正我! :)

  2. 在第二次分解中,連接B到C的意義是什麼?以及它如何使它不依賴於維護?

    • 如果刪除了A,那麼只需要B和C沒有關係。

    • 如果B被刪除你仍會有A→C.

    • 如果C被刪除你仍會有A→B.

因爲即使在第一實施例在刪除值時,您仍然會得到類似的結果。

  • 如果A被刪除,你仍然有說明B→C的關係

    • 若B被刪除,你只會有A和C,沒有關係。

    • 如果C被刪除,你將有A→B.

所以,無論哪種方式的關係,如果你刪除的各個項目,你仍然有一個關係的兩個實例和一個實例具有無關係

兩個項目

我的猜測是,在刪去「中間人關係」(是有一個學期),B例1和A實施例2中,是,你仍然可以與例1的A→B然後B→C,而在示例2中,您與A→B卡住,但與A沒有連接→C.

但是正如你所看到的,我現在回到原來的一個問題,爲什麼這會導致數據依賴性,並且在使用Google搜索「什麼是數據依賴性」或「數據依賴性的示例」時,根本沒有任何意義我。

如果有人能幫我澄清這一點,我將不勝感激。

+0

FD與「鏈接」或「引用」無關。當A的每個給定值的所有出現都以B的相同值出現時,A→B存在一個關係。讀取一個定義。 – philipxy

回答

2

無損連接並不意味着任何元組丟失或加入後無法恢復。無損連接意味着生成導致「額外」行(元組)和「信息」的虛假元組據說會丟失。

簡單說來,我認爲,當我們在一個子模式的屬性找到FD兩側的依賴被保留。 (如果我錯了,請糾正我)。

6

分解關係R爲R1和R2的是無損加入分解,如果你可以通過加入關係R1和R2(R1形式R2⋈可以得到R)構建體背面R上。

對於分解關係R爲R1和R2是無損的,它必須滿足任一條件2:

1. R1 ∩ R2 -> R1 
2. R1 ∩ R2 -> R2 

如果上述關係不作任何然後感想到它像這樣,當你交叉關係R1和R2並且獲得公共屬性時,如果公共屬性能夠確定任何一個關係,那麼這些(這些)公共屬性就是所獲得的關係的候選關鍵字(想想爲什麼?),因此你可以加入使用這個候選鍵的其他關係,以獲得R.

對於依賴p如果通過取所有分解關係的函數依賴關係的聯合可以獲得R的函數依賴關係,則關係R的分解是依賴關係保持。

+0

第一段是一個正確的定義。第二個不是。 (你已經從維基百科拿走了它們,但它是錯誤的。)這是一個*暗示*無損分解但不是必需的條件。無論如何,FD保存不依賴於無損。 (*正如你自己的最後一段所說。*) – philipxy