3NF规范化:通过该算法可以获得一个保持函数依赖性并满足3NF的关系模式分解
先求出Fmin
1、X->A,XA=R 那么XA单独构成一个关系模式
2、如果关系模式R中的某些属性与函数依赖集F的左右部属性均无关的话,将他们单独作为一个模式
3、出现X->A1,X->A2……可以合并成一个关系模式 X->A1A2……
继续:
在上述规范化的基础上,再继续求取既保持函数依赖性又满足无损连接性的3NF的关系模式分解
1、拿到分解后,进行判断该模式分解 是否具有无损连接性
2、若具有无损连接性,则结束;若不具有,则在模式分解中并上一个由候选码组成的关系模式
提示:从1NF到3NF 需要逐步消除非主属性对码的部分依赖以及非主属性对码的传递依赖,把这些冗余的依赖
都单独分解出来,在综合上述方法,进行进一步的规范化。
其中 判断无损连接性的方法是用表格法(表格法适合多个关系,定义法只适合两个关系)。
最后还有个BCNF的总结:
把一个关系模式分解为具有无损连接性的BCNF
1、如果所有模式都是BCNF,则结束
2、X->A ,X中不包含候选码,将XA从模式中分解,亦即:S1=XA S2=S-(A-X)
用{S1,S2}代替S
分解结束;
关系模式规范化的三种标准:
保证无损连接性:保证不丢失信息
保证函数依赖性:减轻或解决各种异常状况
既保持函数依赖性又保持无损连接性
文章内容,是学习MOOC网的数据库原理及应用课程之后,自己梳理总结。希望对大家的数据库学习有所帮助。
如有不足或错误之处欢迎留言,一定更正。