2014-01-30 56 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。 –