2012-10-14 37 views
1

在的9:34,發言人說所有3個函數依賴項都是Boyce Codd Normal Form。我不相信這是因爲GPA無法確定學生表中的SSN,sName,地址和所有其他屬性。要麼我對博伊斯科德範式的定義或超級關鍵是什麼感到困惑?它只需要能夠唯一地識別某些屬性,而不是模式中的所有屬性?例如,GPA確定優先級(位於函數依賴的右側),但不是其他所有內容。例如,如果我有關係R(A,B,C,D)和FD A-> B,那麼我們可以說A是B的超級鍵,但是我認爲超級鍵是用於整個表的?爲了增加我對BCNF的理解,我們知道它可以是一個(主鍵)鍵,但是你只能使用表的主鍵。呃我的腦子疼。關於什麼superkey或Boyce Codd Normal窗體的誤解是

回答

3

「......說話者說所有3個函數依賴都在Boyce Codd Normal Form中。」

要在BC範式是可以通過關係將有一個屬性(關係變量,更具體,或關係模式,如果這個詞適合你更好),而不是函數依賴。如果你發現有人這麼說太過正常化理論,請離開並轉到更準確的解釋。

關係變量是否確實是BC正常形式取決於哪個函數依賴關係應該保存在它中。這就是爲什麼說功能依賴關係是或不是BC正常形式。

「我不相信它,因爲很明顯,GPA無法確定學生表中的SSN,sName,地址和所有其他屬性。要麼我對Boyce Codd Normal Form的定義感到困惑,要麼是什麼超級關鍵是?它只需要能夠唯一標識某些屬性,而不是模式中的所有屬性?「

不可簡化的候選關鍵字是關係模式的屬性集合(不一定是唯一的),該關係模式的屬性保證在任何關係值中有唯一的屬性值組合,可以有效地出現在數據庫中的關係變量中。在你的(A,B,C,D)例子中,如果A-> B是只有 FD,那麼唯一的候選鍵是{A,C,D}。 「例如,如果我有關係R(A,B,C,d)和文件描述符A-> B將我們說A是B中的超密鑰」

它是草率和混亂交談

在這種情況下,A是B的「關鍵」。假裝教別人的人應該知道這一點,而那些不知道的人在知道這些之前不應該參與任何教學。在這種情況下,最好將A作爲B的「決定因素」。關係數據庫設計中的術語「關鍵」具有非常明確和精確的含義,並且對其他含義使用相同的術語僅僅會混淆人。正如你的問題所證明的那樣。 「

」但我認爲超級鑰匙是整個桌子?「

是的你認爲是正確的。

返回您的(A,B,C,D)示例。(A,B)和(A,C,D),然後我們將有一個關係模式 - (A,B)其中我們可以說「 A}是該模式中的關鍵。

這實際上正是什麼FD A-> B的意思是:如果您將在(A,B,C,D)架構中出現在數據庫中的關係值的投影屬性{A,B},然後你應該得到一個沒有A值出現兩次的關係(如果是這樣,那麼A值將對應於> 1個不同的B值,這意味着A不可能是行列式對於B畢竟)。

「添加到我的困惑我知道BCNF它可以是一個(主)鍵,但......」

您現在正馬虎自己。 「它」指的是什麼?

+0

好吧,我明白了,視頻讓我感動,因爲她開始無緣無故地在依賴關係旁邊打上覆選標記。我認爲這意味着他們有財產來建立關係BCNF,但實際上他們沒有。我應該相信自己的知識,不要讓視頻將我所知道的關於RMDB的一切都徹底清除。 – Celeritas

+0

這裏有很多垃圾。事實上,事實上我甚至認爲,即使赫拉克勒斯會抓住他的腦袋,或者可能會通過,如果他被派去清理Augias馬廄的話。 –