【数据库原理】关系数据库理论(三)

完全/部分函数依赖.

在这里插入图片描述

显而易见,只有当决定因素是属性的组合时讨论完全/部分函数依赖才有意义,因为当决定因素是单属性时,只会是完全函数依赖。

传递函数依赖.

在这里插入图片描述
需要注意的是,传递函数依赖可以是一种完全函数依赖,也可以是一种部分函数依赖。

★属性集闭包算法.

前面说过对于关系模式R(U)上的函数依赖集F及其闭包 F + F^+ F+的概念,实际工作中人们想要知道某个函数依赖 X → Y X→Y XY是否成立,如果 F + F^+ F+已知,那么只要查看 F + F^+ F+中是否包含该函数依赖即可。但问题在于, F + F^+ F+难于计算并且其中包含了很多冗余信息,可以说是高投资低收益。为了尽快确定X→Y是否成立,人们想到计算属性集X的闭包 X + X^+ X+来代替 F + F^+ F+。也就是说,只要找到所有由X决定的属性集,就能确定X→Y是否成立。
在这里插入图片描述
在这里插入图片描述
由此可见,属性集闭包的算法有如下的几种用途:

  • 判断属性集X是否为关系模式R的码,通过计算X的属性集闭包 X + X^+ X+,而后判断 X + X^+ X+中是否包含了R中的全部属性,若是,则X是关系模式R的码;否则X不是。
  • 通过检验Y是否为 X + X^+ X+的子集来验证函数依赖X→Y是否成立。

在这里插入图片描述

候选码.

在这里插入图片描述
依据以上定义,超码虽然能够决定所有的属性,但其中有很多无用的属性,而候选码有着【最小性】。我们感兴趣的是如何求解出一个关系模式R的候选码X.

★候选码算法.

在这里插入图片描述
定理中比较使用的是第三条,其余对于做题的帮助都不大,尤其是第六条,等于没说。

在这里插入图片描述
在这里插入图片描述

等价函数依赖集.

从形式上来看,往往给出的函数依赖集F的规模较小,而它对应的 F + F^+ F+却复杂得多。但我们知道, F F F F + F^+ F+两者所表达的信息却是一样多的,那么自然就会想到一个问题:还有其他的函数依赖集F’与F等价吗,如果有,我们能否找到规模最小的那一个?针对这个问题,我们首先给出函数依赖集等价的定义:
在这里插入图片描述
两个等价的函数依赖集在信息的表示能力上是完全相同的。而且实际上我们检验F是否等价于G,并不需要真正计算出二者的闭包,一个简单的方法如下:
在这里插入图片描述

无关函数依赖.

有些函数依赖集中有很多条函数依赖,我们理想化的情况是要去掉那些不独立的函数依赖、平凡函数依赖(因为没有意义)以及函数依赖中的无关属性,最终求得函数依赖集F上函数依赖数量最少的等价集合 F m i n F_{min} Fmin.
在这里插入图片描述

★最小函数依赖集 F m i n F_{min} Fmin算法.

在这里插入图片描述
在这里插入图片描述
更正:步骤F2中L3:先判定 X + X^+ X+中是否包含A,如果是,就说明Y是多余的属性,可以去除。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44246009/article/details/108084889