小编sta*_*ken的帖子

BCNF:寻找实际使用超级键而不是候选键的示例

Boyce-Codd 范式的定义指出所有非平凡函数依赖的决定因素必须是超键。

我发现 BCNF 中的所有关系示例都使用了候选键。我正在寻找一个实际上有一个超级键作为行列式的例子,它不是候选键。

我没有想出一个只使用无法转换为使用候选键的超级键的关系。

假设我们有一个候选键和一个额外的函数依赖关系,其中一个超级键作为行列式。

R1(A,B,C)
{A}
A,B -> C
Run Code Online (Sandbox Code Playgroud)

这个额外的 FD 是多余的,因为它包含一个明显确定其他属性 (A -> C) 的候选键。

尝试使用两个候选键构建另一个示例也是无用的。

R2(A,B,C,D)
{A,B},{B,C}
A,B,C -> D
Run Code Online (Sandbox Code Playgroud)

这与上面的问题完全相同。

我实际上想知道是否有没有候选键的例子。但为什么定义会比必要的更广泛?或者定义是否等效,因为依赖项总是可以转换?

database key relational-database database-normalization bcnf

3
推荐指数
1
解决办法
912
查看次数