在维基百科 BCNF 定义如下
一个关系模式 R 是 Boyce-Codd 范式当且仅当对于它的每一个依赖关系 X → Y,至少满足以下条件之一:
X → Y 是一个平凡的函数依赖 (Y ⊆ X)
X 是模式 R 的超键
我想知道,为什么它被定义为“超级密钥”而不是“最小超级密钥”。
考虑一个关系模式 R(A,B,C,D,E) ,让 (A,B) 是一个键(它的最小)。然后 AB->CDE 成立(在此特定示例中,根据模式的定义,也不存在其他重要的功能依赖项)。(A,B,C) 也是一个超级键。ABC->DE 也成立,但它微不足道。我的疑问是,如果我们只指定最小 superkey 的条件,那么 superkey 的条件已经暗示了不是吗?在我做的所有 BCNF 示例问题中,检查模式是否在 BCNF 中。如果存在所有非平凡函数依赖的 LHS,则为“关键”。然后架构在 BCNF 中。如果它持有一个密钥,那么基于该密钥的所有超级密钥都是如此,不是吗?