2011-02-17 63 views
0

我有这个表格,我应该重新设计它以从中删除所有异常。我不会给表格,而是依赖关系。从表格中删除异常

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

产品和存储的关键是在这种关系

好了,所以我必须分手表和创建新的和国家将在每个桌子上去除异常。我不确定如何做到这一点。

+0

? – Lekensteyn 2011-02-17 08:24:23

回答

1

应用阿姆斯特朗的公理和从他们派生的规则。 (我敢肯定,这是你的课本检查指标。)例如,假设这两个函数依赖(FDS):

(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 -> DA -> D,我们可以消除AB -> C。我们可以消除A -> C,留下

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

从这束缚组FDS的,你会得到两个表

A -> BD 
B -> C 
您正在使用什么数据库软件