2017-10-18 73 views
-1

我想知道關於關係數據庫正常形式的這些考題。在我看來,第一個應該是3NF,第二個是2NF(即第一個應該是錯的)。抽象關係模式的正常形式

問題9. [...] C int, D int NOT NULL, UNIQUE (B,C) [...]

我的理由是,由於C是獨一無二的,它也是一個候選鍵,因此一個主屬性。因此,它也是一個超級鍵,因此適合3NF的描述。

爲3NF定義:關係模式R是第三範式(3NF)如果,每當一個非平凡函數依賴中的R X→A成立時,無論是 的(a)X是R的超密鑰,或(b)A是R.

databasequestion

+0

好像我需要更多的點能夠發佈IMG直接,對不起... – Krilliminell

+0

你是什麼意思,「C是獨一無二的」? PS [請使用文本發佈任何可能的內容 - 即,所有鏈接/圖像。](https://meta.stackoverflow.com/a/285557/3404097)同時請給它的來源來信任它的作者。同時解釋暗箱,不要強迫我們弄清楚這是他們還是你。因爲模式[[不屬性,superkey或CK] - 「適合」NF,並且你寫的內容沒有意義,所以請編輯「因此適合3NF的描述」)來實際說出你想說的內容。 – philipxy

回答

1

第一個問題並沒有說C是唯一的原屬性,它說 「UNIQUE(b,C)」,這意味着(b ,C)子表值在表中是唯一的。

D不是NULL,所以推測B & C可能是NULL。但是關係理論不具有NULL。所以目前還不清楚你或你的課程/教科書甚至意味着{C}是一個決定因素。 Or by "FD" (functional dependency), "superkey", "CK" (candidate key), "PK" (primary key), any of the "NFs" (normal forms) or any other relational terms。另外在SQL PRIMARY KEY中實際上意味着UNIQUE NOT NULL,而UNIQUE使用3VL,所以這兩個術語都沒有關係含義。所以你需要告訴我們或給一個參考。 (雖然也許它並沒有解決問題,使測試&其使用的那些話重新SQL表可以有NULL只是胡說八道。)

無論如何,如果{C}是獨一無二的,NULL沒有參與,「因爲C是獨一無二的,它也是一個候選鍵「不健全」。如果{}不是,那麼它只是一個CK,也就是說,如果表不被限制只有一行。

而且,僅僅因爲擁有一些非平凡的FD滿足(a)或(b)不意味着他們所有做的,所以你的推理再3NF是錯誤的。