数据库相关习题

求最小函数依赖集:

思路:右边化成单一属性,左边去掉某些属性依然可以推出右边,则删除该属性。

例1:设有函数依赖集F={AB→CE,A→C,GP→B,EP→A,CDE→P,HB→P,D→H,ABC→PG},求与F等价的最小函数依赖集。

解:(1).将F中依赖右部属性单一化:

   F1= AB→C    HB→P  AB→E    D→H   A→C     D→G  GP→B    ABC→P   EP→A    ABC→G   CDE→P

       (2).对于AB→C,由于有A→C,则为多余的:

  F2= AB→E    HB→P  A→C    D→H  GP→B    D→G   EP→A    ABC→P  CDE→P   ABC→G

       (3).通过分析没有多余的依赖,则:   

  F3=AB→E    HB→P  A→C     D→H  GP→B    D→G   EP→A    ABC→P  CDE→P   ABC→G

 

例2:设有关系模式R(U,F),其中:

   U={E,F,G,H},F={E→G,G→E,F→EG,H→EG,FH→E} 求F的最小依赖集。

解:1)右边拆成单属性 F={E→G,G→E,F→E,F->G,H→E,H-->G,FH→E} 

2)查找左边依赖是否有多余属性。FH-->E    得:F={E→G,G→E,F→E,F->G,H→E,H-->G}

3)查找多余函数依赖,已知左边单个属性的有E,G,F,H,很容易知道E→G,G→E不是多余依赖,

F->E: F+=FGE,故F-->E是多余的。H-->E: H+=HGE故H-->E是多余的

此时F={E→G,G→E,F->G,H-->G,FH→E}

 

上一篇:2022.2.4随笔


下一篇:Variety of Digits (数位dp)