3NF中的循环依赖

时间:2016-11-18 10:57:58

标签: database database-design normalization database-normalization

我有一个关于规范化(3NF)的快速问题。如果我有一个定义为...的表

客户(用户名,firstName,lastName,年龄,性别,种族)

用户名确定firstName,lastName,年龄,性别,种族

但是..为了参数,我们也可以假设firstName,lastName可以用来唯一地标识表中的一行,所以firstName,lastName确定用户名,年龄,性别,种族

3NF中的表是因为某些非素数属性(firstName,lastName)可用于确定表中的其他属性,但PK(用户名)可以确定非素数属性然后用于确定其他属性。

据我所知,由于循环依赖问题,这不是BCNF,但我希望它至少在3NF。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:4)

圆形不相关,它在BCNF中,以及每个较低的NF。 BCNF的定义是,非平凡FD的所有决定因素都是超密钥。如果有多个CK(候选键),那就这样吧。 CK将确定其他CK的属性,因为CK确定每个属性。

PK与正常化(以及所有其他关系理论)无关,CK很重要。 PK只是你决定称之为PK的CK。

这里有两个CK,{username}和{firstName,lastName}。主要属性,即CK中的主要属性,是username,firstName& lastName的。