【问题标题】:Lossless Join Property无损连接属性
【发布时间】:2011-04-24 16:39:46
【问题描述】:

有人可以向我解释一下关系模式中的无损连接属性是什么意思吗?

是否能够在关系分解过程中保持信息/数据的语义,同时进行规范化?

【问题讨论】:

    标签: join relational-database database-normalization natural-join


    【解决方案1】:

    @Falcon - 你是对的 - 但这是一个更实质的定义......

    无损连接属性是规范化支持的分解功能。它是一种确保原始关系的任何实例都可以从较小关系中的对应实例中识别出来的能力。

    【讨论】:

    • @user559142 - 我从来没有说过我已经提供了定义;)......无论如何你明白了:)
    【解决方案2】:

    lossless中的loss这个词是指信息的丢失,而不是元组的丢失

    这个ppt presentation 可能会有所帮助。

    【讨论】:

    • 不,该链接是关于“关于一组 FD 的无损连接”而不是“无损连接”。
    【解决方案3】:

    R1, ... 是 R 加入时的无损分解。

    (R1, ... 是 R在一组 FD 下的无损分解(函数依赖)F 是 不同的属性。即当 R1, . ..是R的无损分解,满足F中的FD。)

    【讨论】:

      【解决方案4】:

      无损意味着在没有损失的情况下运行。 换句话说,保留一切。

      数据库拥有这个特性很重要。

      正式定义

      • R 成为一个关系模式。
      • F 成为R 的一组函数依赖。
      • 让并形成R的分解。

      如果F+ 中至少有以下函数依赖项之一,则分解是R 的无损连接分解

      1) R1 ∩ R2 -> R1
      2) R1 ∩ R2 -> R2  
      

      简单来说……

      R1 ∩ R2 -> R1
      R1 ∩ R2 -> R2
      

      如果R 被拆分为R1R2,为了使分解无损,那么至少两者之一应该成立。

      R1R2 上投影并重新加入,会产生您开始时的关系。

      来源: https://en.wikipedia.org/wiki/Lossless-Join_Decomposition

      【讨论】:

      • 不,这是关于“一组 FD 下的无损分解”,而不是“无损分解”。
      • 这也只涉及二进制分解。
      • 这也奇怪地与我刚刚阅读的维基百科答案完全相同。我并不是要批评,我敢肯定 Faisal 只是想提供帮助,或者他只是写了两个来源,但我认为在两个地方都复制它不是很有帮助(尽管我认为临时wiki,所以它可以被改进,在这里是为了业力),但我认为你可能不想以一种不会真正改变它的方式来处理。
      猜你喜欢
      • 2015-06-27
      • 1970-01-01
      • 1970-01-01
      • 2018-01-13
      • 2011-05-17
      • 1970-01-01
      • 1970-01-01
      • 2012-05-13
      • 1970-01-01
      相关资源
      最近更新 更多