关系型数据库的设计三范式

1、第一范式(1NF)

在关系型数据库的设计中,第一范式是对关系模式的基本要求,不满足第一范式的数据库就不是关系数据库。
        所谓第一范式是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。在第一范式中表的每一行只包含一个实例的信息。举个栗子,对于学生的信息表中,不能将学生信息都放在一列中显示,也不能将其中的两列或多列在一列中显示;学生信息表的每一行只表示一个学生的信息,一个学生的信息在表中只出现一次。简而言之,第一范式就是无重复的列。

2、第二范式(2NF)

第二范式是在第一范式的基础上建立起来的,即满足第二范式必须先满足第一范式。                                                                                  第二范式要求数据库表中的每个实例或行必须可以被唯一地区分开。这通常需要为表加上一列,以存储各个实例的唯一标识。比如在学生信息表中加上了一列学号,因为每个学生的学号是唯一的,因此每个员工可以被唯一区分,即使是重名的同学。这个唯一属性列被称为主关键字或主键、主码。简而言之,第二范式就是表中非主关键字的列全部依赖于主关键字。

3、第三范式(3NF)
       满足第三范式必须先满足第二范式。第三范式要求一个数据库表中不包含已在其它表中已包含的非主关键字信息。例如,存在一个学院信息表,其中有每个学院的学院代号、学院名称、学院简介等信息。那么在学生信息表中列出学院代号后就不能再将学院名称、学院简介等信息都录入到学生信息表中。如果不存在部门信息表,则根据第三范式(3NF)也应该构建它,否则就会有大量的数据冗余。简而言之,第三范式就是属性不依赖于其它非主属性。

最后,三大范式只是一般设计数据库的基本理念,可以建立冗余较小、结构合理的数据库。如果有特殊情况,当然要特殊对待,数据库设计最重要的是看需求跟性能,需求>性能>表结构。所以不能一味的去追求范式建立数据库。

发布了7 篇原创文章 · 获赞 8 · 访问量 1331

猜你喜欢

转载自blog.csdn.net/R1qing2yun3/article/details/104532515