我做了下表:
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。
该表在 4NF 中。不存在多值依赖,即元组 (a,b,c) 和 (a,d,e) 的存在不需要 (a,b,e) 和 (a,d,c) 存在。
在具体情况下:
(1, 21/1/13, 5pm) 和 (1, 22/1/13, 7pm) 不需要 (1, 21/1/13, 7pm) 和 (1, 22/1/13, 5pm);虽然这不是禁止的。
我认为您的困惑源于将日期和时间分成两列;两者都需要识别特定的瞬间。
来自维基百科,第四范式
一个表在 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 *