美文网首页
MySQL范式

MySQL范式

作者: 慧鑫coming | 来源:发表于2019-02-18 06:02 被阅读0次

范式介绍

  • 目前关系型数据库有6种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴德斯科范式(BCNF)、第四范式(4NF)、第五范式(5NF,又称完美范式)。一般来说,数据库只需要满足第三范式就行。

第一范式(1NF)

  • 数据库表中的字段都是单一属性的,不可再分。只要是关系数据库都满足第一范式。这个单一属性由基本类型构成,包括整型、字符串、日期型等。
  • 如病人信息表,有病人编号姓名性别就诊记录联系方式住宅电话手机号),此时联系方式不能是一个包含住宅电话和手机号的字段,而是2种联系方式各为一个字段。

第二范式(2NF)

  • 是在1NF的基础上建立起来的。第二范式要求实体的属性完全依赖于主关键字,即非关键字段都依赖于主键。不能有多个主关键字。
  • 病人信息表中增加医生编号医生姓名医生性别职称科室编号科室名称负责人诊室号字段,那么此时表中存在着2种依赖关系:
    1、{病人编号}<-{姓名,性别,就诊记录,联系方式}
    2、{医生编号}<-{医生姓名,医生性别,职称,科室编号,科室名称,负责人,诊室号}
    可见,此时出现了2个关键字,2种依赖关系,不符合第二范式。同时从表里的数据来看,出现了冗余数据:3名患者找同一个医生看病时,与医生有关的信息就重复了3次。
  • 将新增的所有字段拿出来单独构成医生信息表,再创建一张病人挂号信息表挂号单流水号病人编号医生编号);此时共有3张表,非关键字段都依赖于主键,符合第二范式,但是这样拆分不符合第三范式。

第三范式(3NF)

  • 第三范式是第二范式的一个子集,即满足第三范式必须满足第二范式。即不存在非关键字段对任一候选关键字段的传递函数依赖
  • 在以上的医生信息表中,存在着不符合第三范式的关系:
    1、{医生编号}<-{姓名,性别,职称}
    2、{科室编号}<-{科室名称,负责人,诊室号}
    科室名称依赖着科室编号、科室编号依赖着医生编号,存在数据冗余,不符合第三范式,可将表再进行拆分。
    医生信息表(医生编号姓名性别科室编号)
    科室信息表(科室编号科室名称负责人诊室号)

相关文章

  • MySQL三大范式和反范式

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

  • 数据库设计三范式与反范式

    MySql设计与优化系列笔记:一、数据库设计三范式与反范式二、MySql表设计与优化 第一范式: 1、数据库的所有...

  • MySQL-范式

    MySQL-范式 、 MySQL-范式是一种分层结构的规范,分为6层,每一次层都比上一层更加严格范式只为解决空间问...

  • 【Mysql优化分析】之InnoDB索引类型及原理、字段范式/逆

    Mysql优化的部分有很多,本文主要介绍Mysql执行过程、索引类型及原理、字段范式/逆范式设计、索引设计及使用。...

  • MySQL范式

    这里主要是记录一些学习数据库的笔记,其他的部分,在CSDN博客里,这里是链接https://blog.csdn.n...

  • MySQL范式

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

  • MySql表设计与优化

    MySql设计与优化系列笔记:一、数据库设计三范式与反范式二、MySql表设计与优化 1、实体关系分析 实体关系需...

  • 【MySQL】范式与反范式

    一、数据库范式 1、第一范式(1NF): 无重复列,即表中每一列都是不可分割的,不满足第一范式的数据库不是关系型数...

  • mysql

    1. MySQL简介 MySQL是广泛应用的一种关系型数据库 1.1 三范式 第一范式(1NF):列不可拆分 第二...

  • (系列7)数据库

    MySQL 数据库概念 范式 范式是数据库设计规范,范式越高则数据库冗余越小,但查询也更复杂,一般只需满足第三范式...

网友评论

      本文标题:MySQL范式

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