【问题标题】:I got a question for Functional dependency and violation of 2nd Normal Form我有一个关于功能依赖和违反第二范式的问题
【发布时间】:2020-08-29 12:25:33
【问题描述】:

我正在为 DB 课做作业。

即使我得到了答案(我认为),其中一个问题也让我感到困惑..

问题很简单。

对于给定关系 R(A,B,C,D,E) 和函数依赖关系 F(AB -> C, D->E, DE ->B)

1. R 在 2NF 中吗?

2。 R 在 3NF 中吗?

3. R 在 BCNF 中吗?

我认为由于 F 中所有 FD 的右侧没有 A 和 D,因此 A 和 D 必须是候选键的一部分。

所以我检查了 AD 的 Closure,我得到了 AD+ : {A,B,C,D,E}。

这意味着AD是超级关键。

另外,由于 A 和 D 都必须是候选键的一部分,并且 AD 不能被归约(AD 的子集没有闭包是 {A,B,C,D,E}),所以 AD 是候选键并且唯一可能的候选键。 (我这样做对吗?)

对于候选键AD,D->E是部分依赖于候选键AD。

所以它违反了2NF的条件。

在 DE -> B 上,这个 FD 是否违反了 2NF?

如果是这样的话..

是否违反因为我们可以从 D->E 得到 D->DE 。所以 DE -> B 等价于 D -> B。这是 D->B 违反 2NF 吗??

DE->B 本身违反了 2NF 没有任何转换,因为 D 在左侧?

当 XY -> Z X 是候选键的一部分而 Y,Z 是非主键时,我真的很困惑。

因为我不能说它是否违反了 2NF。我认为它违反了 2NF,但我不能清楚地说明原因。

我已经找了几个小时的示例、解释和剪辑,但没有得到任何令人满意的答案。

如果我不在乎具体原因,只想要信用,那也没关系。但我不能以这种态度暴露自己。

【问题讨论】:

  • 显示你的工作步骤,按照你的教科书进行说明,并在你被卡住的第一个地方问一个特定的研究过的非重复问题。否则,答案只是在猜测您有误解的地方时重写您的教科书。请参阅How to Ask,点击谷歌搜索“stackexchange 作业”和投票箭头鼠标悬停文本。
  • 您的“我有这些 FD”没有意义。 “这些都是持有的FD”?--不可能。 “这些都是持有的不平凡的FD”?--不可能。 “这些是一些持有的FD”?--问题无法回答。找出什么是cover以及应用特定定义/规则/算法的确切条件。要确定 CK 和 NF,我们必须得到构成掩护的 FD。有时是最小/不可约覆盖。并且必须给出所有属性的集合。 See this answer.

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


【解决方案1】:

另外,由于 A 和 D 都必须是候选键的一部分,并且 AD 不能被减少(AD 的子集没有闭包是 {A,B,C,D,E}),所以 AD 是候选键并且只有可能候选键。 (我这样做对吗?)

是的

这个 D->B 违反了 2NF 吗?

是的,因为B 是非素数属性,而D 是候选键的一部分,并且依赖关系成立,因为它由D -> EDE -> B 隐含(在2NF 依赖关系中的关系中,其中行列式是候选键的真子集,行列式是非主属性,不能成立)。

【讨论】:

  • 非常感谢。现在我可以放心了。祝福你,先生。
猜你喜欢
  • 1970-01-01
  • 2015-04-08
  • 2011-07-14
  • 1970-01-01
  • 2011-06-02
  • 2012-09-22
  • 1970-01-01
  • 2019-03-11
  • 1970-01-01
相关资源
最近更新 更多