3NF 中的循环依赖

Circular Dependencies in 3NF

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

客户(用户名,名字,姓氏,年龄,性别,种族)

并且用户名确定名字、姓氏、年龄、性别、种族

但是..为了论证我们也可以假设 firstName, lastName 可以用来唯一标识 table 中的一行,所以 firstName, lastName 决定 username、年龄、性别、种族

是3NF中的table,因为一些非素数属性(firstName, lastName)可以用来确定table中的其他属性,但是PK(username ) 可以确定非主要属性,然后用于确定其他属性。

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

在此先感谢您的帮助。

循环是无关紧要的,它在 BCNF 和每个较低的 NF 中。 BCNF 的一个定义是,非平凡 FD 的所有行列式都是超键。如果有多个 CK(候选密钥),那就这样吧。 CK 将决定其他 CK 的属性,因为 CK 决定所有属性。

PK 与归一化(以及所有其他关系理论)无关,CK 很重要。 PK就是你决定叫PK的CK。

这里有两个 CK,{username} 和 {firstName, lastName}。主要属性,即 CK 中的属性,是用户名、名字和姓氏。