数据库设计2-范式

数据库设计

范式概述

目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、 第四范式(4NF)和第五范式(5NF,又称完美范式)。

第一范式

第一范式(1NF)是指在关系模型中,对于添加的一个规范要求,所有的域都应该是原子性的,即数据库表的每一列都是不可分割的原子数据项,而不能是集合,数组,记录等非原子数据项。第一范式就是无重复的域。
第一范式每一列不可再拆分,称为原子性。

第二范式

先行了解概念:
函数依赖:通过a的属性值可以确定唯一b的属性值,则称b依赖于a;
在1NF的基础上,
完全函数依赖:a是一个属性组,b属性值的确定需要依赖a属性组中的所有值,则b完全依赖于a
部分函数依赖:a是一个属性组,b属性值的确定只需要依赖a属性组中某一些值
传递函数依赖:a确定于b,b确定于c,如果通过a属性组的值可以确定b的值,b属性组的值可以确定c,则说c传递函数依赖于a;
码:如果一个属性或属性组在一张表中,被其他所有属性所完全依赖,则说这个属性是该表的码;
主属性:码属性中的所有属性;
非主属性:除过码属性组的属性;

第二范式:在1NF的基础上,非码属性必须完全依赖于主码(在1NF的基础上消除非主属性对主码的部分函数依赖);
第二范式的特点:

  1. 一张表只描述一件事情。
  2. 表中的每一列都完全依赖于主键

第三范式

第三范式:在2NF的基础上,任何非主属性不依赖于其他非主属性(在2NF的基础上消除传递依赖)
满足第三范 式的数据库表应该不存在如下依赖关系:主键列 → 非主键列 x → 非主键列 y;
不产生传递依赖,表中每一列都直接依赖于主键。而不是通过其它列间接依赖于主键。

还有一些更严谨的范式要求,满足以上这三个范式可以满足大多数的数据库设计;

猜你喜欢

转载自blog.csdn.net/weixin_52723971/article/details/112266877