首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于第三范式的问题

关于第三范式的问题
EN

Stack Overflow用户
提问于 2009-04-18 17:45:13
回答 3查看 383关注 0票数 0

下表:

代码语言:javascript
复制
EmpId  State   Zip
1       FL   342008
2       CA   342001

不是第三范式,因为状态传递地依赖于主键(EmpId)。

所以,如果我像这样打破它:(EmpId,状态)(状态,PIN码)

它在3NF中。

我也可以像这样打破它:(EmpId,状态) (EmpId,PIN),它将再次出现在3NF中。

但在第二种情况下,存在信息冗余,例如

代码语言:javascript
复制
1  FL
2  FL

1 342008
2 342008

第二次分解违反了哪个属性?

EN

回答 3

Stack Overflow用户

发布于 2009-04-18 18:25:27

如前所述,存在冗余,因为可以通过邮政编码推断出州,因此,您的表应该是这样的:

代码语言:javascript
复制
EmpId Zip
1     342008

Zip    State
342008 FL

总是想着什么取决于什么。当然,已经有了standard process to normalize based on set theoryThis也可以帮助你。

票数 1
EN

Stack Overflow用户

发布于 2009-04-18 18:13:18

这并没有直接解决您的问题,但严格地说,state列是多余的,因为它可以从邮政编码派生出来(尽管您显示的是六位数的邮政编码,这在美国并不是标准的)。您可以按EmpID和ZIP拆分表,在查找表中单独保留状态。

票数 0
EN

Stack Overflow用户

发布于 2009-09-06 13:57:26

为了直接解决所提出的问题,违反的属性是FFD (对键的完全函数依赖)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/763825

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档