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



在Wikipedia上,它说:

如果至少以下功能依赖项之一在f 中,则分解是R的无损连接分解(其中F 代表F中的每个属性或属性集的闭合):
  r1 r2→r1或r1 r2→r2

不幸的是,我不了解这一标准。众所周知,如果R1和R2的连接是R,则分解是无损的,但是从上面的标准中可以推导出来?

Wikipedia文章是一团糟。

当且仅当组件(原始的投影)加入到它时,分解是无损的。

您引用的内容不是无损分解的定义。鉴于原始依赖性的某些功能依赖性,这是表明分解是无损的足够条件。如果满足条件,则连接是无损的。这不是必需的条件。

一些大学HTML幻灯片:

分解

10我们将对无损连接进行更正式的定义:[...]
11换句话说,无损连接的分解是任何法律关系r,如果我们分解r,然后"重新组合" r,我们就会得到我们开始使用的东西 - 而不会越来越少。

a 使用功能依赖项归一化过程中,有用的足够条件在归一化期间

让r为一个关系模式。
让F是对R的一组功能依赖性。
令R1和R2形成R的分解。
如果至少以下功能依赖性之一在f :
中,则分解是R的无损连接分解 1 R1∩r2→R1
2 R1∩r2→R2

知道足够的条件背后的想法是,您只需要展示有关共享属性集的一些信息&一些功能依赖性知道组件与原始组件连接在一起,并且(等效地)是无损分解。

为什么这是真的?简而言之,它可以确保自然联接中涉及的属性(R1 r2)是至少两种关系中的一个候选密钥。

最新更新