【发布时间】:2017-10-26 13:54:04
【问题描述】:
假设我们有一个包含 3 列 A、B 和 C 的表
A B C
---------------
1 2 3
2 4 5
4 6 7
n 5 n
这里的“n”表示空值。
我们可以说 A -> B 和 A -> C 吗?我知道函数依赖的定义,但我只是对空值感到困惑。
【问题讨论】:
-
在存在空值的情况下未定义功能依赖关系。所有关于 FD 主题的经典科学文献,以及所有威胁 FD 的数据库书籍,都清楚地表明,关系理论已被定义为忽略空值。也许您可以在一篇相对较新的论文中为您的问题找到一些有趣的东西:Badia、A. 和 D. Lemire。 “具有空标记的功能依赖关系。”计算机杂志,2014 年 5 月 15 日。doi.org/10.1093/comjnl/bxu039.
-
查看我对重复问题的回答。如果你真的在处理 FD,那么“null”必须是 = & join 的另一个值,你必须询问你的导师如何将它们应用到 SQL 设计中。 (至少,直到我写下另一个答案,在链接上重新组织我的答案。)
标签: database database-normalization functional-dependencies