3NF格式的关系

时间:2015-04-15 09:07:36

标签: database database-normalization functional-dependencies 3nf

我正在做一些包含以下内容的教科书问题。

以下哪种关系属于第三范式(3NF)?

a)  R(ABCD) FD's: ABD → C ; CD → A ; AC → B ; AC → D
b)  R(ABCD) FD's: ABD → C ; A → B ; AB → C ; B → A
c)  R(ABCD) FD's: AB → C ; ABD → C ; ABC → D ; AC → D
d)  R(ABCD) FD's: AD → C ; D → A ; A → C ; ABC → D

我觉得所有四种选择都是错的,但我没有答案。有人可以帮帮我吗? R表示关系,FD是功能依赖的短期。

(免责声明:这不是来自测试/家庭作业,它给予任何信任,我只是想确保我理解正确的概念)

2 个答案:

答案 0 :(得分:0)

证明某种东西的某种形式是通过试图打破它。很难描述为什么而不是3NF。话虽如此,你能否告诉我为什么你认为每个人都不满足3NF所以我们可以从那里工作?

这是我所知道的: b)断开2NF,因为候选密钥ABD可以分解为AB,这决定了非素数C. c)只有候选密钥是AB。 AB - > C.D通过传递关系ABC确定 - > D.打破3NF。 d)候选键BA确定C.但是A - > C,因此打破2NF。

我找不到任何错误,所以这是我对正确答案的猜测。

答案 1 :(得分:0)

让我用简单的话来解释: 3NF的条件:

  

非素数属性应仅依赖于超级键

对于选项A,

  

通过关闭属性

     

<强> AC + = ABCD

因此,A,C是主要属性,B,D是非主要属性

  

由于所有非素数属性都依赖于超级密钥AC   选项A 位于 3NF

对于选项B,

  

通过闭包属性,

     

<强> ABD + = ABCD

因此,A,B,D是主要属性,C是非主要属性

  

由于C,非素数属性取决于不是超级键的AC,

     

选项 B 不在 3NF

对于选项C,

  

通过闭包属性,

     

<强> AB + = ABCD

因此,A,B是主要属性,C,D是非主要属性

  

由于D非主要属性取决于不是超级密钥的AC

     

选项 C 不在3NF

对于选项D,

  

通过闭包属性,

     

<强> AB + = ABCD

因此,A,B是主要属性,C,D是非主要属性

  

由于C,非素数属性取决于不是超级键的AD,

     

选项 D 不在 3NF

希望,它有所帮助!!