我已經作出如下表:修訂模式至第四正常形式
SCHEDULE
-id_movie
-id_room
-date
-hour
(Id_room,date,hour)
形式的主鍵。在特定的日子,在特定的時間,我只在特定的房間裏看電影。問題是這個表格不是第四種正常形式(4NF)。你能給我一些建議嗎?我認爲這是在BCNF。
該表具有multivalued
相關性:id_room
- >>hour
。
我需要將此表格轉換爲4NF。
我已經作出如下表:修訂模式至第四正常形式
SCHEDULE
-id_movie
-id_room
-date
-hour
(Id_room,date,hour)
形式的主鍵。在特定的日子,在特定的時間,我只在特定的房間裏看電影。問題是這個表格不是第四種正常形式(4NF)。你能給我一些建議嗎?我認爲這是在BCNF。
該表具有multivalued
相關性:id_room
- >>hour
。
我需要將此表格轉換爲4NF。
維基百科,4th Normal Form
甲表是在4NF當且僅當,對於其非平凡多值依賴
X->>Y
的每一個,X
是一個超密鑰 - 即,X
或者是一個候選鍵或其超集。
你說關係有multivalued
依賴關係:id_room->hour
。
但是id_room
既不是候選鍵也不是超集。
因此,在這種情況下,關係不在4NF中。
要使模式4NF,那麼可以拆分爲兩個關係:
SCHEDULE_DATE_MOVIE
-id_movie
-id_room *
-date *
SCHEDULE_HOUR
-hour
-id_room *
ypercube謝謝 –
此表在4NF。 (a,b,c)和(a,d,e)不存在(a,b,e)和(a,d,c)存在的情況下,沒有多值依賴。
在具體情況下:
(1,21/1/13,下午5點)和(1,22/1/13,下午7點)不需要(1,21/1/13,下午7點)和(1,22/1/13,5pm);雖然這不是被禁止的。
我認爲你的困惑源於日期和時間分成2列;兩者都需要確定一個特定的時刻。
非常感謝你 –
你怎麼知道沒有看到實際數據? OP表示它具有多值依賴性:'id_room - > hour' –
不要感謝我,接受答案! –
取決於你使用SQL的版本,你可以在日期和時間字段組合成日期/時間,從而爲您提供實際的電影開始日期和時間在一個單一的領域。這應該更有效率。 – Paul
MVD成對出現;這是該系統中的其他MVD?是什麼讓你認爲房間和時間之間有MVD? –