数据库 - 无损连接分解标准

时间:2017-02-19 18:45:26

标签: database relational-database functional-dependencies

Wikipedia上,它说:

  

如果以下函数依赖关系中的至少一个在F +中,则分解是R的无损连接分解(其中F +代表F中每个属性或属性集的闭包):
  R1∩R2→R1或R1∩R2→R2

不幸的是,我不明白这个标准。众所周知,如果R1和R2的连接是R,则分解是无损的,但是如何从上述标准推导出来?

1 个答案:

答案 0 :(得分:0)

维基百科的文章很乱。

当且仅当组件(原始投影)与其连接时,分解才是无损的。

你引用的东西不是无损分解的定义。这是一个充分条件,表明分解是无损的,因为在原始中存在一些功能依赖性。如果满足条件,则连接是无损的。这不是必要的条件。

一些大学的html幻灯片:

Decomposition

  

10我们将对无损连接做出更正式的定义:[...]
  换句话说,无损连接分解是指,对于任何法律关系r,如果我们分解r然后“重新组合”r,我们得到的是我们开始的 - 不多也不少。

Lossless-Join Decomposition

期间 Normalization Using Functional Dependencies 有用的充分条件
  

设R为关系模式   设F是R的一组函数依赖   设R1和R2形成R的分解   如果以下函数依赖性中的至少一个在F +中,则分解是R的无损连接分解:
  1R1∩R2→R1
  2R1∩R2→R2

知道足够的条件背后的想法是你只需要展示一些关于共享属性的信息。一些功能依赖关系,以了解组件连接到原始和(等效)是无损分解。

  

为什么这是真的?简单地说,它确保自然连接中涉及的属性(R1∩R2)是两个关系中至少一个的候选键。