【问题标题】:Trivial join dependency琐碎的连接依赖
【发布时间】:2016-12-04 16:59:33
【问题描述】:

我很难理解如何“使用”连接依赖项,我想问一个问题来帮助我自己澄清事情。

这是来自Wikipedia的简单定义:

如果 T 总是可以重新创建,则表 T 受连接依赖项的约束 通过连接多个表,每个表都有一个属性的子集 T.

一个普通的连接依赖定义如下:

如果连接中的一张表具有该表的所有属性 T,连接依赖被称为琐碎。

我的问题是:如果我们将关系 R 分解为无损分解,是否有可能 R 的每个连接依赖都可能是微不足道的连接依赖? 一个例子会很棒。

【问题讨论】:

    标签: database database-normalization


    【解决方案1】:

    如果我们将关系 R 分解为无损分解,R 的连接依赖关系是否可能是平凡连接依赖关系?

    如果你的意思是,如果我们无损地分解关系 R,是否有可能 R 的所有 JD 都是微不足道的:是的。

    只要 R 的所有 JD 都是微不足道的,您就可以无损地分解它,因为根据定义,JD 只是对无损分解的描述。并且有这样的关系。每个 R,调用它的属性集 S,满足 JDs *(S,S), *(S,S,S) 等。有些不满足其他 FDs。有些满足其他人,但它们也是微不足道的。

    例如:这个 R 只满足 *(S,S), *(S,S,S) 等:

    x   y
    1   2
    5   2
    5   4
    

    例如:假设 S = {x,y} 和 FD {x}->{y} 成立,所以 *({x},S} 成立。但是说 JD *({x},{y}) 不成立'不成立。那么 JD 可以将集合联合到 S 的唯一方法是如果 S 是其中之一。所以 R 只有琐碎的 JD。但不仅仅是只使用 S 的 JD。

    x   y
    1   2
    5   2
    6   4
    

    如果您的意思是,如果我们将关系 R无损地分解为更小的组件,R 的所有 JD 是否可能都是微不足道的:不。因为根据定义,一个平凡的 JD 有一组是 R 的所有属性,即有一个组件是 R,它不会分解为小于 R 的组件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-17
      • 2015-05-04
      • 1970-01-01
      • 2017-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多