0

我有这张桌子,我应该重新设计它以消除它的所有异常。我不会给出表格,而是给出依赖项。

The functional dependencies are
(Product, Store) -> Dept
Store -> Manager
Dept-> Assist
(Product, Store)->Price
Product-> Weight
Product-> Manufact
Manufact-> Manuloc

Product 和 Store 是这个关系中的关键

好的,所以我必须通过分解表并创建新表并说明每个表中的内容来消除异常。我不确定该怎么做。

4

1 回答 1

1

应用阿姆斯特朗的公理和从中得出的规则。(我确定这在您的教科书中。检查索引。)例如,给定这两个函数依赖项(FD):

(Product, Store) -> Dept
Dept -> Assist

您可以应用传递性规则来确定未说明的 FD:

(Product, Store) -> Assist

从给定的 FD 中,推导出一组不可约的 FD;这套决定你的桌子。

这个例子来自 Date 的Introduction to Database Systems。(他给出了更完整的处理。)

A  -> BC
B  -> C
A  -> B
AB -> C
AC -> D

使用 Armstrong 公理重写右手单例:

A  -> B
A  -> C
B  -> C
A  -> B
AB -> C
AC -> D

FDA -> B出现两次;我们可以丢弃一个而不会丢失信息。我们可以减少AC -> DA -> D,我们可以消除AB -> C。我们可以消除A -> C,离开

A -> B
B -> C
A -> D

从这组不可约的 FD 中,您将导出两个表

A -> BD
B -> C
于 2011-02-17T11:03:32.470 回答