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