当关系只包含一个函数依赖关系时,我遇到了理解关系中的超级密钥的问题。
当考虑关系R(A,B,C,D,E),其中A是主键并且具有函数依赖性A-> B时,A可以被认为是关系的超级密钥,因为只有一个FD?或者是否需要扩展功能依赖性以包括关系(C,D,E)的未提及部分以便找到超级密钥?
我很困惑,因为我在网上看到的所有材料都包含多个功能依赖,所有这些都包含了关系中的所有属性,所以我不知道如何解释未使用的属性如果有人可以帮助澄清这一点,我会很感激!
答案 0 :(得分:1)
如果唯一明确提到的关系模式的FD是A⟶B,则存在隐含的,平凡的FD {A,B,C,D,E}⟶{A,B,C,D,E}。鉴于A⟶B,我们可以推断出:
正如Catcall在评论中所说,提到A是R的主键。如果A是主键,那么每个单例FDA⟶B,A⟶C,A⟶D和A⟶E(或者,统称为A⟶{B,C,D,E})适用,并且不需要单独调出A⟶B.如果A是R的主键,则根本不需要分解R;这个表确实没有什么有趣的,因为它根据可用信息被归一化为5NF(假设没有未说明的非平凡FD,MVD或JD)。
如果A是主键,那么它也是超级键,但不是正确的超级键。 A和一个或多个其他属性的任何属性组合也是一个超级密钥,并且是一个合适的超级密钥。
答案 1 :(得分:1)
当考虑关系R(A,B,C,D,E)时,其中A是主键 并且利用函数依赖性A-> B,可以将A视为超级 因为只有一个FD,关键是关系吗?
如果给出,A是R的主键,那么根据定义,你有FD A-> BCDE。它也遵循
如果A是R的主键,则按定义遵循A也是候选键和R的超级键。
答案 2 :(得分:1)
让我们简单一点: 以下是候选和主要键
的定义超级密钥
超级键代表键的超集。
超级密钥是一组共同采用的一个或多个属性,可以唯一地标识所有其他属性。
候选键
候选键是超级键,没有适当的子集是超级键。
换句话说,候选键是最小的超级键。
主键:
它是数据库设计者选择的候选键,用于标识实体集中的实体。
主键是最小超级键。在ER图中,主键由主键属性加下划线表示。
理想情况下,主键仅由单个属性组成。但是可以使用由多个属性组成的主键。