范式的简单理解

在设计数据库中,需要遵从不同的规范要求,不同的规范即时不同的范式,每种范式呈递次规范,这样才能最大程度的消除冗余程度。

目前关系数据库有六种范式:1NF(第一范式)、2NF(第二范式)、3NF(第三范式)、4NF(第四范式)、5NF(完美范式)。

1NF(第一范式):

定义:关系模式中R中的每一个属性A的值域都是不可分的原子项。
说明:满足1NF的关系称为规范化的关系,否则称为非规范化的关系。
例如:

学生姓名 学生课程
张三 数据结构,Java程序设计,SQL数据库设计

上表就不满足1NF,因为{数据结构,Java程序设计,SQL数据库设计}是集合,而下表就满足了。

学生姓名 学生课程
张三 数据结构
张三 Java程序设计
张三 SQL数据库设计

2NF(第二范式):

定义:在1NF的基础上,消除非主属性对键的部分依赖,即为2NF。
例如下表:

学生学 学生姓名 班级 课程 院系
001 张三 软件181 C110 计算机科学系
002 李四 电器181 C113 信息工程系
003 王五 英语181 C119 人文科学系

对于上表,学生姓名、班级 对学生学 和课程 属部分函数依赖。对上表可进行拆分,可消除部分依赖。如下所示。
学生表:

学生学 学生姓名 班级 院系
001 张三 软件181 计算机科学系
002 李四 电器 181 信息工程系
003 王五 英语181 人文科学系

课程表

学生学 课程
001 C110
002 C113
003 C119

3NF(第三范式):

定义:在2NF基础上,消除非属性对键的传递依赖,就是不包含传递相关性,即为3NF。
在下表中,我们可看出用学生学 可确定学生的所在班级。

学生学 学生姓名 班级 课程 院系
001 张三 软件181 C110 计算机科学系
002 李四 电器181 C113 信息工程系
003 王五 英语181 C119 人文科学系

在班级 中又可确定院系。由此可见,院系对学生学 存在传递依赖
而对学生表进行拆分,就可消除传递依赖。
班级-院系如下:

C110 计算机科学系
C113 信息工程系
C119 人文科学系

BCNF:

符合3NF,并且主属性不依赖主属性,即消除原关系中主属性对键的部分与传递依赖。
条件:所有非主属性对每一个候选键都是完全函数依赖;所有的主属性对每一个不包含它的候选键,也是完全函数依赖;没有任何属性完全函数依赖与非候选键的任何一组属性。

在设计数据库时,最重要的就是符合1NF、2NF、3NF和BCNF对于4NF和5NF尽量注意就可以了。我们可以了解一下。

4NF:

要求将同意表内的多对多关系删除。

5NF:

从最终结构重新建立原始结构。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年9月11日
下一篇 2019年9月11日

相关推荐