【问题标题】:Is there an example of any functional dependency violating 1NF?是否有任何违反 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。

标签: database relational-database normalization denormalization functional-dependencies


【解决方案1】:

与其他正常形式不同,1NF 关注的是结构,而不是函数依赖。所以你的问题的简单答案是否定的。

但是,关于 1NF 是否排除关系值属性 (RVA) 的可能性存在争议。如果您(和许多人一样)认为 RVA 被 1NF 禁止,那么任何基于关系值属性的函数依赖都不能被 1NF 关系满足。根据对规则的解释,此类 FD 将被 1NF 禁止。说 FD 本身违反了 1NF 是言过其实的,但如果说满足这样的 FD 的关系就是违反的话,那就是真的了。

或者,您可以认为,如果它具有任何价值,那么 1NF 应该意味着数据始终表示为关系的要求。在这种解释下,没有充分的理由排除 RVA 的可能性,并且 - 鉴于它们的排除可能会排除一些潜在重要的 FD - 有充分的理由允许它们。这是我的观点,尽管即使在那些考虑过这个问题的人中,这也可能是少数人的观点。如果您同意,那么您的问题的答案肯定是否。

【讨论】:

    猜你喜欢
    • 2014-11-28
    • 2012-01-25
    • 2012-03-16
    • 1970-01-01
    • 2014-07-30
    • 2011-12-19
    • 1970-01-01
    • 2012-05-09
    相关资源
    最近更新 更多