Boyce-Codd Normal Form中的关系可以在主要属性之间具有功能依赖性吗?

时间:2011-07-20 15:04:06

标签: database database-normalization

我的问题非常简单。从我所看到的,似乎从1NF,2NF,3NF到Boyce-Codd形式的归一化似乎主要涉及非主要属性的问题。如果我没有记错的话,下表是Boyce-Codd形式:

R(A,B,C), F = {AB->C, A->B}

A,B是复合主键,对我来说似乎很奇怪。

我在这里错过了什么吗?

2 个答案:

答案 0 :(得分:1)

如果A-> B,那么{AB}不可能是主键,因为它不是最小的。因此假设 A 是唯一的密钥,则R相对于依赖性AB-> C,A-> B至少在BCNF中。

答案 1 :(得分:0)

如果A确定B(A-> B),则说AB确定C(AB-> C)意味着A确定C(A-> C)。

说A-> B表示没有两个记录,其中B列具有不同的值,但A列具有相同的值。

说AB-> C表示没有两个记录,其中C列具有不同的值,但A和B列均具有相同的值。尽管由于A-> B,我们已经知道,如果A列具有相同的值,那么B列也具有相同的值。因此,我们可以说,看到A-> B然后AB-> C意味着A-> C。

因此,R中的FD是:

  1. A-> B
  2. A-> C

要使关系处于BCNF中,必须满足以下条件:

  1. 它必须已经在3NF中
  2. 行列式不是超级键的地方一定不能存在非平凡的功能依赖

正如您所说,由于您已经在3NF中具有关系,因此我们满足第一个条件。 正如在所有R的FD中一样,行列式是一个超键(A是一个超键),我们满足第二个条件。

因此,R在BCNF中。