gpt4 book ai didi

database-design - 带有一个代理键和两个唯一键的BCNF

转载 作者:行者123 更新时间:2023-12-04 07:01:11 24 4
gpt4 key购买 nike

我试图了解BCNF是什么,并且我有一个这样的关系:

学生(id,ssn,电子邮件,姓名,姓氏)

在哪里

  • id是不具有null和自动增量属性的主代理键
  • ssn是唯一键,其属性不为null,
  • 电子邮件也是唯一的 key ,属性不为空。

  • 是否有任何违反BCNF的问题,如果是的话,如何通过更好的设计克服这种情况?

    编辑

    我正在尝试编写我的功能依赖项,但是如果我写错了,请更正我。

    共有三个属性决定了其他属性,因此ssn和email都存在于等式的左侧和右侧令人困惑。似乎这种关系不在bcnf中,但一定有问题:)
    id -> (ssn, email, name, surname)
    ssn -> (id, email, name, surname)
    email -> (id, ssn, name, surname)

    最佳答案

    是的,您的表格在BCNF中。这是因为您没有任何重叠的候选键-即,没有属性出现在两个不同的键中。

    如果您还有其他属性X,它构成了键的一部分-例如(SSN,X)和(email,X)-然后您的表将无法通过BCNF,因为对于给定的SSN和电子邮件对,X应该相同。这些键定义将允许给定SSN和电子邮件使用不同的X值。

    为了更好地解释BCNF,请阅读this answer

    关于database-design - 带有一个代理键和两个唯一键的BCNF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16503620/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com