数据库基础(4)函数依赖公理和推论(Armstrong公理),属性闭包和求候选键的技巧

函数依赖里面,函数依赖公理,Armstrong公理以及属性闭包的定义都有必要仔细学习

1.逻辑蕴含基本定义

逻辑蕴含

2.Armstrong公理和推论–可以用来判断一个函数依赖X -> Y 是否逻辑蕴含于函数依赖集F

Armstrong

Armstrong推论(三个规则)的推出过程

过程

使用Armstrong公理判断逻辑蕴含的例题(这个就要自己多练练就熟悉了)

例题

3.函数依赖集F闭包(F+)和属性集闭包(X+)的概念

首先理解什么是F+ (函数依赖集F的闭包)

F+

例题

题目
答案

属性闭包

属性闭包

简单来说,属性闭包X+指的就是 所有X可以决定的属性的集合
我们也可以用属性闭包判断 X - > Y 是否蕴含于F

一道求属性闭包的例题

属性闭包例题
(1)求A+,先把A所决定的所有的属性依次扫描:
A+=A
A0=AB (因为有A -> B存在,所以A决定了B,就把B和A放在一起)
A1=ABC (由于A0=AB, AB中的B又决定了C(B->C),所以我们把C也加入属性闭包的集合中)
ABC没有可以决定的属性了,因此最终A+=ABC
(2)求属性集AD的闭包(AD+)
这道题和(1)题同理,
首先看F中是否有AD直接决定的属性,看了一下,发现没有 AD-> a 的情况存在
然后,我们考虑AD中的A或D是否有直接决定的属性,扫描一下,发现有!
AD+=AD
AD0=ADB (因为有A->B,所以把B加入属性闭包)
AD1=ADBC (因为第二项是B->C,所以把C也加入属性闭包)
因此最后 AD+ = ADBC
(3)第三题就自己做吧~~ 不展示过程啦,道理是一样的

4.关于求候选键的技巧

如果一道题中,给了依赖关系让我们求候选键,最佳方式是利用属性闭包算法来做,比如下面的题:
题目

解题

我们先依次求ABD的属性闭包:
A+ = A
B+ = B
D+ = DAB
由于D决定了AB,但是没有决定C,CD在一起可以决定ABCD,所以第一题中R的候选键是CD

  • 18
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值