我有一个关于诺明化(3NF)的快速问题。如果我有一个表被定义为..。
Customer(username,firstName,lastName,年龄,性别,种族)
用户名确定firstName,lastName,年龄,性别,种族
但是..。为了便于论证,我们还可以假设firstName,lastName可以用来唯一地标识表中的一行,因此firstName,lastName可以确定用户名、年龄、性别、种族。
是3NF中的表,因为一些非素数属性(firstName,lastName)可以用来确定表中的其他属性,但是PK (username)可以确定非素数属性,然后用来确定其他属性。
我知道这不是在BCNF中,因为循环依赖问题,但我希望它至少在3NF。
提前感谢您的帮助。
发布于 2016-11-18 11:42:27
循环是无关的,它在BCNF和每一个较低的NF中。BCNF的定义是,非平凡FDs的所有决定因素都是超级键.如果有多个CKs (候选键),那么就这样吧。CKs将确定其他CKs的属性,因为CK决定每个属性。
PKs与归一化(和所有其他关系理论)无关,它很重要。PK只是你决定称之为PK的CK。
这里有两个CKs,{username}和{firstName,lastName}。主要属性是用户名,firstName & lastName。
https://stackoverflow.com/questions/40675348
复制相似问题