【问题标题】:Equivalence of Functional dependency set函数依赖集的等价性
【发布时间】:2017-02-14 09:09:23
【问题描述】:

Fd1 = {AB --> C, D --> E, E --> C}

Fd2 = { AB --> C, D --> E, AB --> E, E --> C}

这两个 FD 是否等效,我认为它们是等效的。但在答案中显示为不等价。

【问题讨论】:

    标签: database-theory


    【解决方案1】:

    你不能从第一组的依赖中产生 AB → E。

    要从数学上证明它们的(不)等价性,您应该为这两个集合构建闭包并比较闭包。

    有一些简单的归纳规则来构建 a 闭包。引用Wikipedia on Functional Dependency,公理是:

    • 自反性:如果 Y 是 X 的子集,则 X → Y
    • 增强:如果 X → Y,则 XZ → YZ
    • 传递性:如果 X → Y 和 Y → Z,则 X → Z

    遵循一些规则:

    • 联合:如果 X → Y 和 X → Z,则 X → YZ
    • 分解:如果 X → YZ,则 X → Y 和 X → Z
    • 伪传递性:如果 X → Y 和 WY → Z,则 WX → Z
    • 组成:如果X→Y和Z→W,那么XZ→YW

    使用这些规则和公理,可以为 FDS 构建闭包。

    省略琐碎的依赖(右侧包含在左侧的那些),首先设置 { AB → C (1), D → E (2), E → C (3) } 给出:

    AB → C                       (1)
    ABD → CE, ABD → C, ABD → E   (composition 1+2, decomposition)
    ABDE → CE, ABDE → C          (composition 1+2+3, decomposition)
    ABE → C                      (composition 1+3)
    D → E, D → C, D → CE         (2, transitivity 2+3, union)
    DE → CE, DE → C              (composition 2+3, decomposition)
    E → C                        (3)
    

    而第二组{ AB → C (1), D → E (2), E → C (3), AB → E (4) } 给出:

    AB → C, AB → E, AB → CE      (1, 4, union 1+4)
    ABD → CE, ABD → C, ABD → E   (composition 1+2, decomposition)
    ABDE → CE, ABDE → C          (composition 1+2+3, decomposition)
    ABE → C                      (composition 1+3)
    D → E, D → C, D → CE         (2, transitivity 2+3, union)
    DE → CE, DE → C              (composition 2+3, decomposition)
    E → C                        (3)
    

    第二个闭包有AB → E, AB → CE,在第一个闭包中不存在,因此原始集合不同。

    【讨论】:

    • 这回答了我的问题以及几乎所有其他问题。谢谢。
    猜你喜欢
    • 2012-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-18
    • 2014-01-14
    • 2013-04-22
    • 2013-02-07
    • 2022-01-01
    相关资源
    最近更新 更多