2011-02-17 67 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 
您正在使用什麼數據庫軟件