关于关系模式R(ABCD)最高范式判定的疑问
问题解答
原问题引用
关系模式R(ABCD)满足如下非平凡函数依赖(FD):
{ A -> B ; B -> A ; A -> D ; D -> B }
R的最高范式是什么?
你的推理与修正
初始推理步骤
- 移除冗余依赖
A -> B,得到FD覆盖集:{ B -> A ; A -> D ; D -> B } - 计算属性闭包:
{A}+ = {B}+ = {D}+ = ABD - 确定候选键:由于C未参与任何FD,候选键必须包含C,因此AC、BC、DC均为候选键(验证:
{AC}+ = {BC}+ = {DC}+ = ABCD) - 初始误判:认为
A -> B导致B对候选键AC存在部分依赖,因此判定R不满足2NF,与给定的3NF结论矛盾。
修正后的推理(符合定义)
根据讲义中的范式定义:
部分依赖:非键属性仅由复合主键的一部分而非全部决定
2NF:关系模式R满足2NF当且仅当它满足1NF,且所有非键属性完全依赖于主键
- 键属性判定:候选键为AC、BC、DC,因此A、B、D都是键属性,唯一的非键属性是C
- 2NF验证:2NF的约束仅针对非键属性,键属性之间的依赖(如
A->B)不属于2NF的违规范畴;非键属性C没有任何函数依赖,自然完全依赖于所有候选键,因此R满足2NF - 3NF验证:3NF要求非键属性不传递依赖于候选键,同时允许键属性之间的函数依赖。这里唯一的非键属性C无依赖关系,键属性间的依赖也符合规则,因此R满足3NF。
结论
- R的最高范式是3NF
- 你最初的推理错误在于:误将键属性之间的依赖纳入了2NF的约束范围,而2NF仅对非键属性的完全依赖做要求
- 你的修正推理是正确的
内容的提问来源于stack exchange,提问作者MInH THiỆn
相关产品推荐
相关产品推荐

