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

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

1.逻辑蕴含基本定义

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

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

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

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

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

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

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

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

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

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

例题

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

属性闭包

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

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

一道求属性闭包的例题

数据库基础(4)函数依赖公理和推论(Armstrong公理),属性闭包和求候选键的技巧_第9张图片
(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

你可能感兴趣的:(1.2,计算机-数据库)