它是否在2NF?

时间:2018-01-27 13:11:35

标签: database database-design relational-database database-normalization

R1(A,B,C,D)是一种关系。规定每个属性仅具有原子值,并且存在一组依赖性(BD-> C,C-> A)。我很清楚这种关系是在1NF,但它是在2NF吗?我的意思是,BD显然是主键,我们可以得出结论BD-> A,因此所有属性都取决于键。当然,它不在3NF中,因为3NF不接受传递依赖性,但这不应该是2NF的问题。我有疑虑,因为有些人告诉我,这不可能在2NF。我的推理是否正确?它是否在2NF?

1 个答案:

答案 0 :(得分:1)

如果任何非素数(即不属于候选键)属性在功能上完全依赖于候选键,则关系模式为2NF。

这个定义意味着,如果可以导出依赖关系X→A,其中A不是主要属性而X是候选关键字的适当子集,那么这种依赖性违反了2NF。

由于此关系的(唯一)候选键是BD,因此属性A和C是非素数。

由于给出BD→C,并且可以导出BD→A,而既不能导出B→A或D→A,那么关系是2NF。

请注意,2NF仅具有历史意义,并且仅针对BCNF,3NF和更高的正规形式在许多书籍(以及正式算法)中讨论了规范化过程。