1

来自数据库管理系统书:给定关系 SNLRWH(每个字母表示一个属性)和以下功能依赖关系:

  • S->SNLRWH (S 是 PK)
  • R->W

我的尝试:

  • 首先,它不是 3NF:对于第二个 FD,R 既不包含 W,R 也不包含密钥,W 也不是密钥的一部分。
  • 其次,它是/不是2NF。如果我们检查第二个 FD,W 依赖于 R,而 R 又不是密钥的一部分。卡住。
4

2 回答 2

3

如果候选键的某个适当子集作为行列式出现在您的一个(非平凡)依赖项的左侧,则违反了 2NF。问问自己是否有任何决定因素是候选键的子集。

通常只有当关系具有复合键时才违反 2NF - 具有多个属性的键。如果空集 (∅) 恰好是行列式,则仅具有简单键(单个属性键)的关系在技术上可能违反 2NF 这种情况相当不寻常,很少被认为值得考虑,因为它们显然是“错误的”。为了完整起见,这里有一个特殊情况的有趣示例。在以下关系中,Circumference 和 Diameter 都是候选键。违反 2NF 的相关性是 ∅ -> Pi,即周长与直径的比值。

圈子关系

于 2013-05-17T20:08:35.027 回答
-1

2NF 与部分密钥依赖有关。为了使关系无法通过 2NF 测试,该关系必须具有至少一个候选键,该候选键至少具有两列。

由于您的关系只有一个候选键,并且该候选键只有一列,因此您不可能有部分键依赖关系。它通过了 2NF 的测试。

于 2013-05-17T18:34:14.613 回答