三大范式简介
- 第一范式:第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项
- 第二范式:第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF)。第二范式要求每一行都要有唯一标识存在,这个唯一属性列被称为主关键字或主键、主码。实体的属性完全依赖于主关键字。
- 第三范式:第三范式是在第二范式的基础上建立起来的。第三范式指:属性不依赖于其他非主属性。
举例说明
现有一张表:
存在的问题:
- 存在非常严重的冗余,姓名,系名,班主任这三列大大重复。
- 添加数据存在问题,要想单独添加系名和系主任,则无法办到
- 数据删除存在问题,删除一名同学对应的系名和系主任也没有了,数据依赖太强
解决办法
使用三大范式进行数据表的拆分
- 使用第一范式,将系列拆分为系名和系主任两列,结果如下图:
- 使用第二范式,将表拆分为每列属性可依赖于首列的两张表,如图所示:
- 使用第三范式,继续进行拆分,将表分为仅依赖于首列主属性的表
这样就解决了上述存在的三个问题,表也拆分完毕。
简单来说以下三大范式:第一范式就是说每个列就是是一个不可拆分的词语,若还可以再细分,便不符合第一范式。第二范式就是告诉人们在建表的时候要确立主键,方便查找。第三范式就是说如果一张表可以拆分要继续拆分。