2014-01-30 63 views
1

我一直在試圖理解分解關係但沒有成功的過程。我不知道它是如何工作的,我無法弄清楚。我有一個例子,如果有人能夠一步一步地向我解釋它是如何工作的。分解關係

Consider schema R(A;B;C;D;E) with FDs 
F = {AB -> CDE; AC -> BDE; B -> C; C -> B; C -> D; B -> E}. 
1. Find all keys of R. 

F = {AB -> CDE; AC -> BDE; B -> C; C -> B; C -> D; B -> E} 
A+ = A 
B+ = BCED 
- it is not possible to deduce A from the other attributes -> A belongs to key 
AB+ = ABCDE - a candidate key 
AC+ = ACBDE - a candidate key 
AD+ = AD, 
AE+ = AE 
ADE+ = ADE 

我也搞不懂什麼A +表示

回答

0

你張貼什麼是不分解的關係。它找到候選鍵。這裏的候選鍵是{AB,AC}。

查找關鍵字是分解關係的第二步。第一步是識別所有依賴關係。你被賦予了所有的函數依賴,所以你不必在這裏做那個部分。

A +意味着「屬性集A的相對於封閉件所設定的函數依賴的F」 - 的集合F的屬性可以由A.

該語句來確定

,不可能從其他屬性推導出A - > A屬於 加鍵

應該是

,不可能從其他屬性推導出A - > A屬於 每個候選鍵

+0

爲什麼A + = A和B + = BCED。我不明白這一點。 – user3043278

+0

屬性「A」的集合僅確定「A」的值。你不能確定B,C,D或E只給出A. B-> B是微不足道的;給出B-> C和B-> E; B-> D,因爲B-> C和C-> D(傳遞性)。所以B-> BCDE。 –