【问题标题】:Is a candidate key determinant good enough for BCNF?候选关键决定因素对 BCNF 是否足够好?
【发布时间】:2015-01-05 10:27:15
【问题描述】:

我的作业中出现的一个问题如下:

  • 如果行列式是候选键的一部分,那么这对 BCNF 是否足够好?

我不这么认为,因为如果所有非键属性都依赖于整个主键,那么关系就在 BCNF 中,仅此而已。这表示行列式是候选键的部分,那么这是否意味着部分功能依赖?

但是,我开始怀疑自己,因为候选键有可能是超级键,但事实并非如此。

你怎么看?

【问题讨论】:

    标签: mysql database relational-database database-normalization bcnf


    【解决方案1】:

    问题中的“部分”是什么意思?一些但不是全部?部分还是全部?什么意思?

    部分函数依赖的定义使用“部分”来表示部分而不是全部。

    检查 BCNF 的定义。要求没有非主要属性在功能上部分依赖于任何键的那个还需要您编写的其他内容。所以你的“如果”不正确。但是,如果分配问题的“部分”意味着“部分但不是全部”,如“部分依赖”,那么根据 BCNF 的相关定义,该关系不在 BCNF 中。

    所有候选键都是超级键。但是候选键是不包含任何较小超键的超键。超级密钥涉及 BCNF 定义的不同形式。但是如果根据一个定义和你所知道的违反了 BCNF,那么另一个定义是不可能允许的。

    【讨论】:

    • 嗯,回答你的第一个问题,这是我困惑的一部分。它的语气对我来说意味着“一些但不是全部”。所以你会说,在那种情况下,BCNF 还不够?
    • 我也是这么想的,但我觉得有点模棱两可,是提出这个问题的好机会。
    • 但作业中“part”的歧义与BCNF无关。要么找出它的含义,要么就两种含义都回答它。他们应该首先使用适当的术语,尽管他们可能认为他们是,“部分”应该与“部分”联系在一起。
    • 明天我会看看我们的教授是怎么想的,因为作业要交了,我们会复习的,但我感觉课堂上会有一场关于教科书作者是谁的有趣辩论去。
    • “那个案例”在问题中得到了回答!找出你给出的 BCNF 的定义。
    猜你喜欢
    • 2019-04-19
    • 2011-04-11
    • 2011-05-25
    • 2011-01-28
    • 2012-03-09
    • 2013-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多