我制作了下表:
SCHEDULE
-id_movie
-id_room
-date
-hour
(Id_room,date,hour)
构成主键。在特定日期,在特定时刻,我在特定房间只有一部电影。问题是这个表不是第四种正常形式(4NF)。你能给我一些建议吗?我认为这是在BCNF。
该表格具有multivalued
依赖关系:id_room
- >> hour
。
我需要将此表格提交给4NF。
答案 0 :(得分:3)
此表格为4NF。没有多值的依赖性,即tupples(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,下午5时);虽然这不是禁止的。
我认为你的困惑源于将日期和时间分成两列;两者都需要确定一个特定的瞬间。
答案 1 :(得分:2)
来自维基百科, 4th Normal Form
当且仅当对于每个非平凡的多值依赖项
X->>Y
,X
是超级密钥时,表格在4NF中,即X
是候选者关键或超集。
您说该关系具有multivalued
依赖关系:id_room->hour
。
但id_room
既不是候选键,也不是超集。
因此,在这种情况下,关系不在4NF中。
要制作架构4NF,您可以分为两个关系:
SCHEDULE_DATE_MOVIE
-id_movie
-id_room *
-date *
SCHEDULE_HOUR
-hour
-id_room *