我一直在经历数据库规范化概念,并对第四种常规形式产生了疑问。
请考虑下表:
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