0

下面的关系是否正确划分为 BCNF 中的关系:
R( a,b ,c,d,e) - a 和 b 是主键,并且存在依赖关系,例如:

a → c
a → e
c → e

我将上述关系拆分为:

AC( a ,c)
CE( c ,e)
AB( a,b ,d)

4

2 回答 2

0

a是主键而b是主键的情况,还是{a,b}是(复合)主键的情况?如果列是单独的主键,那么您有许多附加但未明确说明的功能依赖关系:a → bdb → acde。如果列{a,b}是复合 PK,那么您有一个额外的函数依赖ab → cde。无论哪种方式,AC 和 CE 关系都很好,而 ABD 关系是另一个必要的关系。唯一的问题是“ABD 的候选键是什么”?答案是'要么{a,b}作为复合 PK,要么ab作为两个单独的候选键'。

于 2012-10-06T03:56:05.827 回答
0

你确定那个主键吗?通常,确定所有候选键是这类练习的一部分。

表达我们对候选键的了解的一种非正式方式是,不在任何函数依赖的右侧(RHS)的每个属性都必须是每个候选键的一部分。

由于我不知道您如何确定 {ab} 是候选键,我倾向于这样说,因为 {abd} 不在任何 RHS 上,{abd} 必须是每个候选键的一部分。

简而言之,您的 FD 说 {abd} 是主键,而不是 {ab}。

为了使您的密钥和分解正确,您需要有额外的 FD ab->d。

于 2012-10-06T02:06:50.823 回答