将关系转换为第三范式和 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
也是如此。这是不正确的,添加 A4
、A1
、A2
和 A3
是主要属性,并且没有函数依赖性违反 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
丢失了。
我正在尝试将此关系转换为第三范式和 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
也是如此。这是不正确的,添加 A4
、A1
、A2
和 A3
是主要属性,并且没有函数依赖性违反 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
丢失了。