【问题标题】:functional dependencies involving the empty set涉及空集的函数依赖
【发布时间】:2013-04-22 11:51:49
【问题描述】:

我正在尝试用 FD 掌握空集的概念。说我有

R(A,B,C,D)

A-> E
B-> C
B-> D

其中 E 是空集,据我了解,这是一个微不足道的 FD,因为你从拥有 A 中没有学到任何新东西。但是当你拥有时

E-> A
B-> C
B-> D

这到底是什么意思?它是简单的“没有什么暗示 A”,所以 A 可以在定义的域内具有它想要的任何值,还是 A 必须是 NULL 值?

【问题讨论】:

  • “你没有从拥有 A 中学到任何新东西”是没有帮助的。了解函数依赖的定义:X -> Y,如果两行具有相同的 X 子元组,则它们具有相同的 Y 子元组。

标签: database database-design functional-dependencies


【解决方案1】:

空集通常写成∅或{}。

  • A->{} 是微不足道的。(因为 {} 是 A 的子集)。
  • {}->A 不是微不足道的。(除非 A 是 {},因为 {} 是每个集合的子集,因此也是 {} 的子集)。

{}->A 表示 A 的值可以在不使用任何其他值的情况下确定,换句话说,对于 R 中的每个元组,A 的值必须相同。这 不是就像说 A 没有行列式或 A 为空一样。如果 A 没有行列式,则 A 将不受约束,并且可以在不同的元组中具有不同的值。

对空集的依赖示例可能是 Members 关系中的 Sex 属性,它定义了仅限男性的俱乐部的成员资格:{}->Sex。

【讨论】:

    猜你喜欢
    • 2015-10-12
    • 1970-01-01
    • 1970-01-01
    • 2013-02-14
    • 2022-09-28
    • 2013-09-25
    • 2011-04-04
    • 2016-03-05
    • 1970-01-01
    相关资源
    最近更新 更多