📜  DBMS 中的无损分解

📅  最后修改于: 2021-09-09 10:26:16             🧑  作者: Mango

无损连接分解是将关系 R 分解为关系 R1、R2,这样如果我们执行两个较小关系的自然连接,它将返回原始关系。这可以有效地从数据库中删除冗余,同时保留原始数据。

换句话说,通过无损分解,使用连接从分解的表 R1 和 R2 重建关系 R 变得可行。

在无损分解中,我们选择共同元素,选择共同元素的标准是共同元素必须是关系 R1、R2 或两者之一中的候选键或超键。

将关系 R 分解为 R1 和 R2 是无损连接分解,如果以下函数依赖中的至少一个在 F+ 中(函数依赖的闭包)

R1 ∩ R2 → R1
   OR
R1 ∩ R2 → R2

问题 1:
令 R (A, B, C, D) 是具有以下功能依赖关系的关系模式:

A → B, B → C,
C → D and D → B. 

The decomposition of R into 
(A, B), (B, C), (B, D)

(A)给出无损连接,并且是依赖保留
(B)提供无损连接,但不是依赖保留
(C)不提供无损连接,但保留依赖关系
(D)不提供无损连接并且不是依赖保留

请参阅此解决方案。

问题2
R(A,B,C,D) 是一个关系。下列哪项没有无损连接、保留依赖的 BCNF 分解?
(A) A->B, B->CD
(B) A->B、B->C、C->D
(C) AB->C, C->AD
(D) A -> BCD

请参阅此解决方案。

以下是去年 GATE 问题的测验

https://www.geeksforgeeks.org/dbms-gq/database-design-normal-forms-gq/