将桌子正确放入4NF?

时间:2013-09-07 22:15:55

标签: database database-design normalization database-normalization

问题:

将PERSON关系放入4NF

PERSON(姓名,同级,Shoe_Size) 假设存在以下功能依赖:

名称 - > - >同级

名称 - > Shoe_Size

..................

我在4NF的桌子下面找到了正确的版本吗?仍然让我的头脑正常化。

列出多元化的依赖

名称 - > - >同级

分割多元资源依赖自己的表格

PERSON_2([PK] PersonName,Shoe_Size)

SIBLING([FK] PersonName,SiblingName)

第二步:列出职能依赖

PersonName - > (Shoe_Size,SiblingName)

第三步:列出最初的候选人密码

PERSONNAME

第七步:陈述最终表并创建参考完整性约束

PERSON_2([PK] PersonName,Shoe_Size)

SIBLING([FK] PersonName,SiblingName)

...

WHERE SIBLING.PersonName必须存在于PERSON_2.PersonName中。

1 个答案:

答案 0 :(得分:2)

你唯一忘记的是约束

PERSON_2.PersonName必须存在于SIBLING中。

否则,您生成的数据库设计与原始数据库设计不完全等效。

(很多时候,这也表明您的原始设计不太适合解决手头的业务问题,但规范化理论并不关心原始设计的适用性。)