美文网首页
第三范式

第三范式

作者: RockyLuo_290f | 来源:发表于2019-01-07 13:49 被阅读0次

1.3 第三范式(3NF)属性不依赖于其它非主属性 [ 消除传递依赖 ]

如果关系模式R是第二范式,且每个非主属性都不传递依赖于R的候选键,则称R为第三范式模式。

满足第三范式(3NF)必须先满足第二范式(2NF)。第三范式(3NF)要求一个数据库表中不包含已在其它表中已包含的非主关键字信息。

例如,存在一个部门信息表,其中每个部门有部门编号(dept_id)、部门名称、部门简介等信息。那么在的员工信息表中列出部门编号后就不能再将部门名称、部门简介等与部门有关的信息再加入员工信息表中。如果不存在部门信息表,则根据第三范式(3NF)也应该构建它,否则就会有大量的数据冗余。

第三范式(3NF):在第二范式的基础上,数据表中如果不存在非关键字段对任一候选关键字段的传递函数依赖则符合第三范式。简而言之,第三范式就是属性不依赖于其它非主属性。

所谓传递函数依赖,指的是如果存在"A → B → C"的决定关系,则C传递函数依赖于A。

因此,满足第三范式的数据库表应该不存在如下依赖关系:

关键字段 → 非关键字段x → 非关键字段y

假定学生关系表为Student(学号, 姓名, 年龄, 所在学院, 学院地点, 学院电话),关键字为单一关键字"学号",因为存在如下决定关系:

(学号) → (姓名, 年龄, 所在学院, 学院地点, 学院电话)

这个数据库是符合2NF的,但是不符合3NF,因为存在如下决定关系:

(学号) → (所在学院) → (学院地点, 学院电话)

即存在非关键字段"学院地点"、"学院电话"对关键字段"学号"的传递函数依赖。

它也会存在数据冗余、更新异常、插入异常和删除异常的情况,读者可自行分析得知。

把学生关系表分为如下两个表:

学生:(学号, 姓名, 年龄, 所在学院);

学院:(学院, 地点, 电话)。

这样的数据库表是符合第三范式的,消除了数据冗余、更新异常、插入异常和删除异常。

相关文章

  • MySQL三大范式和反范式

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

  • 范式

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

  • 数据库三大范式

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

  • MySQL范式

    范式介绍 目前关系型数据库有6种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴德斯科范式(B...

  • 数据库范式

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

  • java面试题杂谈

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

  • 数据库范式原则,第一,第二

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

  • 数据库的常见知识

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

  • java_sql数据库的设计

    数据库设计三范式(重点) 1.什么是设计范式 2.设计范式是哪些 3.第三范式 是建立在第二范式基础上 所有非主键...

  • SQL范式设计

    六种范式 从低到高分别是: 1NF(第一范式), 2NF(第二范式), 3NF(第三范式), BCNF(巴斯-科德...

网友评论

      本文标题:第三范式

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