数据库知识整理——关系的规范化(二)

一、闭包的计算

二、候选码的相关计算

三、函数依赖集的等价

四、函数依赖集的最小覆盖的计算

一、闭包的计算

计算X的闭包: 首先XF+=X 之后对于F中的每个函数依赖,A->B,只要A在XF+中,那么XF+就并上B,直到XF+不再改变为止,得到的结果就是X的闭包。

二、候选码的相关计算

1、得到一个候选码

首先令K=U,然后逐个删除K中的元素,如果删除之后的K在F上的闭包是U,那么K=K-X(X为删除的元素),直到不能再删除元素为止,最后得到的就是一个候选码(这个方法其实就是从候选码与函数依赖之间的关系得到的,也就是说如果是候选码的话,那么就可以函数决定所有的属性)。
2、得到所有的候选码
可以重复使用得到一个候选码的方法直到得到所有的候选码,还有直接求出所有的候选码的方法:
首先求出一个候选码,然后得到该候选码中的所有的双部属性,对于其每一个双部属性,如果F中存在函数依赖X->Y,其中有双部属性A属于Y(注意是属于,并不是等于,只要属于就可以了)那么就用X代替该候选码中的A得到新的候选码,知道不能得到新的候选码。

三、函数依赖集的等价

如果F=G,那么就是F属于G的闭包,G属于F的闭包。

四、函数依赖集的最小覆盖的计算

函数依赖集的最小覆盖应该满足的条件是:
  1. 单属性化:也即是说如果函数依赖集的右边是多个属性的话,就要分开,直接左边的属性集保持不变,右边拆开就可
  2. 即约化:也就是说在函数依赖中左边有多个属性,即约化就是为了将左边的属性集合简化,方法就是通过不断删除元素,计算闭包,注意即约化计算闭包的时候考虑的函数依赖集是F,也就是说包括要进行既约的这个函数依赖也在内
  3. 无冗余:将某个函数以来删除,然后看其左边的属性集的闭包在新的函数依赖集G(也就是在F的基础上去掉删除的函数依赖得到的新的属性集合)上的闭包是否包括删除的函数依赖的右边的部分,如果包括,那么就说明该函数依赖是冗余的,将其删除。(注意的是在计算闭包的时候,参考的函数依赖集合是G,也就是在F的基础上删除被删除的函数依赖的新的函数依赖集合)

在求解函数依赖集的最小覆盖的时候,一般是先单属性,然后是既约化,最后是无冗余化,
并且既约化和无冗余化以依赖的函数依赖集合是不同的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值