我有这张桌子,我应该重新设计它以消除它的所有异常。我不会给表但是依赖。
The functional dependencies are
(Product, Store) -> Dept
Store -> Manager
Dept-> Assist
(Product, Store)->Price
Product-> Weight
Product-> Manufact
Manufact-> Manuloc
产品和商店是这种关系中的关键
好的,所以我必须通过分解表并创建新的表来删除异常,并说明每个表中的内容。我不确定该怎么做。
答案 0 :(得分:1)
应用阿姆斯特朗的公理及其衍生的规则。 (我确定这是在你的教科书中。检查索引。)例如,给定这两个功能依赖(FD):
(Product, Store) -> Dept
Dept -> Assist
您可以应用及物性规则来确定未说明的FD:
(Product, Store) -> Assist
从你给出的FD中,得出FD的不可约集合;这个集合决定了你的表格。
此示例来自Date的数据库系统简介。 (他给出了更完整的处理方法。)鉴于
A -> BC
B -> C
A -> B
AB -> C
AC -> D
使用阿姆斯特朗的公理重写右手单身人士:
A -> B
A -> C
B -> C
A -> B
AB -> C
AC -> D
FD A -> B
出现两次;我们可以丢弃一个而不会丢失信息。我们可以将AC -> D
缩减为A -> D
,我们可以删除AB -> C
。我们可以删除A -> C
,留下
A -> B
B -> C
A -> D
从这个不可简化的FD集合中,你得出两个表
A -> BD
B -> C