数据库三范式简介

来源:互联网 发布:阿里云如何备份 编辑:程序博客网 时间:2024/05/21 16:44

第一范式(1NF):

要求:数据库中的所有字段都不可分,即数据库中的每个字段都要满足原子性。

在关系型数据库中,第一范式是对关系模式的基本要求,不满足第一范式的数据库就不是关系数据库

第二范式(2NF):

要求:表中的每列都要与主键相关,不能只跟主键的某一部分相关。即一个表只能说明一个事物。

例(不符合第二范式):

学生表:学号、姓名、年龄、课程名称、成绩、学分;

上面这个学生表中就说明了两个事物:1、学生信息;2、课程信息

这样设计表会有下列问题:

数据冗余:每条记录都含有相同信息;

删除异常:删除所有学生成绩,就把课程信息全部删除;

插入异常:学生未选课,无法记录进数据库;

更新异常:调整课程学分,所有行都调整


修正:

学生表:学号、姓名、年龄

课程表:课程名称、学分

选课关系:学号、课程名称、成绩

满足第二范式只消除了插入异常,还可能会存在数据冗余、更新和删除异常

第三范式(3NF):

要求:每列都与主键有直接关系,而不是间接关系

例:(不符合第三范式):

表:学号、 姓名、 年龄、 所在学院、 学院联系电话

关键字为单一关键字”学号“, 存在依赖传递: 学号 --->  所在学院 ---> 学院地点,、学院电话

存在问题:

数据冗余:有重复值; 

更新异常:有重复的冗余信息,修改时需要同时修改多条记录,否则会出现数据不一致的情况 

删除异常 

修正: 

学生:学号、姓名、年龄、所在学院 

学院:学院、地点、 电话

引用:http://www.jb51.net/article/19312.htm


0 0
原创粉丝点击