• 数据库相关习题


    求最小函数依赖集(把多余依赖去掉):

    思路:

    右边化成单一属性,

    去掉多余依赖

    左边去掉某些属性依然可以推出右边,则删除该属性。

    例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).通过分析没有多余的依赖,则:   

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

           (3).对于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

       

    例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)查找多余函数依赖,已知左边单个属性的有E,G,F,H,很容易知道E→G,G→E不是多余依赖,

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

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

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

     判断模式分解是否保持函数依赖

    依据若F上每一个函数依赖都在其分解后的某一关系上成立,则这个关系是保持函数依赖的。

  • 相关阅读:
    【原】React操作表单
    【原】使用webpack打包的后,公共请求路径的配置问题
    【原】React中,map出来的元素添加事件无法使用
    codeforces 1288C. Two Arrays(dp)
    Educational Codeforces Round 80 A-E简要题解
    HDU 2586 ( LCA/tarjan算法模板)
    POJ 1330(LCA/倍增法模板)
    POJ 3368 (ST表)
    POJ 3264 Balanced Lineup(ST模板)
    codeforces 1285E. Delete a Segment
  • 原文地址:https://www.cnblogs.com/yizhizhangBlog/p/15942664.html
Copyright © 2020-2023  润新知