因此,我正在查看我的数据库笔记和材料,试图让自己了解即将到来的采访的一般概念和术语。然而,我陷入了依赖和无损连接分解的困境。我到处搜索并看到很多数学方程,但我正在寻找简单明了的英语答案或例子。
我找到了一个来自http://www.cs.kent.edu/~jin/DM09Fall/lecture6.ppt http://www.cs.kent.edu/~jin/DM09Fall/lecture6.ppt这是一个我无法完全理解的例子。下面发布了。
R = (A, B, C)F = {A → B, B → C)
Can be decomposed in two different ways
R1 = (A, B), R2 = (B, C)
Lossless-join decomposition:
R1 ∩ R2 = {B} and B → BC
Dependency preserving
R1 = (A, B), R2 = (A, C)
Lossless-join decomposition:
R1 ∩ R2 = {A} and A → AB
Not dependency preserving (cannot check B -> C without computing R1 ⋈ R2)
所以我理解,A → B 和 B → C 意味着彼此之间有“参考”,而 A → B 和 A → C 意味着 B 和 C 之间没有参考或链接。
So,
无损连接分解是否意味着数据整体仍然完好无损?在这两种情况下,您最终仍然可以获得这两种数据,对吗?如果这是错误的,请纠正我! :)
-
在第二次分解中建立 B 到 C 的连接有什么意义?这如何使其不保持依赖关系?
如果删除 A,您将仅拥有没有关系的 B 和 C。
如果 B 被删除,你仍然会有 A → C。
如果C被删除,你仍然会有A→B。
因为即使在第一个示例中,删除值后您仍然会得到类似的结果。
因此,无论哪种方式,如果您删除每个项目,您仍然会有两个关系实例和两个没有关系的项目的一个实例
我的猜测是,在删除“中间人关系”(是否有一个术语)时,示例 1 中的 B 和示例 2 中的 A,您仍然可以将示例 1 的 A → B 然后 B → C 关联起来,而在示例 2 您被困在 A → B 中,而与 A → C 没有任何连接。
但正如你所看到的,我现在又回到了为什么这会导致数据依赖的问题,而在谷歌搜索“什么是数据依赖”或“数据依赖的例子”时,它对我来说根本没有任何意义。
如果有人可以帮助我澄清这一点,我将不胜感激。