这个例子是第5范式吗?

时间:2014-04-09 14:06:24

标签: database normalization database-normalization

我正在研究所有正常形式之间的差异,直到我发现以下内容,来自A Simple Guide to Five Normal Forms in Relational Database Theory

  

我们不会尝试全面阐述第五种常规形式,而是用一个常用的例子说明中心概念,即涉及代理商,公司和产品。如果代理商代表公司,公司制造产品,代理商销售产品,那么我们可能希望记录哪个代理商销售哪个公司的产品。此信息可以保存在一个记录类型中,包含三个字段:

-----------------------------
| AGENT | COMPANY | PRODUCT |
|-------+---------+---------|
| Smith | Ford    | car     | 
| Smith | GM      | truck   | 
-----------------------------
  

这种形式在一般情况下是必要的。例如,虽然代理商史密斯销售福特制造的汽车和通用汽车制造的卡车,但他并不销售福特卡车或通用汽车。因此,我们需要三个字段的组合来知道哪些组合是有效的,哪些组合不是。

基本上,这个表是4NF,因为它在3NF(所有属性都依赖于候选键,在这种情况下都是3),并且该表并不暗示多值依赖。但是这个表现在也在5NF,尽管事实上它没有被分解(因为它不能因为信息丢失而无法进一步分解)?

1 个答案:

答案 0 :(得分:1)

它在5NF。

你的短语“它没有被分解”和“它不能再被分解”并不意味着同样的事情。您应该仔细阅读Kent Beck的文章中引用的段落和示例。