问题:
将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中。
答案 0 :(得分:2)
你唯一忘记的是约束
PERSON_2.PersonName必须存在于SIBLING中。
否则,您生成的数据库设计与原始数据库设计不完全等效。
(很多时候,这也表明您的原始设计不太适合解决手头的业务问题,但规范化理论并不关心原始设计的适用性。)