Database 下面的分解是无损的和保持依赖性的吗?

Database 下面的分解是无损的和保持依赖性的吗?,database,database-normalization,functional-dependencies,Database,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)和(B,C)可以无损地组合,因为B->C。但是,对于(A,B,C)和(B,D),B都不构成键。因此,分解是有损的 同样对于依赖关系保持,关系(C-D)不能从任何分解的关系中得到,因此分解不是依赖关系保持 然而,给出的答案是,分解是无损的,并且保持依赖关系。那么我错在哪里呢 关系R的键也只有

在R(A,B,C,D)中, 让依赖关系成为可能

A->B 
B->C 
C->D 
D-> B
将R分解为(A,B)、(B,C)和(B,D)是无损的还是保持依赖的

我的尝试:(A,B)和(B,C)可以无损地组合,因为B->C。但是,对于(A,B,C)和(B,D),B都不构成键。因此,分解是有损的

同样对于依赖关系保持,关系(C-D)不能从任何分解的关系中得到,因此分解不是依赖关系保持

然而,给出的答案是,分解是无损的,并且保持依赖关系。那么我错在哪里呢

关系R的键也只有{A},不是吗

  • 你说:
  • 但是,对于(A,B,C)和(B,D),B不构成这两者的键。因此,分解是有损的

    这是错误的,因为
    B
    (B,D)
    的键。我们可以通过从原始依赖项计算
    B+
    来看到这一点,假设它们构成了关系的覆盖

    B+ = B
    B+ = BC (for the dependency B->C)
    B+ = BCD (for the dependency C->D)
    
    因此,由于
    D
    包含在
    B+
    中,因此
    B->D
    可以从原始依赖集派生,在分解过程中
    (B,D)
    B
    是一个键(正如
    D

  • 为了保持依赖关系,我们必须检查分解的所有投影依赖关系的并集是否是原始依赖关系集的覆盖。由于分解关系的三个覆盖分别是,
    {A->B}
    {C->B,B->C}
    {D->B,B->D}
    ,通过联合这三个集合,您还可以轻松地导出
    D->C
    以及
    C->D
    ,因此保留了依赖关系

  • 最后,yes
    {A}
    是原始关系的唯一候选键

    B+ = B
    B+ = BC (for the dependency B->C)
    B+ = BCD (for the dependency C->D)
    
  • 你说:
  • 但是,对于(A,B,C)和(B,D),B不构成这两者的键。因此,分解是有损的

    这是错误的,因为
    B
    (B,D)
    的键。我们可以通过从原始依赖项计算
    B+
    来看到这一点,假设它们构成了关系的覆盖

    B+ = B
    B+ = BC (for the dependency B->C)
    B+ = BCD (for the dependency C->D)
    
    因此,由于
    D
    包含在
    B+
    中,因此
    B->D
    可以从原始依赖集派生,在分解过程中
    (B,D)
    B
    是一个键(正如
    D

  • 为了保持依赖关系,我们必须检查分解的所有投影依赖关系的并集是否是原始依赖关系集的覆盖。由于分解关系的三个覆盖分别是,
    {A->B}
    {C->B,B->C}
    {D->B,B->D}
    ,通过联合这三个集合,您还可以轻松地导出
    D->C
    以及
    C->D
    ,因此保留了依赖关系

  • 最后,yes
    {A}
    是原始关系的唯一候选键

    B+ = B
    B+ = BC (for the dependency B->C)
    B+ = BCD (for the dependency C->D)
    

  • 你的“我有这些FD”没有意义。“这些都是持有的FD”?——不可能。“这些都是持有的非平凡FD”?——不可能。“这是一些持有的FD”?——这个问题无法回答。了解什么是封面&应用特定定义/规则/算法的确切条件是什么。为了确定CKs和NFs,我们必须获得构成封面的FD。有时是最小/不可约覆盖。必须给出所有属性的集合。例如“B不构成任何一个的键”-false。这回答了你的问题吗?请问1个问题。清晰地给出理由——有任何解决问题的机会,沟通和证明你投入了合理的研究努力。通过清晰合理的小步骤将声明与您给出的定义和定理联系起来。例如“因为B->C”&“B都不构成键”--为什么?“关系(C-D)无法得到”——不清楚。不管你是什么意思,这与确定无损性有什么关系?PS如果给定的FDs形成一个覆盖,那么{a}是唯一的CK。但是,如果你不确定,那就把它作为一个单独的帖子的第一个问题来问。你的“我有这些FD”毫无意义。“这些都是持有的FD”?——不可能。“这些都是持有的非平凡FD”?——不可能。“这是一些持有的FD”?——这个问题无法回答。了解什么是封面&应用特定定义/规则/算法的确切条件是什么。为了确定CKs和NFs,我们必须获得构成封面的FD。有时是最小/不可约覆盖。必须给出所有属性的集合。例如“B不构成任何一个的键”-false。这回答了你的问题吗?请问1个问题。清晰地给出理由——有任何解决问题的机会,沟通和证明你投入了合理的研究努力。通过清晰合理的小步骤将声明与您给出的定义和定理联系起来。例如“因为B->C”&“B都不构成键”--为什么?“关系(C-D)无法得到”——不清楚。不管你是什么意思,这与确定无损性有什么关系?PS如果给定的FDs形成一个覆盖,那么{a}是唯一的CK。但是,如果你不确定,那就把它作为一个单独的帖子的第一个问题来问,其中的推理一直到被卡住/不确定。