2013-01-20 51 views
1

我已經作出如下表:修訂模式至第四正常形式

SCHEDULE 
    -id_movie 
    -id_room 
    -date 
    -hour 

(Id_room,date,hour)形式的主鍵。在特定的日子,在特定的時間,我只在特定的房間裏看電影。問題是這個表格不是第四種正常形式(4NF)。你能給我一些建議嗎?我認爲這是在BCNF。

該表具有multivalued相關性:id_room - >>hour

我需要將此表格轉換爲4NF。

+0

取決於你使用SQL的版本,你可以在日期和時間字段組合成日期/時間,從而爲您提供實際的電影開始日期和時間在一個單一的領域。這應該更有效率。 – Paul

+0

MVD成對出現;這是該系統中的其他MVD?是什麼讓你認爲房間和時間之間有MVD? –

回答

2

維基百科,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 * 
+0

ypercube謝謝 –

3

此表在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列;兩者都需要確定一個特定的時刻。

+0

非常感謝你 –

+0

你怎麼知道沒有看到實際數據? OP表示它具有多值依賴性:'id_room - > hour' –

+1

不要感謝我,接受答案! –