关系数据库的范式(Normal Form)知识点

第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)知识点。

范式的相关内容:

  1. 第一范式(1NF):要求关系中的每个域都是原子性的,即每个字段都是不可分割的数据项。

  2. 第二范式(2NF):在1NF的基础上,要求所有非主属性完全依赖于候选键。也就是说,没有部分依赖于候选键。

  3. 第三范式(3NF):在2NF的基础上,要求没有任何属性依赖于其他非主属性(即不存在传递依赖)。

  4. 博耶-科得范式(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。
posted @ 2024-10-08 13:59  ~博客~  阅读(127)  评论(0)    收藏  举报