0

我很难理解 3 Normal 形式。

3 NF:2 NF + 无转换

所以,例如:如果我有,

A -> B
B -> C

那么上面是一种过渡关系,因此不会在 3 NF 中?我理解正确吗?

但是在这个答案中,数据库规范化到底是做什么的?, by paxdiablo, 它说,

Third normal form (3NF) - 2NF and every non-key column in a table depends on nothing but the key.据此,它将在3 NF中。我哪里错了?

4

2 回答 2

1

一个关系在 3NF 中,如果它在 2NF 中并且:

  1. 每个属性都依赖于一个键,
  2. 或者,如果一个属性依赖于一个非键,那么它是素数。

(作为素数意味着它属于一个键)。

参见例如Wikipedia

如果只有第一个条件成立,则关系是Boyce-Codd 范式,即:

  1. 每个属性都依赖于一个键

因此,在您的示例中,如果关系只有三个属性A和两个依赖项,则它B不在3NF中,因为它不是素数,并且依赖于,这不是关键。另一方面,如果还有其他属性,并且 C 是键或键的一部分,则它可能在 3NF 中(但这取决于其他功能依赖关系,应满足上述条件)。CCB

2NF 表示每个非主属性取决于每个完整的候选键,而不是它的一部分。例如,如果一个关系有属性A,BC, 唯一的键是AB, 和B -> C, 那么这个关系不在2NF 中。

于 2015-07-25T17:50:07.207 回答
0

您正在尝试的 2 部分 3nf 定义是:

  • 2NF 成立,并且 R 的每个非主属性都非传递地依赖于每个超键。(当存在 X → Y 和 Y → Z 不是Y → X 的 Y 时,X 可传递地确定 Z。)

3NF的另一个定义是:

  • 对于每个非平凡的 FD X → Y,要么 X 是超键,要么 Y 中但不在 X 中的属性是素数。(当 X 包含 Y 时,X → Y 是微不足道的。)

那么 BCNF 是:

  • 对于每个非平凡的 FD X → Y,X 是一个超级密钥

看到这个答案

如果您的示例的唯一列是 A、B 和 C,并且您的两个 FD 形成最小覆盖,那么唯一的候选键是 A,C 依赖于非超级键,因此它不在 3NF(或 BCNF)中。

您(错误)使用术语如此草率,以至于您的句子没有任何意义。了解这些术语以及如何在定义中使用它们来指代各种事物,并以这种方式使用它们来指代适当的事物。并从(信誉良好的)教科书中获取您的定义。

于 2015-08-06T06:03:37.547 回答