Database 分解如何保持依赖关系?

Database 分解如何保持依赖关系?,database,relational-database,normalization,database-normalization,functional-dependencies,Database,Relational Database,Normalization,Database Normalization,Functional Dependencies,设R(A,B,C,D)是一个具有以下函数依赖关系的关系模式: A.→ B、 B→ C C→ D和D→ B.R分解为(A,B),(B,C),(B,D) 分解如何保持依赖关系 在某个地方,它解释为“给定的分解也是依赖性保留的,因为依赖性A->B存在于(A,B),B->C存在于(B,C),D->B存在于(B,D),C->D通过(B,C)中的C->B和(B,D)中的B->D间接存在。” 但我的问题是,如果B→然后给出C→B不需要,对吗? 你能解释一下吗 在这种情况下,C→ B由所有其他依赖项决定F={

设R(A,B,C,D)是一个具有以下函数依赖关系的关系模式: A.→ B、 B→ C C→ D和D→ B.R分解为(A,B),(B,C),(B,D)

分解如何保持依赖关系


在某个地方,它解释为“给定的分解也是依赖性保留的,因为依赖性A->B存在于(A,B),B->C存在于(B,C),D->B存在于(B,D),C->D通过(B,C)中的C->B和(B,D)中的B->D间接存在。”

但我的问题是,如果B→然后给出C→B不需要,对吗? 你能解释一下吗


在这种情况下,
C→ B
由所有其他依赖项决定
F={A→ B、 B→ C、 C→ D、 D→ B} 

要显示这一点,您必须查看
C
相对于
F
的闭包是否包含
B
。给出一组属性闭包算法中间步骤的结果:

C+ = C
C+ = CD (by using the third dependency)
C+ = CDB (by using the fourth dependency)

所以,既然
C+
包含
B
,那么
C→ B
可以从其他依赖项派生。

谢谢您的解释。