2016-11-14 53 views

回答

0

如果MovieName是關鍵,並且唯一依賴性(不是隻有行列式!)是:

MovieName → Genre 

那麼關係是在第一,第二和Thir d正常形式,以及Boyce-Codd正常形式,以及更高級形式(例如第四範式)。

這是因爲在(唯一)依賴關係中,行列式(MovieName)是關鍵,因此所有正常形式的定義都受到尊重。

+0

「因爲」只保證BCNF。 – philipxy

0

你並不是真正的意思是「這種關係的標準化程度是多少」。關係變量或值可以一次以很多正常形式出現。當它在一個,它在所有較低的,它可能在更高的。所以大概你的意思是「這個關係必須處於最高水平的標準化」。

MovieName->類型不是行列式。它是一個FD(功能依賴)。它的決定因素是{MovieName}。這是CK(候選鍵)的唯一決定因素。的非平凡的FD是
  {的movieName} - > {流派}
  {的movieName} - > {的movieName,流派}
由於非平凡FD的每一個決定因素是一個超密鑰,這是BCNF。由於它在BCNF中,因此它是每個較低的正常形式。

有兩個定理的日期&費金與此有關:

  • 如果關係是3NF(或BCNF)和每一個CK很簡單,那就是在5NF
  • 如果關係是BCNF和一些CK很簡單,那麼它是在4NF

由於你的關係是在BCNF它是3NF,因爲每個CK是簡單的它在5NF。


PS如果我們不知道這些定理會怎麼樣?

如果這個值/變量的唯一限制是你給出的值,那麼它就是5NF。因爲根據定義,當它不滿足任何JD(聯合依賴)時,它就在5NF中,而不是那些由它具有該組候選鍵所隱含的JD。

但是,如果我們所知道的值/變量是您給出的,那麼我們如何表明它仍然必須在5NF?

如果JD * {{MovieName},{Genre}}也被佔用,那麼它將不在4NF(或更高)。也就是說,如果它也等於其在{MovieName} & {體裁}上的預測加入。在連接/原始中,每個輸入的MovieName值將以每個流派值的元組存在。 CK表示每個MovieName只有一個這樣的對。所以在輸入中只有一個體裁值。然後FK {} - > {體裁}將會成立。 BCNF意味着2NF,即對CK沒有部分依賴關係,所以FK {} - > {Genre}不成立。所以我們有一個矛盾。所以JD不成立。所以這個關係是在4NF中,因爲沒有其他不重要的二進制JD可能會違反4NF。它也在5NF,因爲沒有超過兩個元素可以容納的JD。

+0

[mcve] afadafasdfd – philipxy