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

                    举例说明关系数据库表的设计之三大范式

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

     举例说明:

     现有一张表:

     数据库设计的三大范式通俗讲解_第1张图片

       存在的问题:

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

  解决办法:

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

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

   数据库设计的三大范式通俗讲解_第2张图片

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

  >数据库设计的三大范式通俗讲解_第3张图片

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

数据库设计的三大范式通俗讲解_第4张图片

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

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

你可能感兴趣的:(MySql数据库)