如何找到关系的最高范式

要理解这个话题,你应该对 函数依赖项和候选键 范式 .

null

找到关系的最高标准形式的步骤:

  1. 找到关系中所有可能的候选键。
  2. 将所有属性分为两类:基本属性和非基本属性。
  3. 查看1 正规形式2 等等如果不能满足n th 范式条件下,最高范式为n-1。

例1。找到关系的最高标准形式 R(A,B,C,D,E)与FD集{A->D,B->A,BC->D,AC->BE}

第一步。 如我们所见,(AC) + ={A,C,B,E,D}但是它的子集都不能确定关系的所有属性,所以AC将是候选键。A可以从B派生,所以我们可以用B替换AC中的A。所以BC也将是一个候选密钥。因此将有两个候选键{AC,BC}。

第二步。 素数属性是本例中作为候选键{A,B,C}的一部分的属性,其他属性在本例中是非素数{D,E}。

第三步。 关系R在1中 关系型DBMS的标准形式不允许多值或复合属性。

这种关系不在2 正常形式,因为A->D是部分依赖项(A是候选键AC的子集,决定非素数属性D),2 范式不允许部分依赖。

所以最高的标准形式是1 正常形式。

例2。 找到关系的最高标准形式 R(A,B,C,D,E),FD设置为{BC->D,AC->BE,B->E}

第一步。 如我们所见,(AC) + ={A,C,B,E,D}但是它的子集都不能确定关系的所有属性,所以AC将是候选键。A或C不能从关系的任何其他属性派生,因此只有1个候选键{AC}。

第二步。 prime属性是本例中作为候选键{A,C}的一部分的属性,其他属性在本例中是非prime{B,D,E}。

第三步。 关系R在1中 关系型DBMS的标准形式不允许多值或复合属性。

这个关系是在2 正常形式,因为BC->D在2中 范式(BC不是候选键AC的适当子集)和AC->BE在2中 标准形式(AC为候选键),B->E为2 范式(B不是候选密钥AC的适当子集)。

这种关系不在3 研发部 标准形式,因为在BC->D(BC不是超级键,D也不是素数属性)和B->E(B不是超级键,E也不是素数属性)中,满足3 研发部 正常情况下,FD的LHS应该是超级键,或者RHS应该是基本属性。

所以关系的最高标准形式是2 正常形式。

例3。 找到关系的最高标准形式 R(A、B、C、D、E) 具有 FD集合{B->A,A->C,BC->D,AC->BE}

第一步。 如我们所见,(B) + ={B,A,C,D,E},所以B将是候选键。B可以通过AC->B(将AC->be分解为AC->B和AC->E)从AC中导出。所以AC将是超级关键,但是(C) + ={C}和(A) + ={A,C,B,E,D}。所以(AC的子集)将是候选密钥。因此将有两个候选键{A,B}。

第二步。 素数属性是本例中作为候选键{A,B}的一部分的属性,其他属性在本例中是非素数{C,D,E}。

第三步 .关系式R在1中 关系型DBMS的标准形式不允许多值或复合属性。

这个关系是在2 正常形式,因为B->A在2中 标准形式(B是一个超键)和a->C在2中 标准形式(A是超级键)和BC->D在2中 正常形式(BC是一个超级键)和AC->BE在2 标准形式(AC是一个超级键)。

这段关系是3 研发部 正常形式,因为所有FD的左键都是超级键。该关系在BCNF中,因为所有FD的所有LH都是超级键。所以最高的标准形式是BCNF。

文章由Sonal Tuteja提供。如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享