【发布时间】:2014-05-22 19:23:06
【问题描述】:
我正在研究所有正常形式之间的差异,直到我遇到以下情况,来自A Simple Guide to Five Normal Forms in Relational Database Theory
我们不会尝试对第五范式进行全面的阐述,而是用一个常用的例子来说明中心概念,即涉及代理、公司和产品的例子。如果代理商代表公司,公司生产产品,代理商销售产品,那么我们可能希望记录哪个代理商为哪个公司销售哪种产品。此信息可以保存在具有三个字段的一种记录类型中:
-----------------------------
| AGENT | COMPANY | PRODUCT |
|-------+---------+---------|
| Smith | Ford | car |
| Smith | GM | truck |
-----------------------------
这种形式在一般情况下是必需的。例如,虽然代理史密斯销售福特制造的汽车和通用制造的卡车,但他不销售福特卡车或通用汽车。因此我们需要三个字段的组合来知道哪些组合是有效的,哪些是无效的。
基本上,这个表在 4NF 中,因为它在 3NF 中(所有属性都依赖于候选键,在这种情况下都是 3)并且该表不暗示多值依赖。但是这个表现在是否也在 5NF 中,尽管它没有被分解(由于信息丢失,它不能被进一步分解)?
【问题讨论】:
标签: database normalization database-normalization