我正在准备考试,在我的课文上,我发现了一个我不理解的例子。
在关系R(A,B,C,D,E,F)
上,我得到了以下功能依赖:
FD1 A,B -> C
FD2 C -> B
FD3 C,D -> E
FD4 D -> F
现在我认为所有FD都在3NF(没有在BCNF中),但文本说FD1和FD2在2NF,FD3和FD4在1NF。我在哪里犯错误(或文字错误)。
我发现替代密钥是ABD和ACD
答案 0 :(得分:2)
<强>术语强>
非常不恰当地说:“功能依赖在某种正常形式中”,因为只有关系模式可以 (或不是)正常表格。可以说是功能依赖违反某个范式(以便包含它的模式不在该范式中)。
普通表格
可以证明,如果给定的每个FD都具有超级密钥作为决定因素,则关系模式在BCNF中。因为,如果你已经正确注意到,这里唯一的候选键是ABD和ACD,每个依赖都违反了Normal Form。因此,架构不在BCNF中。
要在3NF中,关系模式必须具有所有给定的功能依赖性,使得行列式是超级密钥,或者确定性的每个属性是主要属性,即它是某个候选键的属性。在您的示例中,对于B和C,这是正确的,但对于E和F则不是,因此FD3和FD4违反3NF。因此,架构既不在3NF中。
2NF仅具有历史意义,在规范化理论中并不特别有用,它是一种正常形式,其关系模式没有功能依赖关系,其中非主要属性依赖于部分键。对于FD3和FD4,这不是真的,因此该关系既不是2NF。