2016-11-07 39 views
0

我想使這些表匹配Inmons 3NF方法(IM工作的Northwind數據庫):此更改是否與northwind數據庫中的3NF匹配?

Before

我注意到地址的事情不斷重複,而它不是有點甚至原子,所以我決定把另一表圖所謂的「地址」是這樣的:

After

這是有效的方法? 由於表地址存儲所有的地址無論如何我可以分享他們的所有其他表?

謝謝

回答

0

您的解決方案是有效的,肯定是更規範化。

但是,它不在3NF呢。嚴格地說,對於一個表在3NF中,你不能有任何非關鍵的相互依賴關係。在你的例子中,例如在城市和國家之間存在這種依賴關係。所以每次有人進入巴黎時,他們也需要進入法國。如果有人意外進入德國巴黎,這可能會導致異常情況。對於3NF,您必須創建一個額外的城市表格,用於存儲城市及其各自的國家/地區。城市將是關鍵,國家是非關鍵屬性。地址表將有一個外鍵到城市。爲簡潔起見,我省略了郵政編碼和區域,但它們也需要包含在規範化中。所以,爲了製作這個3NF,你需要更多的實體。

這個複雜性就是爲什麼Kimball的星型模式比Inmon的3NF模式更受歡迎......