【发布时间】:2020-02-21 15:20:37
【问题描述】:
假设我有一个关系表:
FinalYearProject(主管、研究主题、咨询日、学生)
以及以下功能依赖:
student -> researchTopic
student, researchTopic -> supervisor
researchTopic,supervisor -> consultationDay
从那里我确定我的最小超级密钥是:student where
student -> researchTopic,supervisor, consultationDay
我说 存在部分依赖 对吗,因为 supervisor 不仅仅依赖于 student 基于功能依赖:
student, researchTopic -> supervisor
任何帮助将不胜感激。
【问题讨论】:
-
“我有这些 FD”是什么意思? “这些都是持有的FD”?--不可能。 “这些都是持有的不平凡的FD”?--不可能。 “这些是一些持有的FD”?--问题无法回答。找出什么是 cover 以及应用特定定义/规则/算法的确切条件。要确定 CK 和 NF,我们必须得到构成掩护的 FD。有时是最小/不可约覆盖。并且必须给出所有属性的集合。 See this answer.
-
“不完全依赖学生”不清楚,您的推理也没有使用它。如果 A 依赖于 X 的真子集,则 X -> A 是部分的。因此,如果主管在功能上依赖于 {student}、{researchTopic} 或 {} 中的任何一个,则 {student, researchTopic} -> supervisor 是部分的。此外,您在标题中提出一个问题,但在正文中提出另一个问题。此外,2NF 不仅基于部分 FD,还基于 CK 上非主属性的部分 FD。一个模式也可以有多个 CK。所以也许你可以看到,当你问“这对不对”时,你应该给出所有的步骤和理由。
标签: relational-database normalization database-normalization functional-dependencies