将关系转换为第三范式和 BCNF 检查工作

Convert Relation to 3rd Normal Form and BCNF Check Work

我正在尝试将此关系转换为第三范式和 BCNF。

给定关系 R(A1, A2, A3, A4),具有三个 FD

A2, A3 → A4 ;

A3, A4 → A1;

A1、A2→A3。

提供模式的 3NF 和 BCNF 形式并解释原因。

我记得这样做过,但有点生疏了。

这是我的开始。

我拆分了函数依赖A2,A3->A4

因此创建:

R1(A2,A3,A4)

R2(A1, A2, A3)

因为没有更多的功能或传递依赖性,这应该在 3NF 中。

我的问题是这个方法是否正确。

其次,因为 R1 的键 (A2, A3) 和 R2 的 (A1, A2) 都是组合键,BCNF 不也一样吗?

我想知道这是否属实,如果不是,这个关系的 BCNF 是什么?

如果您需要任何进一步的信息,请告诉我。

感谢您的帮助。

鉴于如果每个行列式都是超键或每个确定属性都是质数,则模式在 3NF 中,该模式已经在 3NF 中。事实上,R 的唯一候选键是 {A1, A2}{A2, A3}A2 必须在每个键中,因为它不会出现在依赖项的任何右侧。如果你向它添加 A1 你会发现你获得了一个候选键,因为 A1, A2 决定了所有的属性,如果你尝试向 A2 添加 A3 也是如此。这是不正确的,添加 A4A1A2A3 是主要属性,并且没有函数依赖性违反 3NF。

鉴于如果每个非平凡的依赖项都有一个确定性是超级键,那么模式在 BCNF 中,那么对于依赖项 A3, A4 → A1,你的模式不在 BCNF 中,因为 {A3, A4} 是不是超级键。

应用“分析”算法在BNCF中产生一个分解的模式,你可以在BCNF中使用依赖关系A3, A4 → A1进行分解,这会产生两个关系:

R1 (A1, A3, A4) (with candidate key {A3, A4})
R2 (A2, A3, A4) (with candidate key {A2, A3})

两者都在BCNF中,所以不需要进一步分解,但注意在这个过程中依赖A1 A2 → A3丢失了。