数据库规范化:1-1关系和3NF

时间:2016-12-20 14:39:23

标签: one-to-one database-normalization 3nf

1-1关系和3NF之间是否存在冲突?

例如,请采用下表:

客户表:

CustomerID (Primary Key)
CustomerFirstname
CustomerLastname
CustomerLoginID
CustomerLoginPW

现在让我们假设每个CustomerID只对应一个CustomerLoginID,反之亦然。所以这是一种1-1关系。

据说通常,1-1关系已经标准化,不需要标准化。

但是CustomerLoginPW可以由CustomerID确定,但也可以由CustomerLoginID确定。这打破了3NF,即传递依赖。

因此,如果将上表分成两个表,将CustomerLoginIDCustomerLoginPW放入一个单独的表中,即使关系是1-1? 如同很多人建议的那样,将它留在一张桌子中,似乎打破了3NF?

1 个答案:

答案 0 :(得分:1)

如果任何非素数属性(即不是候选键的一部分的属性)依赖于候选键,则关系在3NF中(对于3NF的定义重要的是候选键,而不是主键)。由于CustomerIDCustomerLoginID都是候选键,因此它们确定了彼此和所有其他属性,因此没有违反3NF的依赖项。

因此,您不需要拆分表,因为关系已标准化。