# 数据库管理系统|依存关系分解

R的分解D = {R1, R2, R3….Rn}是依赖项, 如果函数F的集合F

``````(F1 ∪ F2 ∪ … ∪ Fm)+ = F+.
Consider a relation R
R ---> F{...with some functional dependency(FD)....}

R is decomposed or divided into R1 with FD { f1 } and R2 with { f2 }, then
there can be three cases:

f1 U f2 = F -----> Decomposition is dependency preserving.
f1 U f2 is a subset of F -----> Not Dependency preserving.
f1 U f2 is a super set of F -----> This case is not possible.``````

``````R1(A, B, C) and R2(C, D)

Let us find closure of F1 and F2
To find closure of F1, consider all combination of
ABC. i.e., find closure of A, B, C, AB, BC and AC
Note ABC is not considered as it is always ABC

closure(A) = { A }  //Trivial
closure(B) = { B }  //Trivial
closure(C) = {C, A, D} but D can't be in closure as D is not present R1.
= {C, A}
C--> A   //Removing C from right side as it is trivial attribute

closure(AB) = {A, B, C, D}
= {A, B, C}
AB --> C  //Removing AB from right side as these are trivial attributes

closure(BC) = {B, C, D, A}
= {A, B, C}
BC --> A  //Removing BC from right side as these are trivial attributes

closure(AC) = {A, C, D}
AC --> D  //Removing AC from right side as these are trivial attributes

F1 {C--> A, AB --> C, BC --> A}.
Similarly F2 { C--> D }

In the original Relation Dependency { AB --> C , C --> D , D --> A}.
AB --> C is present in F1.
C --> D is present in F2.
D --> A is not preserved.

F1 U F2 is a subset of F. So given decomposition is not dependency preservingg.``````

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

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

(A)提供无损连接, 并且保持依赖关系

(B)提供无损连接, 但不保留依赖项

(C)不会提供无损连接, 而是保留依赖项

(D)不提供无损连接, 也不保留依赖项

R(A, B, C, D)是一个关系。下列哪一个没有不丢失连接, 保持BCNF分解的依存关系？

(A)A-> B, B-> CD

(B)A-> B, B-> C, C-> D

(D)A-> BCD

### 觉得文章有用就打赏一下文章作者

#### 微信扫一扫打赏 • 回顶