【问题标题】:Can a relational table with just 2 attributes be in 4NF?只有 2 个属性的关系表可以在 4NF 中吗?
【发布时间】:2020-08-08 07:42:54
【问题描述】:

如果有关系:

studentColor(studentNumber, favouriteColor)

我有这个依赖:

studentNumber -> favouriteColor

所以这意味着一个学生只能有一种喜欢的颜色,但是很多学生可以选择一种喜欢的颜色,所以我理解存在多值依赖:

favouriteColor ->> studentNumber

所以这个关系只能在BCNF中。

但我想知道,如果它:

studentNumber -> favouriteColor

favouriteColor -> studentNumber

这意味着如果一个颜色被学生选择了,它就不能再被选择了,所以这里没有任何多值依赖。 因为我听说一个关系需要满足这些规则才能在 4NF 中

它应该是 Boyce-Codd 范式 (BCNF)。 该表不应该有任何多值依赖。

这是否意味着它在 4NF 中?

【问题讨论】:

  • (预制评论:)您的“我有这些 FD”没有意义。 “这些都是持有的FD”?--不可能。 “这些都是持有的不平凡的FD”?--不可能。 “这些是一些持有的FD”?--问题无法回答。找出什么是 cover 以及应用特定定义/规则/算法的确切条件。要确定 CK 和 NF,我们必须得到构成掩护的 FD。有时是最小/不可约覆盖。并且必须给出所有属性的集合。 See this answer.
  • “BCNF [...] 不应有任何 MVD”为假。每当有 FD 时,就有一定的 MVD,因为 x->y 意味着 x->>y。查找、引用和使用 BCNF、4NF、FD 和 MVD 的定义。这也不清楚。特别是不清楚你到底从什么开始,你的总体主张是什么,你的中间主张是什么以及你对每个先前主张的主张的理由是什么。解释为什么“如此”。请编辑清楚。使用足够多的单词、句子和对部分示例的引用来清楚完整地表达你的意思。 PS 只有某些 FD 违反 BCNF,只有某些 MVD 违反 4NF。
  • 您对持有 MVD 的含义有一些误解。 studentNumber -> favouriteColor 意味着 studentNumber -> favouriteColor。但是你错误地认为它成立并且如果它成立那么 4NF 不成立。 (事实上​​,违反 BCNF 必须有重叠的 CK。) PS 为了简单地重新推理 MVD,请使用这些:给定的 MVD 保持当夫/当某个 JD 存在;一个给定的 JD 持有当且仅当一个关系值/变量是某些其他人的连接; r JOIN s 是满足r(...) AND s(...) 的元组; x->y in r iff/when r(...) IMPLIES y=f(x), 即 iff/when r(...)p(...) AND y=f(x)

标签: database-normalization functional-dependencies bcnf


【解决方案1】:

我会在我的数据库系统和管理课程中添加我正在/正在教授的内容

我们被告知,BNCF 中的每个关系都不是 4NF iff

  1. 至少有 3 个属性

  2. 存在 A ->-> B 和 A->->C

  3. B 和 C 是独立的

这里的->->双数组指的是多值依赖。

因此这直接得出结论,如果关系由 2 个属性组成 在 BCNF 中,然后在 4NF 中。

【讨论】:

  • 这并没有回答问题,这是关于提问者(不清楚不健全)论点的合理性。 PS“直接引出”——请拼写出来。 PS你从哪里得到这个所谓的定理?什么是 A、B 和 C?什么是“独立”? (这并没有什么特别的意思,虽然它可能是想说一些关于 JD 的事情。虽然 2 和 3 对“直接领导”并不重要。)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-06-05
  • 2013-09-17
  • 1970-01-01
  • 2013-04-25
  • 2014-02-05
  • 1970-01-01
  • 2013-10-22
相关资源
最近更新 更多