您好,欢迎访问一九零五行业门户网

【DB】范式

在我的上一篇博客《【db】函数依赖》中,主要讲解了什么是函数依赖以及局部和传递依赖(fd)。在没有fd时,关系中是不可能有数据冗余,但当fd存在时,关系中就有可能存在数据冗余。如何消除呢?答案是模式分解。那么分解成什么样子,如何来衡量关系模式的好与
在我的上一篇博客《【db】函数依赖》中,主要讲解了什么是函数依赖以及局部和传递依赖(fd)。在没有fd时,关系中是不可能有数据冗余,但当fd存在时,关系中就有可能存在数据冗余。如何消除呢?答案是模式分解。那么分解成什么样子,如何来衡量关系模式的好与坏?答案是范式(nf)!
nf的种类与fd有着直接的联系,基于fd的范式有1nf、2nf、3nf、bcnf、4nf等多种。下面就分别介绍一下!
1nf
关系模式r的每个关系r,其属性为单值属性
2nf
消除局部依赖
3nf
消除传递依赖
bcnf
在3nf中,并没有排除主属性对候选键的传递依赖,如图所示:
推广。
3nf vs bcnf
非主属性与所有属性
bcnf vs 4nf
4nf针对的是多值依赖,关系r中的属性中有多值属性。
小结
1、2nf、3nf、bcnf都是以1nf为基础的,它们的前提是关系r的属性为单值属性。
2、2nf已成为历史,现在最常用的是3nf和bcnf。
3、我终于把范式弄明白了,很是高兴,看来只要你想弄明白,就没有解决不了的!
其它类似信息

推荐信息