给定关系模式学生(学号,课程号,名次),若每一名学生每门课程有一定的名次,每门课程每一名次只有一名学生,则以下叙述中错误的是()。
A.(学号,课程号)和(课程号,名次)都可以作为候选键
B.只有(学号,课程号)能作为候选键
C.关系模式属于第三范式
D.关系模式属于BCNF
参考答案:B
解析:
对于这类问题,可以逐一进行分析。
候选键的概念是:如果一个属性(字段)集能够唯一标识元组(记录),而且不含有多余的属性,则该属性集称为候选键。(学号,课程号)显然是可以唯一标识一条记录的。而由于每门课程每一名次只有一名学生,因此(课程号,名次)也能够唯一地标识一条记录。因此描述A是正确的。
描述B显然与描述A矛盾,因此显然是错误的。
在2NF的基础上,如果每个非主属性都不传递依赖于键(注:主属性是指候选键中的任意一个属性,非主属性则是指候选键之外的属性),就满足了3NF。由于两个可能的候选键都是由两个属性构成的,非主属性只有一个,显然不存在传递依赖,因此满足3NF要求,即描述C也是正确的。
BCNF是修正的第三范式,也称为扩充的第三范式。如果每个属性都不传递依赖于候选键,则满足BCNF。满足BCNF的关系模式有以下特点:所有的非主属性都对每个键完全函数依赖;所有的主属性对每一个不包含它的键,也是完全函数依赖;没有任何属性完全函数依赖于非键的任何一组属性。同理,在这个关系模式中也是不存在传递依赖的,因此也满足BCNF,即描述D也是正确的。