在DBMS中查找FD {A->BC, B->AC, C->AB}的规范覆盖
规范覆盖称为最小覆盖,也称为FD的最小集合。如果FC中的每个FD都是简单FD、左归约FD和非冗余FD,则FD集合FC称为F的规范覆盖。
简单FD - 如果Y是单个属性,则X->Y是简单FD。
左归约FD:如果X中不存在额外属性,则X->Y是左归约FD。{额外属性:如果XA->Y,则如果X->Y,则A是额外属性}。
非冗余FD - 如果无法从F - {X->y}推导出X->Y,则X->Y是非冗余FD。
问题
查找FD {A->BC, B->AC, C->AB}的规范覆盖。
解决方案
关系模式R(A,B,C) F: {A->BC, B->AC, C->AB}
步骤1 - 创建一个单一右端
依赖项A->BC将分解为A->B,A->C。
F: { A->B
A->C
B->A
B->C
C->A
C->B}步骤2 - 删除任何存在的额外属性。
F:{ A->B
A->C
B->A
B->C
C->A
C->B} NO extraneous attributes exists步骤3 - 删除冗余FD
F: { A->B
A->C
B->A
B->C
C->A
C->B }删除B->A依赖项,我们可以通过B->C和C->A从B获得A。
F= {A->B
A->C
B->C
C->A
C->B}通过删除C->B依赖项,我们通过C->A,A->B从C获得B。
F={A->B
B->C
C->A
A->C}通过删除A->C依赖项,我们可以通过A->B,B->C从A确定C
步骤4 - 最终的规范覆盖如下所示:
FC ={ A->B, B->C, C->A }
[A]+ =BC
[B]+=AC
[C]+=AB.
广告
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP