4

我试图联系我的导师,但没有成功,我真的很想了解这个过程,但无论我读了多少材料,我似乎都无法让它适合我的小脑袋。有人可以帮我解决以下问题吗?

A-->BCD
BC-->DE
B-->D
D-->A

一个。计算 B+。

我相信这个如下。这似乎是正确的吗?

B+ 表示 B 的闭包。
B --> D
B+ = {BD}
D --> A
B+ = {ABD}
A --> BCD
B+ = {ABCD}
BC --> DE
B+ = {ABCDE}

关系的所有属性都可以被B找到。所以,B是关系的主键。

湾。证明(使用阿姆斯壮公理)AF 是一个超级键。

我不明白如何处理 F,因为它没有出现在上述关系中。

C。计算上述函数依赖集 F 的规范覆盖;解释推导的每一步。

d。给出基于规范覆盖的 r 的 3NF 分解。

4

3 回答 3

1

关系的所有属性都可以被B找到。所以,B是关系的主键。

不。如果 B 可以确定关系的所有属性,则 B 将是候选键。可能有多个候选键,并且没有正式的理由将一个候选键标识为“主要”而将其他候选键标识为“次要”。

但是 B 并不能确定关系的所有属性。它不能确定 F。

我不明白如何处理 F,因为它没有出现在上述关系中。

非正式地说,如果一个属性没有出现在任何函数依赖项的右侧,它必须是每个超键的一部分。

r = {ABCDEF}

为了证明 AF 是一个超级键(或候选键),计算关系 R = {ABCDEF} 的 AF 闭包。使用上面相同的 FD。

于 2011-04-09T11:37:56.740 回答
1

C部分:规范封面

A->BCD, BC->DE, B->D, D->A
  1. 从 BC->DE 中删除 D

    A->BCD, BC->E, B->D, D->A

  2. 从 A->BCD 中删除 D

    A->BC, BC->E, B->D, D->A

  3. 分解 A->BC

    A->B, A->C, BC->E, B->D, D->A

  4. 从 BC->E 中删除 C

    ? : B->D->A->C => B->C => B->BC->E => B->E ? : B+:: B->BD->ABD->ABCD->ABCDE (E是B+的元素) A->B, A->C, B->E, B->D, D->A

于 2016-02-08T03:37:07.303 回答
0

1 将每个 FD 减少到右侧的单个 att:

A->B A->C AD BC -> D BC -> E B->D D->A

2 去除多余的atts:

BC -> D 简化为 B->D 并且 BC -> E 简化为 B->E,因为 C 在两者中都是无关的。

3 删除多余的FD:

A->B, A->C, B->D, B->E, D->A

如果我错了,有人请纠正我的答案。

于 2014-02-24T15:39:50.990 回答