gpt4 book ai didi

database - BCNF、3NF 和候选键

转载 作者:行者123 更新时间:2023-12-03 09:12:52 25 4
gpt4 key购买 nike

我在理解如何确定关系是否符合 BCNF、3NF 以及如何识别关系的候选键时遇到问题。

考虑关系R = (A, B, C, D) 与函数依赖关系:

AB -> C
C -> D
D -> A

问题包括:

a. list the candidate keys of R
b. determine if R is in BCNF or 3NF.

解决办法

a. 3 candidate keys for R are AB, BC, and BD.
b. R is in 3NF, but not in BCNF.

我已通读 What is the difference between 3NF and BCNF?当引用数据库模式中的非任意词时,可以理解 3NF 和 BCNF 之间的区别。当我试图确定问题中给出的减少关系的关系时,我最终迷失了方向。

有人可以解释一下上面的候选键是如何确定的,以及为什么 R 属于 3NF 而不是 BCNF?

最佳答案

您同时提出几个问题。

  1. 如何计算关系的键。一般来说,最简单的方法是计算每个属性组合的闭包并确定哪些是超键。从这组 super 键中,找到最小的 super 键:这些是候选键。

  2. 如何确定关系是否为 BCNF。

为此,您不需要 key 。您需要做的就是测试每个重要的函数依赖关系,左侧是关系的超键。

对于 FD,您如何确定这一点?只需计算 FD 左侧的闭合即可。如果结果是关系的所有属性,则它是一个 super 键。

  • 如何判断关系是否为3NF?
  • FD 必须采用规范形式:右侧有一个属性。

    对于每个重要的 FD,左手边要么是 super 键(如 BCNF),要么右手边是键的一部分(任何键)。

    这是一个非常的精彩视频,它解释了这些差异:

    BCNF vs 3NF

    关于database - BCNF、3NF 和候选键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40335129/

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