防止4NF关系

时间:2014-11-10 04:06:15

标签: sql normalization database-normalization

我一直在经历数据库规范化概念,并对第四种常规形式产生了疑问。

请考虑下表:

movie_id  | actor_id | producer_id
-----------------------------------

1         | 1        | 1

1         | 2        | 1

1         | 2        | 2

上述关系的主键是:movie_id,actor_id,producer_id as一部电影可以有多个演员和多个制片人。

因此,上表是在BCNF。

根据4NF的术语,我们应该从上表中消除多值依赖关系以达到4NF,结果得到2个表。

movie_actor
movie_id  | actorId
---------------------

movie_producer
movie_id  | producer_id
------------------------

上表是4NF。 然而, 我不明白为什么这个表遇到了这个多值依赖,因为这样的事情可以通过“First normal form”本身来处理。

<1> 1 NF告诉我们,我们应该避免重复群体。因此,由于电影可以有多个演员,我们应该在其单独的movie_actor表中分离演员,以满足1 NF。

任何人都可以告诉我,我的理解是否正确? PS。上面的例子来自书:关系数据库的设计和实现:Jan Harrington,第3版,第5页。 117

0 个答案:

没有答案