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

问题描述 投票:0回答:1

维基百科上,它说:

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

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

database relational-database database-normalization functional-dependencies
1个回答
0
投票

那篇维基百科文章一团糟。

分解是无损的,当且仅当组件(它们是原始的投影)重新连接到它时。

你引用的东西不是无损分解的定义。给定原始分解中存在的某些函数依赖性,这是证明分解是无损分解的充分条件。如果满足条件,则连接是无损的。这不是必要条件。

一些大学 html 幻灯片:

分解

10 我们将对无损连接做出更正式的定义:[...]
11 换句话说,无损连接分解是这样一种分解,对于任何法律关系 r,如果我们分解 r 然后“重组”r,我们就会得到我们开始时的结果——不多也不少。

A 有用的充分条件 Lossless-Join Decomposition during Normalization Using Functional Dependencies

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

知道充分条件背后的想法是,你只需要展示一些关于共享属性和一些功能依赖的东西,就可以知道组件连接到原始组件,并且(等效地)是无损分解。

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

© www.soinside.com 2019 - 2024. All rights reserved.