在BCNF定义中,为什么给出“超级键”而不是“最小超级键”?

时间:2019-01-11 12:55:38

标签: key database-normalization functional-dependencies bcnf candidate-key

在维基百科中,BCNF的定义如下

  

当且仅当对于每个依赖关系X→Y,至少满足以下条件之一时,关系模式R才处于Boyce–Codd范式:

     
    

X→Y是一个小函数依赖项(Y⊆X)

         

X是架构R的超键

  

我想知道,为什么将其定义为“超级键”而不是“最小超级键”。

考虑一个关系模式R(A,B,C,D,E),让(A,B)为键(最小)。然后AB-> CDE成立(在此特定示例中,根据架构的定义,也没有其他非平凡的功能依赖项存在)。 (A,B,C)也是一个超键。 ABC-> DE也成立,但它微不足道。我的疑问是,如果仅指定最小超键的条件,就已经暗示了超键的条件,不是吗? 在我所做的所有BCNF示例问题中,都检查了Schema是否在BCNF中。如果存在所有非平凡的功能依赖项的LHS,则为“键”。然后,该模式位于BCNF中。如果它持有一个键,那么对于基于该键的所有超级键都适用,不是吗?

0 个答案:

没有答案