【问题标题】:Correctly place table into 4NF?正确地将表格放入 4NF?
【发布时间】:2013-09-11 18:33:16
【问题描述】:

问题:

将 PERSON 关系放入 4NF where

PERSON(姓名、兄弟姐妹、Shoe_Size) 假设存在以下函数依赖:

姓名 -->--> 兄弟姐妹

名称 --> Shoe_Size

........

我在下面提出的 4NF 表格的正确版本是什么?我仍然对规范化感到困惑。

列出多值依赖

姓名 -->--> 兄弟姐妹

将多个依赖项拆分到自己的表中

PERSON_2([PK]PersonName, Shoe_Size)

SIBLING([FK]PersonName, SiblingName)

第二步:列出功能依赖项

PersonName -> (Shoe_Size, SiblingName)

第三步:列出初始候选键

人名

第七步:陈述最终表格并创建引用完整性约束

PERSON_2([PK]PersonName, Shoe_Size)

SIBLING([FK]PersonName, SiblingName)

..

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

【问题讨论】:

    标签: database database-design normalization database-normalization


    【解决方案1】:

    你唯一忘记的就是约束

    PERSON_2.PersonName 必须存在于 SIBLING 中。

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

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

    【讨论】:

      猜你喜欢
      • 2023-03-07
      • 1970-01-01
      • 1970-01-01
      • 2012-01-29
      • 2021-12-09
      • 2012-05-18
      • 2017-11-09
      • 2013-11-14
      • 2021-07-14
      相关资源
      最近更新 更多