全主属性关系的最低范式:为何是BCNF而非3NF?
全主属性关系的范式判定
核心范式规则回顾
- 1NF:属性不可再分,是关系数据库的基础要求。
- 2NF:消除非主属性对候选键的部分依赖。
- 3NF:两种等价判定方式:
- 消除非主属性对候选键的传递依赖;
- 对于任意非平凡函数依赖
X→Y,要么X是超键,要么Y是主属性。
- BCNF:对于任意非平凡函数依赖
X→Y,X必须是超键(候选键的超集)。
全主属性关系的范式分析
当关系中所有属性都是主属性(即每个属性都属于至少一个候选键)时:
- 必然满足3NF:
因为不存在非主属性,所以不会出现非主属性对候选键的部分或传递依赖;同时,任何函数依赖的Y都是主属性,完全符合3NF的等价判定规则。 - 不一定满足BCNF:
可以构造反例验证:
比如关系R(学生, 课程, 教师):- 候选键为
(学生, 课程)和(学生, 教师)(学生+课程可确定对应教师,学生+教师可确定对应课程); - 存在函数依赖
课程→教师、教师→课程; - 这里
课程不是候选键(单独课程无法确定学生),但课程→教师是非平凡函数依赖,不满足BCNF的要求,但所有属性都是主属性,符合3NF的判定。
- 候选键为
因此,全主属性的关系至少满足3NF,而非BCNF,课件给出的答案存在偏差。
内容的提问来源于stack exchange,提问作者Dani Cruz
相关产品推荐
相关产品推荐

