数据库概论的关系数据理论(保证理解透彻)

函数依赖:

函数依赖的基本理解

函数依赖的定义:

理解:
关键看X属性组,若在关系R中,元组的X属性组相同时,有Y属性组相同,X函数决定Y。
并且,若在关系R中,每个元组的X属性组都不相同,则X一定函数决定Y。
在这里插入图片描述

函数依赖示例

在这里插入图片描述

函数依赖的特性

理解:

(1)属性组X函数决定属性组Y,且Y不包含于X,则这种函数依赖也叫非平凡的函数依赖
之后针对的大部分都是非平凡的函数依赖,因为平凡的函数依赖研究起来没意义!!!

(2)属性组X函数决定属性组Y,则任意若干个元组,若在属性组X上的值相同,那么对应的属性组Y的组一定相同。

(3)略。
(4)略。

(5)若函数依赖是基于关系模式R的,则对于该关系模式下所描述的所有关系,都有该函数依赖。若函数依赖是基于具体的关系r的,则函数依赖对该关系必然成立。

(6)若在关系R中,每个元组的X属性组都不相同,则X一定函数决定Y。在这里插入图片描述

函数依赖的练习:

在这里插入图片描述

函数依赖分类

完全函数依赖

完全函数依赖和部分函数依赖定义

理解:

在关系模式R中,有属性组X函数决定属性组Y,
若属性组X内的所有真子集都不函数依赖属性Y,则称X完全函数决定Y,也叫Y完全函数依赖于X
若存在属性组X内的真子集函数决定属性组Y,则称X部分函数决定Y,也叫Y部分函数依赖于X
在这里插入图片描述

完全函数依赖和部分函数依赖练习:

在这里插入图片描述

传递函数依赖

传递函数依赖基本定义:

理解:

在关系模式R中,有属性组X函数决定属性组Y,属性组Y函数决定属性组Z,且Y不包含于X,Z不包含于Y(表明这两个函数依赖都是非平凡的函数依赖),且Z不包含于X,Y不函数决定X,那么则称Z传递函数依赖于X,也叫X传递函数决定Z。
在这里插入图片描述

传递函数依赖练习

在这里插入图片描述

函数依赖的几个重要概念:

候选键

候选键的定义:

理解:

在关系模式R(U)中,若有属性组K完全函数决定整个U属性组,则称K为关系模式R上的候选键(候选码)
候选码中的每一个属性叫主属性,在属性组U中,候选码K之外的每一个属性称为非主属性
若属性组K是R的候选码,且属性组K包含于属性组S,则属性组S称为R的超键
在这里插入图片描述

候选键练习

在这里插入图片描述

外来键(外键)

理解:

在关系模式R中,存在一个属性组X,该X并不是R的候选码,但属性组X是其他关系模式的候选码,则称X为R的外键。
在这里插入图片描述

逻辑蕴含:

理解:

在关系模式R中,把R中的所有函数依赖集合称为F,从F这堆函数依赖中推导出其他函数依赖比如X->Y,(X,Y都为R的属性组),则称F逻辑蕴含X->Y (R的函数依赖集合F逻辑蕴含属性组X函数决定Y)。(至于推导方式就是指ArmStrong公理)。

○若关系模式R中的每一个满足函数依赖集合F的关系r,能用形式逻辑推理方式推出X->Y(X,Y都为R的属性组),那么F逻辑蕴含X->Y。

○若关系模式R中的每一个满足依赖集合F的关系r,均满足X->Y,那么F逻辑蕴含X->Y。

对于函数依赖集合F的理解:函数依赖有显式的和隐含的,所以需要推导的都是隐含的。

在这里插入图片描述

闭包:

理解:

这么理解:由函数依赖集合F推导出的依赖集合统称F的闭包,记做F+
F+肯定大于等于F,因为闭包包括F自身,也包括隐含函数依赖。

若F的闭包F+=F,那么称F为全函数依赖族,也叫函数依赖完备集

在这里插入图片描述

关于函数依赖的公理和定理:

ArmStrong公理

ArmStrong公理介绍:

理解:

关系模式R(U),U为R描述的属性集,U={A1,A2,A3,…,An},F为R的函数依赖集合,那么关系模式也写做R(U,F)。

自反律:若属性组Y包含于属性组X,属性组X包含于U,那么X函数决定Y一定是F的逻辑蕴含。(X->Y也叫平凡的函数依赖)。

增广律:若属性组X函数决定属性组Y,且X->Y包含于F,且属性组Z包含于U,则XZ->YZ一定是F的逻辑蕴含。(XZ也就是(X,Z))。

传递律:若属性组X函数决定属性组Y,且X->Y包含于F,且属性Y函数决定属性组Z,则X函数决定Z一定是F的逻辑蕴含。(X->Z不一定是传递函数依赖,因为不一定满足传递函数依赖的定义)
在这里插入图片描述

ArmStrong公理证明

在这里插入图片描述

由ArmStrong公理推出的定理:

在这里插入图片描述

属性闭包:

理解:

在关系模式R(U,F)中,有属性组X包含于U,U={A1,A2,A3,…,An},能够通过ArmStrong推导出属性组X函数决定(单一属性)Ai,那么Ai的集合就是X关于F的属性闭包。

在这里插入图片描述

函数依赖集的最小覆盖:

覆盖的概念:

理解:

关系模式R的两个函数依赖集合F、G,如果F的闭包等于G的闭包,那么称F和G是等价的,也叫F覆盖G或G覆盖F。
在这里插入图片描述

属性闭包的计算算法:

理解:

简单说一下为什么需要求属性集X关于函数依赖F的属性闭包?
当我们需要确定属性集X函数决定属性集Y,即X->Y,这个依赖是否被F逻辑蕴含,换句话说看这个依赖是否包含于F的闭包F+。我们一般会想到直接求F的闭包,但是这样是不容易求的,因为没办法把一个复杂的函数依赖集合的所有逻辑蕴含的依赖都求出来。所以我们可以借助求X的属性闭包。
因为X关于F的属性闭包XF+是X函数决定Ai的集合,那么倘若存在X->Y,则必然有Y包含于这个属性闭包中,反之,若Y包含于这个属性闭包中,则必然后有X->Y(分解律)。且求属性闭包比较简单,所以这就是求X关于F的属性闭包的原因。
如果把属性闭包搞懂了,那么老师给出的求解公式其实很简单,甚至不需要公式,自己也能推出来。其实主要用的就是传递律、自反律。

利用自反律得到X0,X0={A,B},取X0的子集根据F得到AB->C,B->D,则根据第二步W=是C也是D,B为W的子集(C,D),再把X0与{C,D}求并集得到X1,重复求即可。

在这里插入图片描述

函数依赖集的性质:

在这里插入图片描述

最小覆盖:

在这里插入图片描述

关系范式:

1NF

**理解:**每个分量都是不可再分的数据项
在这里插入图片描述
在这里插入图片描述

2NF

**理解:**消除了非主属性对候选码的部分依赖
在这里插入图片描述

在这里插入图片描述

3NF

**理解:**消除了非主属性对候选的传递依赖。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

BCNF(Boyce-Codd):

**理解:**所有的函数依赖中的决定因素必须包含候选码。
在这里插入图片描述

在这里插入图片描述

多值依赖:

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

4NF

**理解:**消除了非主属性对候选码以外的属性组的多值依赖。
在这里插入图片描述

发布了38 篇原创文章 · 获赞 38 · 访问量 2736

猜你喜欢

转载自blog.csdn.net/l13kddd/article/details/105330313