几个规范化问题

时间:2011-07-17 22:40:44

标签: database normalization database-normalization

我的问题是:


1)如果我有关系R(A,B,C)AB主键和F = {},我可以假设C取决于AB吗?我会说不,但我只想确认。


2)我理所当然地认为AB -> CDEAB -> CAB -> DAB -> E以及AB -> CE AB -> D相同{1}}。我是对的吗?


3)取R(A,B,C,D) AB作为F = {AB->C}的主键2NF。这是D吗?我会说不,因为R(K, L, M, N, O,P) 不依赖于任何其他属性,更不用说主键了!


4)我试图理解是否用

KL

F = { KL->MN, KL->OP, M->N, O->P } 主键

R

2NF位于3NFPN2NF都依赖(尽管间接)整个主键。是否足够进入R?如果是,我会说3NF不在3NF,因为{{1}}关系上的非素数属性之间不应存在依赖关系,对吗?

由于

1 个答案:

答案 0 :(得分:1)

我假设这是家庭作业,所以我指示方向,而不是答案。

  

1)如果我有关系R(A,B,C),AB是主键,F =   {},我可以假设C取决于AB吗?我说不,但我只是要求   确保。

如果您没有获得任何功能依赖,您是否知道如何识别功能依赖?在这种情况下,你问自己这个问题:"给定{A,B}的值,这些值是否为{C}确定一个且只有一个值?"如果答案是"是",则您具有功能依赖性;如果答案是" no",那么你就不会。

  

2)我理所当然地认为AB - > CDE与AB - >相同;   C,AB - > D,AB - > E和说AB - > CE,AB - > D.我是对的吗?

我不会说它"与说"相同。我要说的是,从功能依赖AB-> CDE,您可以推导出所有其他功能依赖。

  

3)取R(A,B,C,D),AB为主键,F = {AB-> C}。这是   在2NF?我说不,因为D并不依赖于任何其他属性,所以   只有主键!

见第1号。


在下面的评论中扩展问题。 。

  

如果你说,{A,B} - > {每隔一列},那么为什么不是所有的1NF   2NF的关系?

因为不是每个1NF表都有一个多列主键,并且并非每个 具有多列主键的1NF表都有其他列只由该键的一部分确定。

  

想象一下PK是一个人的ID。现在想象唯一的另一个   该关系中的属性是发现的鸭子数量   亚利桑那州' 97。 A和B之间没有任何关系   在现实世界中,从你所说的,我们假设A - >乙

哦,但这两列之间的关系。它们之间存在关系,因为将它们放在同一个表中。在该表中,如果您知道A的值,那么您知道B的唯一值。(如果A确定了B的多个值,则A不可能是主键。)