三大范式简介

  1. 第一范式:第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项
  2. 第二范式:第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF)。第二范式要求每一行都要有唯一标识存在,这个唯一属性列被称为主关键字或主键、主码。实体的属性完全依赖于主关键字。
  3. 第三范式:第三范式是在第二范式的基础上建立起来的。第三范式指:属性不依赖于其他非主属性。

举例说明

现有一张表:

20210528130413

存在的问题:

  1. 存在非常严重的冗余,姓名,系名,班主任这三列大大重复。
  2. 添加数据存在问题,要想单独添加系名和系主任,则无法办到
  3. 数据删除存在问题,删除一名同学对应的系名和系主任也没有了,数据依赖太强

解决办法

使用三大范式进行数据表的拆分

  1. 使用第一范式,将系列拆分为系名和系主任两列,结果如下图:

20210528130614

  1. 使用第二范式,将表拆分为每列属性可依赖于首列的两张表,如图所示:

20210528130640

  1. 使用第三范式,继续进行拆分,将表分为仅依赖于首列主属性的表

20210528130702

这样就解决了上述存在的三个问题,表也拆分完毕。

简单来说以下三大范式:第一范式就是说每个列就是是一个不可拆分的词语,若还可以再细分,便不符合第一范式。第二范式就是告诉人们在建表的时候要确立主键,方便查找。第三范式就是说如果一张表可以拆分要继续拆分。

参考

数据库设计的三大范式通俗讲解

评论