第2题的内容是:
单选题
已知关系R(A,B,C,D)和R上的函数依赖集F={B→D,AB→C},候选码是(1),关系R属于(2)。
选项
A. 1NF
B. 2NF
C. 3NF
D. BCNF
分析
这道题目考察的是关系数据库的范式(Normal Form)知识点。
范式的相关内容:
-
第一范式(1NF):要求关系中的每个域都是原子性的,即每个字段都是不可分割的数据项。
-
第二范式(2NF):在1NF的基础上,要求所有非主属性完全依赖于候选键。也就是说,没有部分依赖于候选键。
-
第三范式(3NF):在2NF的基础上,要求没有任何属性依赖于其他非主属性(即不存在传递依赖)。
-
博耶-科得范式(BCNF):是3NF的加强版,要求任何非平凡的函数依赖X→Y,X都必须是超键。
详细介绍:
-
1NF:这是最基本的范式,要求关系中的每个字段都是不可再分的数据项,即每个字段值都是原子的,不可分割的。
-
2NF:在满足1NF的基础上,要求所有非主属性完全依赖于任何候选键,不能只依赖于候选键的一部分。如果存在部分依赖,就需要分解关系模式,消除部分依赖。
-
3NF:在满足2NF的基础上,要求没有任何属性依赖于其他非主属性,即不存在传递依赖。如果存在传递依赖,就需要进一步分解关系模式。
-
BCNF:是3NF的加强,要求对于任何非平凡的函数依赖X→Y,X都必须是超键。如果存在X→Y,而X不是超键,那么需要分解关系模式。
判断关系R属于哪个范式:
- 已知关系R的函数依赖集F={B→D,AB→C},候选码是AB。
- 由于AB是候选码,B→D和AB→C都是完全依赖于候选码的,所以关系R至少满足2NF。
- 没有非主属性依赖于其他非主属性,所以关系R满足3NF。
- 要判断是否满足BCNF,需要检查每个函数依赖的左边是否是超键。在这里,B→D中B不是超键,所以不满足BCNF。
结论
- 因此,关系R属于3NF。所以正确答案是C. 3NF。