Database design 给定的数据库关系是3NF还是2NF?

Database design 给定的数据库关系是3NF还是2NF?,database-design,relational-database,database-normalization,Database Design,Relational Database,Database Normalization,下面给出的是一个数据库关系R,它是一组FD: 从FDs集合中,很明显候选密钥是AB和BC 对于这些候选键,我认为依赖项A->C和C->A表示部分依赖项(因为A可以用C而不是BC来确定;C和AB的参数类似) 因此,在我看来,这种关系是1NF(2NF条件不满足) 然而,根据我的教授对这个问题的评估,这个关系是3NF,因为对于给定的每个依赖项,左边要么是超级键(AB,AC),右边要么是候选键(C,a)的一部分。我同意3NF符合这些标准,但除了这些标准外,第一个标准是R应该在2NF中(显然不是…)在本

下面给出的是一个数据库关系R,它是一组FD:

从FDs集合中,很明显候选密钥是ABBC

对于这些候选键,我认为依赖项A->CC->A表示部分依赖项(因为A可以用C而不是BC来确定;C和AB的参数类似)

因此,在我看来,这种关系是1NF(2NF条件不满足)

然而,根据我的教授对这个问题的评估,这个关系是3NF,因为对于给定的每个依赖项,左边要么是超级键(AB,AC),右边要么是候选键(C,a)的一部分。我同意3NF符合这些标准,但除了这些标准外,第一个标准是R应该在2NF中(显然不是…)

在本例中

AB和BC是候选密钥

D是非素数属性

因为,不存在对非素数属性的部分依赖

非素数属性仅依赖于超级键

该关系在3NF中,但不在BCNF 因为所有左手边都不是超级键


希望,这有帮助

是的,你的教授是对的。它在3NF中,但不在BCNF中。你为什么说它不在2NF中?在问题中说明了。。我认为FDs A-->C和C-->A是2NF不允许的部分依赖项。当右侧部分是非素数属性时,2NF不允许。这两个正确的部分(A,C)都是基本属性。好吧。我认为它适用于任何部分依赖!谢谢@ypercube