美文网首页
第一、二、三范式

第一、二、三范式

作者: 王王王王王景 | 来源:发表于2019-07-15 16:21 被阅读0次

1、第一范式

所谓第一范式,就是数据表的列不可再分。
看下面数据表,对于选课列明显是可以再分的,所以它是违反第一范式的。

2、第二范式

第二范式是指,首先满足第一范式,并且表中非主键列不存在对主键的部分依赖。
看下面的学生选课表:

学生选课表
表中主键为 (学号,课程),我们可以表示为 (学号,课程) -> (成绩,课程学分), 表示所有非主键列 (成绩,课程学分)都依赖于主键 (学号,课程)。 但是,表中还存在另外一个依赖:(课程)->(课程学分)。这样非主键列 ‘课程学分‘ 依赖于部分主键列 ’课程‘, 所以上表是不满足第二范式的。
我们把它拆成如下2张表:
学生选课表
课程信息表
那么上面2个表,学生选课表主键为(学号,课程),课程信息表主键为(课程),表中所有非主键列都完全依赖主键。不仅符合第二范式,还符合第三范式。
再看这样一个学生信息表:
学生信息表
上表中,主键为:(学号),所有字段 (姓名,性别,班级,班主任)都依赖与主键(学号),不存在对主键的部分依赖。所以是满足第二范式。

3、第三范式

第三范式定义是,满足第二范式,并且表中的列不存在对非主键列的传递依赖。

对于上面的学生信息表,虽然满足第二范式,所有字段都依赖主键(学号),但是,表中存在一个传力依赖,(学号)->(班级)->(班主任)。也就是说,(班主任)这个非主键列依赖与另外一个非主键列 (班级)。所以不符号第三范式。把这个表拆分成如下2个表;


学生信息表
班级信息表

这样,对主键的传递依赖就消失了。上面的2个表都符合第3范式。

相关文章

  • MySQL三大范式和反范式

    MySQL三大范式和反范式 第一范式 第二范式 第三范式 反范式

  • 范式

    数据库(第一范式,第二范式,第三范式)

  • 数据库四大范式

    参考来源 解释一下关系数据库的第一第二第三范式? 第一,二,三和四范式 数据库设计范式2——BC范式和第四范式 主...

  • 数据库的常见知识

    数据库三范式 第一范式:表中的每个字段不可再分第二范式:满足第一范式并且表中的非主键字段依赖主键字段第三范式:满足...

  • java面试题杂谈

    #数据库三大范式: 第一范式:属性不可再分; 第二范式:消除冗余; 第三范式:消除函数传递依赖。 #设计模式 1....

  • 数据库三大范式

    第一范式(1NF):原子性 第二范式(2NF):完全关联主键 第三范式(3NF):直接关联主键 反第三范式:冗余字...

  • Mysql相关面试题

    1.何为范式? 第一范式(1NF):第一范式就是无重复属性的列。 第二范式(2NF):第二范式是在第一范式的基础上...

  • MySQL数据库基础知识

    数据库三大设计范式 其实,目前的关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、...

  • 从SQL Server到MySql(3): schema的数据类

    1,数据库范式 1.1 第一到第三范式 第一范式 1NF. 保证列的原子性, 一列不能再被分为多个列. 第二范式 ...

  • 数据库范式

    关系数据库六种范式: 第一范式(1NF)、 第二范式(2NF)、 第三范式(3NF)、 巴斯-科德范式(BCNF)...

网友评论

      本文标题:第一、二、三范式

      本文链接:https://www.haomeiwen.com/subject/wsgnkctx.html