是否有任何违反 1NF 的函数依赖的示例?
Posted
技术标签:
【中文标题】是否有任何违反 1NF 的函数依赖的示例?【英文标题】:Is there an example of any functional dependency violating 1NF? 【发布时间】:2017-04-24 05:35:35 【问题描述】:函数依赖是否有可能违反 1NF?例如
R=A,B,C,D,E F=Any FD that violates 1NF
什么样的函数依赖会违反 1NF?我了解违反 2NF、3NF 和 BCNF 的函数依赖关系的示例,但我从未见过违反 1NF 的 FD 示例。这甚至可能吗?
【问题讨论】:
这是不可能的,因为 1NF 只是关系定义的一部分(每个属性只有基本值)。任何关系,在定义的正确意义上,都自动属于 1NF。 你(认为你)所说的“1NF”是什么意思? 我们可以识别非 1NF 表中的 FD,但不会是违反 1NF 的 FD。 【参考方案1】:与其他正常形式不同,1NF 关注的是结构,而不是函数依赖。所以你的问题的简单答案是否定的。
但是,关于 1NF 是否排除关系值属性 (RVA) 的可能性存在争议。如果您(和许多人一样)认为 RVA 被 1NF 禁止,那么任何基于关系值属性的函数依赖都不能被 1NF 关系满足。根据对规则的解释,此类 FD 将被 1NF 禁止。说 FD 本身违反了 1NF 是言过其实的,但如果说满足这样的 FD 的关系就是违反的话,那就是真的了。
或者,您可以认为,如果它具有任何价值,那么 1NF 应该意味着数据始终表示为关系的要求。在这种解释下,没有充分的理由排除 RVA 的可能性,并且 - 鉴于它们的排除可能会排除一些潜在重要的 FD - 有充分的理由允许它们。这是我的观点,尽管即使在那些考虑过这个问题的人中,这也可能是少数人的观点。如果您同意,那么您的问题的答案肯定是否。
【讨论】:
以上是关于是否有任何违反 1NF 的函数依赖的示例?的主要内容,如果未能解决你的问题,请参考以下文章