全码与关系范式

最近复习数据库原理,中国人民大学慕课中出现了这样一道思考题:

如果一个关系模式R的主码是全码, 则R至少可以达到第几范式?

思考过后,我觉得答案应当是“BCNF”。而网上的很多答案是“3NF”,我觉得这是错误的。

 

首先,如果R是全码,意味着所有的属性都是主属性,没有非主属性,因此符合3NF。

其次,主属性不可能对码存在部分函数依赖或传递函数依赖。

假设R(A,B,C,D),若有部分函数依赖,如(A,C)->B,那么将违背“全码”这一条件,此时的码应当是(A,C,D)。

另外,不可能存在传递函数依赖,因为任何主属性都直接依赖于(A,B,C,D)。

 

综上,满足全码的关系模式必定符合BCNF。

 

另外:在关系数据库中,任意一个二元关系模式R至少可以达到第几范式?

答案:BCNF。

你可能感兴趣的:(数据库原理)