数据库建表三范式简介

为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就称为范式。范式是符合某一种设计要求的总结。要想设计一个结构合理的关系型数据库,必须满足一定的范式。

在实际开发中最为常见的设计范式有三个:

一范式1NF(确保每列保持原子性)
1、    数据库表的每一行都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或不能有重复的属性。如果出现重复的属性,就可能需要定义一个新的实体,新的实体由重复的属性构成,新实体与原实体之间为一对多关系。
2、    表的每一行包含一个实例的信息。
 
第二范式2NF
1、    要求数据库表中的每个实例或行必须是唯一的。为实现区分,通常需要为表加一个列,以存储各个实例的唯一标识(即主键)。
2、    实体的属性完全依赖于主关键字。所谓完全依赖指不能存在仅依赖主关键字一部分的属性。如果存在,那么这个属性和主关键字的这一部分应该分离出来形成一个 新的实体,新实体与原实体之间是一对多的关系。为实现区分通常需要为表加上一个列,以存储各个实例的唯一标识。总之第二范式就是非主属性非部分依赖于主关 键字。
 
第三范式3NF

一个数据库表中不包含已在其他表中已包含的非主关键字信息。例如存在一个部门信息表,其中每个部门有部门编号DEPT_ID、部门名称、部门简介等信息。那么在员工信息表中列出的部门编号DEPT_ID后,就不能再有关于部门的其他信息,否则就会造成数据冗余

原文地址:https://www.cnblogs.com/workerman/p/4665088.html