归一化 3NF 和 BCNF

问题描述 投票:0回答:1

我在(A,B,C,D)上有关系 R 和函数依赖

  • A -> B,B -> A,CDB -> A,CDA -> B

候选键是CDA和CDB。

第三范式表示非素数属性之间不能存在函数依赖。非素数属性是未出现在候选键之一中的属性。

这是否意味着这种关系属于 3NF,因为相互依赖的 A 和 B 都是候选键之一的一部分?

如果是这样,由于 BCNF 规定每个行列式都必须是候选键,那么在这种情况下 A 和 B 不是候选键是否违反了 BCNF?

database database-normalization
1个回答
4
投票

如果您给出的三个 FD 应该是 R 满足的 FD 的规范覆盖,那么您得出的结论是 CDA 和 CDB 必定是候选键,这是正确的。 (您没有声明 FD 是规范的,如果不是,那么还有其他方法可以满足相同的依赖关系,但我猜问题的意图是候选键必须仅从您给出的内容中推断出来。)

如果 CDA 和 CDB 实际上是 R 的候选键,那么你是对的,R 满足 3NF 但不满足 BCNF。

© www.soinside.com 2019 - 2024. All rights reserved.