依存关系保存
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.
问题:
让一个关系R(A, B, C, D)和功能依赖关系{AB –> C, C++–> D, D –> A}。关系R分解为R1(A, B, C)和R2(C, D)。检查分解是否保留依赖项。
解:
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 attributeclosure(AB) = {A, B, C, D}
= {A, B, C}
AB -->
C//Removing AB from right side as these are trivial attributesclosure(BC) = {B, C, D, A}
= {A, B, C}
BC -->
A//Removing BC from right side as these are trivial attributesclosure(AC) = {A, C, D}
AC -->
D//Removing AC from right side as these are trivial attributesF1 {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.
问题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
参考这个解决方案。
【数据库管理系统|依存关系分解】如果发现任何不正确的地方, 或者想分享有关上述主题的更多信息, 请发表评论。
推荐阅读
- C/C++如何连接数据库(代码实现示例)
- 使用Python进行数据分析和可视化|S2
- 使用Python进行数据分析和可视化
- 数据抽象和数据独立详细指南
- 2021年将使用22个替代搜索引擎
- 让开发人员的生活更轻松的十大Python工具
- 汇丰面试经历分享|S7
- 汇丰面试经历|S3(在校园内–软件开发人员)
- 为什么精益与DevOps相得益彰()