如何将关系分解为5NF?

时间:2015-08-30 12:37:26

标签: database-normalization

第五范式表中提供的example与以下数据有ACP(代理,公司,产品)关系:

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

适用的规则是代理商销售某种产品​​,并代表制造该产品的公司,然后他为该公司销售该产品。

根据constratint 3D将关系分解为3个关系: AC(代理商,公司) AP(代理商,产品) CP(公司,产品)即可。因此,加入依赖关系是 * {(代理,公司),(代理,产品),(公司,产品)} 。根据5NF的定义,表R是第五范式(5NF)或项目连接范式(PJ / NF)当且仅当R中的每个连接依赖关系由R的键隐含时。但是没有一个预测包含密钥,因为关键是{agent,company,product}本身。

C.J.Date在书中提供的另一个example包含类似的关系货物(suppier_number,part_number,project_number),并且该关系被类似地分解为constratint 3D。但是,5NF的定义并未说明constratint 3D。

所以,我对上面提到的场景有几个问题:

  1. 什么是constratint 3D?
  2. 如果关系还有一个属性“region”来制作ACPR(代理商,公司,产品,地区)怎么办?

0 个答案:

没有答案