数据库:求函数依赖集闭包和属性集闭包

1. 函数依赖集闭包的定义

定义1:若给定函数依赖集 F,可证明其他函数依赖也成立,则称这些函数依赖被 F 逻辑蕴涵

定义2:令F为一函数依赖集,F 逻辑蕴涵的所有函数依赖组成的集合称为F 的闭包,记为 F+

计算方法是 Armstrong公理的推理规则

举例:

        自反律:(A,B) → B

        增补律:(A,B) → C,则 (A,B, D, E) → (C, D, E)

        传递律:A → B,B → C,则 A → C

        合并律:A → B,A → C,则 A → (B, C)

        分解律:A → (B, C),则 A → B,A → C

        伪传递律:A → B,(B, C) → D,则 (A, C) → D

例题:令 r(R) = r(A, B, C, G, H, I),函数依赖集F = {AB, AC, CGH, CGI, BH}。可列出 F+ 中的几个依赖。

解:因为 A→B 且 B→H,由传递律可得 A→H;

       因为 CG→H 且 CG→I,由合并律可得 CG→HI;

       因为 A→C 且 CG→I,由伪传递律可得 AG→ I。

       ……

 2. 属性集闭包的定义

定义:令 r(R) 为关系模式,F为函数依赖集,A \subseteq R,则称在函数依赖集 F 下由 A 函数确定的所有属性的集合为函数依赖集 F 下属性集 A 的闭包,记为 A+ 。

例题 1:对于关系模式 r(R) = r(A, B, C, D, E)和函数依赖集F = {A→BC, CD→E, B→D, E→A}, 试计算 A+, B+ 。

解:① 设 closure = A,

      由 A→BC 得,closure = ABC,

      由 B→D 得,closure = ABCD,

      由CD→E 得,closure = ABCDE,综上,A+ = ABCDE。

     

设closure = B,

      由B→D得,closure=BD,综上,B+ = BD。

例题2: r(R) = r(A, B, C, G, H, I),F = {A→B, A→C, CG→H, CG→I, B→H},计算(AG)+。

解:设closure = AG,

      由 A→B 得,closure = ABG,

      由 A→C 得,closure = ABCG,

      由 CG→H 得,closure = ABCGH,

      由 CG→I 得,closure = ABCGHI,  综上,AG+=ABCGHI。

  • 8
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值