-1

给定与属性A,B,C,D,E的关系R以及功能依赖关系A-> B,BC-> E,ED-> A的集合。将其分解为高正常形式。将以下关系分解为BCNF

+1

请说明你能做些什么。 Google'stackexchange homework'&阅读[问]。我们不是来做你的功课。 – philipxy

回答

1

candidate key定义:

在数据库的关系模型,关系的候选键是 该关系的最小的超密钥;即,一组属性 使得:这意味着该组

  1. 的关系不具有两个不同的元组(即行或在公共的数据库语言记录)具有相同的值,这些 属性(属性是一个超级键)
  2. 没有这些属性的适当子集(1)持有(这意味着该集合是最小的)。

鉴于F.D唯一CD来到左侧,这意味着每一个关键必须具备CD

闭合(CD)不等于所有的属性,但是,从FD的,我们可以清楚地看到:

关闭(CDA)=关闭(CDB)=关闭(CDE)=设置所有的属性,这意味着所有三个CDA,CDBCDE都是候选键。

现在让我们按照此stanford lecture中给出的BCNF分解算法。

给出模式R.

  1. 计算键R.
  2. 重复,直到所有的关系都属于BCNF。
    • 选择具有违反BCNF的F.D A→B的任何R'。
    • 将R'分解为R1(A,B)和R2(A,其余属性)。
    • 计算R1和R2的F.D。
    • 计算R1和R2的密钥。

A-->B违反BCNF作为A不是关键的,所以我们分解R导入

R1(A,C,d,e)和R2(A,B)。

R2现在在BCNF中,但是R1不是由于F.D ED-->A,因为ED不是关键。因此,我们进一步将R1分解为:现在明显地R3和R4均在BCNF中。(R3,R4,E,D)。

+1

从什么来源采取这些引文?您需要在答案中包含一个*链接*以及作者姓名。请参阅:https://stackoverflow.com/help/referencing –