1

我做了下表:

  SCHEDULE
  -id_movie
  -id_room
  -date
  -hour

(Id_room,date,hour)形成主键。在特定的日期,特定的时间,我在特定的房间里只有一部电影。问题是这个表不是第四范式(4NF)。你能给我一些建议吗?我认为它在 BCNF 中。

该表具有multivalued依赖性:id_room—>> hour

我需要让这张桌子达到 4NF。

4

2 回答 2

3

该表在 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);虽然这不是禁止的。

我认为您的困惑源于将日期和时间分成两列;两者都需要识别特定的瞬间。

于 2013-01-20T23:58:28.093 回答
2

来自维基百科,第四范式

一个表在 4NF 中当且仅当,对于它的每一个非平凡的多值依赖项X->>YX是一个超键——也就是说,X要么是一个候选键,要么是它的超集。

您说该关系具有multivalued依赖关系:id_room->hour

但是id_room既不是候选键也不是超集。

因此,在这种情况下,关系不在 4NF 中。


要使模式 4NF,您可以拆分为两个关系:

  SCHEDULE_DATE_MOVIE
  -id_movie  
  -id_room   *
  -date      *

  SCHEDULE_HOUR
  -hour
  -id_room   *
于 2013-01-21T00:41:31.607 回答