首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >这个3NF分解做得对吗?

这个3NF分解做得对吗?
EN

Stack Overflow用户
提问于 2019-03-27 17:16:28
回答 1查看 1.1K关注 0票数 0

关系R(ABCDEF)具有以下功能依赖关系: A-> B ->C A->D A->E,F E->F 声明这是最强的范式,然后将其转换为第三范式。

我认为这种关系是第一范式,因为存在部分依赖关系,而候选键是A,因此将其转换为第二/第三范式,我将R(ABCDEF)分解为

代码语言:javascript
复制
R1(A,B,D,E,F) 
R2(B,C) 
R3(E,F)

这些不是以第三种形式出现的吗?我做过分解了吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-27 18:08:43

当非素属性依赖于候选键的适当子集(所谓的部分依赖项)时,模式不在2NF中(例如,请参见维基百科)。因为在您的模式中,唯一的候选键是A,所以这是不可能的,所以模式在2NF中。

您在3NF中的分解是不正确的,因为在relation R1(A B D E F)中,依赖项E->F保持,属性F不是素数,并且不依赖于一个不是超级键的行列式。

正确的分解是:

代码语言:javascript
复制
R1(A B D E)
R2(B C)
R3(E F)

注意,在分解的情况下,R3包含在R1中,这是不可能的。

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

https://stackoverflow.com/questions/55383044

复制
相关文章

相似问题

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