【问题标题】:Do functional dependencies, if trivial, imply a subset relationship, given singleton domains?给定单例域,功能依赖关系(如果微不足道)是否暗示子集关系?
【发布时间】:2016-05-14 10:46:51
【问题描述】:

查看 FD 的定义。其中 X 和 Y 是模式属性的子集,我同时看到:

  • 如果 Y ⊆ X,FD X → Y 微不足道
  • FD X → Y 微不足道当且仅当 Y ⊆ X。

“琐碎”的另一个特征提到“不可能不坚持”(C.J. Date)。如果 nontrivial 被明确描述为“不平凡”(“当然”)。

现在想象某个属性 A 的域只有一个值。比如说,A 的类型只包含值 1。那么,如果任何关系 R 包含 A,则 的每一组属性R 在功能上确定 A,即 X → A 而不管 {A} ⊆ X 与否,因为它不可能不成立任何 X ⊆ R。原因:

给定任何子元组,它的 A-分量也给定,总是 1。

那么,考虑到这些领域,将 FD 表征为琐碎的子集条件是否既必要又充分?

(我猜这些单例域也可以称为微不足道的,但这些定义仍然让我感到疑惑。或者感到困惑。;-)

【问题讨论】:

    标签: sql theory functional-dependencies


    【解决方案1】:

    在关系 R 中,您可以拥有一个或多个属性不变。如果 A 是这样一个属性,那么在该关系中,非平凡的依赖关系成立:

    ∅ → A
    

    考虑到函数依赖的定义,这意味着对于 R 的实例中的 每个 对元组,它们总是在 A 上重合。这种依赖显然是不平凡的,因为右-手部分不是左手部分的子集。

    此外,由于这种依赖关系,对于 R 的每个属性子集 X,我们都有 X → A。这可以通过应用自反性和传递性规则从阿姆斯特朗公理轻松推导出:

    X → ∅  (for the reflexivity rule, since for each X, ∅ ⊆ X)
    X → A  (by applying the transitivity rule to X → ∅ and ∅ → A)
    

    【讨论】:

    • 所以,我认为,要使关于子集关系的双条件成立,需要理解 A 的类型是任意的?这个额外的前提,有点,提供“一般”。
    • @B98:是的,完全正确。实际上,在同一关系的不同实例中,您可以为 A 设置 不同 值,因此 A 可以具有任何域。依赖“说”只是在 any 实例中,属性 A 始终具有 same 值。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多