分解如何保持依赖?

时间:2015-11-27 11:07:03

标签: 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,那么C→B不一定是,对吧?   你能解释一下吗。

1 个答案:

答案 0 :(得分:0)

在这种情况下,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可以从其他依赖项派生。