2016-06-13 40 views
0

我正在進行數據庫規範化以使其最小化爲3NF,但我無法僅在最後一箇中繼續。將數據庫歸一化爲3NF或BCNF

最後一個表我有以下鍵。 ID,Organization_number和名稱。 ID是主鍵。 ID可以確定ORG_NR和Name,ORG_NR也可以確定ID和名稱。 我知道這是違反3NF。 所以我的問題是,我應該做些什麼來使它成爲3NF甚至BCNF。

如果我把它分解到表中,這使得一對一的關係。

My table

+0

是什麼讓你覺得「讓一對一的關係」成爲一個問題? – philipxy

+0

感謝您的評論,現在我得到了我的答案:) – Alex

回答

2

功能依賴性決定候選鍵。主鍵只是您決定調用PK的一些CK。除了CK之外,PK在標準化中沒有作用。想必你知道這個ID是唯一的(而且{}不是CK),所以它是一個CK,你已經做了PK。 (但你應該清楚地說明)。

既然{ID}和{ORG_NR}確定了所有其他屬性並且每個屬性都沒有更小的子集,它們都是CK。據推測,唯一的FD是從這些跟隨的FD。 (但是你應該明確說明。)由於所有非平凡的FK都超出了超級鍵,所以這是BCNF(&也是3NF)。

PS既然你(錯誤地)認爲這不是在3NF,找到3NF的定義,並試圖顯示它是否滿足3NF。

+0

現在我明白了,關於您的答案,這意味着沒有必要將其拆分爲兩個表。 最後,工作完成;) – Alex