首页
学习
活动
专区
圈层
工具
发布

3NF范式
EN

Stack Overflow用户
提问于 2011-09-24 16:41:10
回答 1查看 839关注 0票数 1

我有一个关于3NF范式的问题:

代码语言:javascript
复制
Normalize, with respect to 3NF, the relational scheme E(A, B, C, D, E, F) 
by assuming that (A, B, C) is the unique candidate key and that the following additional functional dependencies hold: 
    A,B -> D 
    C,D -> E 
    E -> F 

我的理解是,如果我应用3NF,即模式是3NF,如果所有属性都是3NF

非素数不依赖于任何关键候选人,结果应该是:

E'=(A,B,C,E,F),E‘= (B,D),E''= A,B,C,D,F),E’=( D,E),E‘= (A,B,C,D,E),

E‘= (E,F)

但我觉得我错了..。

有人能帮我理解这个问题吗?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2011-09-24 17:31:46

当涉及到正确的规范化时,没有任何东西可以代替理解正式的定义。如果你还在努力建立这种理解,有一个可爱的小助记符,人们用它来帮助记住3NF的本质,并判断他们正在看的表是否是3NF。

“钥匙,全钥匙,除了钥匙什么都没有,所以帮帮我吧,科德。”

你是怎么应用的?关系的每个属性都必须依赖于键。它必须取决于整个钥匙。我不能依赖任何不是关键的东西。当你看你的例子时,很明显存在一些问题,你需要正常化。您需要达到这样一个点,即违反3NF的每个非键列都脱离了原来的关系。每个非键列、D、E和F都违反了3NF。

请注意,附加的函数依赖项涵盖了原始关系中的所有非键列。这些附加的函数依赖关系中的每一个都将产生一个关系:

{ A B D}-这解决了属性D的3NF问题

{ C D E}-这解决了属性E的3NF问题

{ E F}-这解决了属性F的3NF问题

你原来的关系还有什么可掩盖的?除候选密钥外,什么都没有:

{ A B C }

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

https://stackoverflow.com/questions/7540357

复制
相关文章

相似问题

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