下表:
EmpId State Zip
1 FL 342008
2 CA 342001不是第三范式,因为状态传递地依赖于主键(EmpId)。
所以,如果我像这样打破它:(EmpId,状态)(状态,PIN码)
它在3NF中。
我也可以像这样打破它:(EmpId,状态) (EmpId,PIN),它将再次出现在3NF中。
但在第二种情况下,存在信息冗余,例如
1 FL
2 FL
1 342008
2 342008第二次分解违反了哪个属性?
发布于 2009-04-18 18:25:27
如前所述,存在冗余,因为可以通过邮政编码推断出州,因此,您的表应该是这样的:
EmpId Zip
1 342008
Zip State
342008 FL总是想着什么取决于什么。当然,已经有了standard process to normalize based on set theory。This也可以帮助你。
发布于 2009-04-18 18:13:18
这并没有直接解决您的问题,但严格地说,state列是多余的,因为它可以从邮政编码派生出来(尽管您显示的是六位数的邮政编码,这在美国并不是标准的)。您可以按EmpID和ZIP拆分表,在查找表中单独保留状态。
发布于 2009-09-06 13:57:26
为了直接解决所提出的问题,违反的属性是FFD (对键的完全函数依赖)。
https://stackoverflow.com/questions/763825
复制相似问题