规范化具有5个属性A,B,C,D和E的表

时间:2017-04-27 01:21:49

标签: database relational-database database-normalization

从学期开始,这是一个非常基本的问题,我错了。我要求其为其他人准备期末考试提供更好,更准确的答案。

规范化具有5个属性A,B,C,D和E的表。其中A和B是复合键。没有其他主要属性。

一个。如果你有一个部分依赖关系B到C,你会做什么来规范化关系?

湾如果您对E有依赖关系D,那么您将如何规范关系?

1 个答案:

答案 0 :(得分:2)

规范化只能通过功能依赖性来完成。所以让我们用你的问题重新表达你的问题。

  

规范化具有5个属性A,B,C,D和E的表。其中A和B是复合键。没有其他主要属性。

这意味着我们有一个关系架构

R(A, B, C, D, E)

只有非平凡的功能依赖:

A B → C D E

这种关系是Boyce-Codd范式(BCNF)以及第三范式(3NF)。

  

如果你有一个部分依赖B到C,你会怎么做才能规范化这个关系?

现在我们添加依赖项B → C,它违反了BCNF(要求每个行列式都是超级密钥)和3NF(如果确定性是一个主要属性,则容忍非超级决定因素,即属于任何键的属性,C不是主要属性,因为唯一的键是A B)。

在这种情况下,规范化很简单,我们将原始关系R分解为两个关系,第一个R1(B, C),表示关联B和{{1}的信息},以便我们可以知道C的每个值,它是B的唯一对应值,第二个C代表R2(A, B, D, E)D的值E由两个值AB唯一确定。两个关系R1R2都在BCNF和3NF中,因为R1的关键是B,而关键字R2是{{} 1}}。

值得一提的是,这种分解是无损和依赖保留的。

  

如果您对E有依赖关系D,那么您将如何规范关系?

同样在这种情况下,策略是在两个关系中分解A B,这次是RR1(A, B, C, D)。同样,我们可以注意到两个关系都在BCNF和3NF中,并且保留了数据和依赖关系。