广告
返回顶部
首页 > 资讯 > 数据库 >Mysql中的范式
  • 712
分享到

Mysql中的范式

Mysql中的范式 2020-06-21 08:06:10 712人浏览 猪猪侠
摘要

目录 范式定义 第一范式 第二范式 第三范式 反范式 范式定义 范式:NORMal Format,是一种离散数学中的知识,是为了解决数据的存储与优化的问题:保存数据的存储之后,凡是能够通过关系寻找出来的数据,坚决不再重复存储,

Mysql中的范式

目录

  • 范式定义
  • 第一范式
  • 第二范式
  • 第三范式
  • 反范式

范式定义

范式:NORMal Format,是一种离散数学中的知识,是为了解决数据的存储与优化的问题:保存数据的存储之后,凡是能够通过关系寻找出来的数据,坚决不再重复存储,终极目标是为了减少数据的冗余。

范式背景:

1、是为了解决数据冗余
2、是为了数据的优化与存储
3、保存数据之后,可以通过关系得到的数据,不再存储

范式概念:

1、是一种分层结构的规范,分为6层
2、每一层都比上一层更严格
3、若要满足下一层范式,前提是满足上一层
4、范式在数据库中具有指导意义,但是不强制规范
5、数据库不仅要考虑空间问题,还要考虑效率问题,一般用前第三层
6、六层范式, 1NF是最底层,要求最低;6NF最高层,最严格.

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

第一范式:确保每一列不可再分

要求

1、在设计表存储数据时候,如果表中设计的字段存储的数据,在取出来使用之前还需要额外的处理(拆分),那么表的设计不满足第一范式
2、第一范式要求字段具有原子性、不可再分割

例如:
讲师代课表

讲师 性别 班级 教室 代课时间 代课时间(开始/结束)
朱元璋 Male PHP0226 D302 30天 2014-02-27,2014-05-05
朱元璋 Male php0320 D206 30天 2014-03-21,2014-04-20
朱元璋 Female Php0320 D206 30天 2014-06-01,2014-06-15

上表设计不存在问题: 但是如果需求是将数据查出来之后,要求显示一个老师从什么时候开始上课,到什么时候结课:, 则需要将代课时间进行拆分: 不符合1NF, 数据不具有原子性, 可以再拆分.

解决方案

解决方案: 将代课时间拆分成两个字段就解决问题.

讲师 性别 班级 教室 代课时间 开始 结束
朱元璋 Male php0226 D302 30天 2014-02-27 2014-05-05
朱元璋 Male Php0320 D206 30天 2014-03-21 2014-04-20
花木兰 Female Php0320 D206 30天 2014-06-01 2014-06-15

第二范式:确保表中每一列都和主键有关

要求

1、在数据表设计过程中,如果有复合主键(多字段主键),且表中有字段并不是由整个主键来确定,而是依赖于主键中的某个字段(主键的部分)
2、存在字段依赖主键的部分的问题,称之为部分依赖
3、第二范式就是解决表设计不允许出现部分依赖

讲师带课表

讲师 性别 班级 教室 代课时间 开始 结束
朱元璋 Male php0226 D302 30天 2014-02-27 2014-05-05
朱元璋 Male Php0320 D206 30天 2014-03-21 2014-04-20
花木兰 Female Php0320 D206 30天 2014-06-01 2014-06-15

复合主键: 讲师+班级

以上表中: 代课时间,开始和结束字段都与当前的主键(讲师和班级)有关系, 但是性别并不依赖班级, 教室不依赖讲师, 性别只依赖讲师, 教室只依赖班级, 出现了性别和教室依赖主键中的一部分: 部分依赖.不符合第二范式.

解决方案

解决方案1: 可以将性别与讲师单独成表, 班级与教室也单独成表.

解决方案2: 取消复合主键, 使用逻辑主键

  • 逻辑主键:没有业务含义,比如自增主键
  • 业务主键:有业务含义,比如person表用身份证号当主键
ID 讲师 性别 班级 教室 代课时间 开始 结束
1 朱元璋 Male php0226 D302 30天 2014-02-27 2014-05-05
2 朱元璋 Male Php0320 D206 30天 2014-03-21 2014-04-20
3 花木兰 Female Php0320 D206 30天 2014-06-01 2014-06-15

第三范式:确保每一列都和主键列直接相关,而不是间接相关

要求

1、要满足第三范式、必须满足第二范式
2、理论上讲,应该一张表中的所有字段都应该直接依赖于主键,如果表设计中存在一个字段,并不直接依赖主键,而是通过某个非关键字段依赖,最终实现依赖主键,把这种不是直接依赖主键,而是依赖非主键字段的依赖关系称之为传递依赖
3、第三范式就是解决传递依赖的问题

讲师带课表

ID 讲师 性别 班级 教室 代课时间 开始 结束
1 朱元璋 Male php0226 D302 30天 2014-02-27 2014-05-05
2 朱元璋 Male Php0320 D206 30天 2014-03-21 2014-04-20
3 花木兰 Female Php0320 D206 30天 2014-06-01 2014-06-15

主键: ID

以上设计方案中: 性别依赖讲师存在, 讲师依赖主键; 教室依赖班级,班级依赖主键: 性别和教室都存在传递依赖.

解决方案

将存在传递依赖的字段,以及依赖的字段本身单独取出,形成一个单独的表, 然后在需要对应的信息的时候, 使用对应的实体表的主键加进来.

讲师带课表

ID 讲师ID 班级ID 代课时间 开始 结束
1 1 5 30天 2014-02-27 2014-05-05
2 1 6 30天 2014-03-21 2014-04-20
3 2 6 30天 2014-06-01 2014-06-15

讲师表

ID 讲师 性别
1 朱元璋 Male
2 花木兰 Femle

教室表

ID 讲师 性别
5 php0226 D302
6 Php0320 D206

反范式

有时候,在设计表的时候,如果一张表中有几个字段需要从另外的表中去获取信息,理论上讲,的确可以获得想要的数据,但是效率低一点,会刻意的在某些表中,不去保存另外表的主键,而是直接保存想要的数据信息,这样一来,在查询数据的时候,一张表可以直接提供数据,而不需要多表查询((效率低),但是冗余会增加

站在巨人的肩膀上摘苹果:

https://www.cnblogs.com/hum0ro/p/8877364.html

Https://blog.csdn.net/weixin_43048795/article/details/88564962

https://www.jianshu.com/p/2a7242e3D21a

您可能感兴趣的文档:

--结束END--

本文标题: Mysql中的范式

本文链接: https://www.lsjlt.com/news/5073.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Mysql中的范式
    目录 范式定义 第一范式 第二范式 第三范式 反范式 范式定义 范式:Normal Format,是一种离散数学中的知识,是为了解决数据的存储与优化的问题:保存数据的存储之后,凡是能够通过关系寻找出来的数据,坚决不再重复存储,...
    99+
    2020-06-21
    Mysql中的范式
  • Mysql中范式和反范式的优缺点
    今天就跟大家聊聊有关Mysql中范式和反范式的优缺点,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一、三大范式第一范式1NF是对属性的原子性,要求属...
    99+
    2022-10-18
  • Mysql范式与反范式的利弊是什么
    这篇文章主要讲解了“Mysql范式与反范式的利弊是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Mysql范式与反范式的利弊是什么”吧!   一、三大...
    99+
    2022-10-19
  • MySQL之范式的使用详解
    一、范式 范式的英文名称是Normal Form,它是英国人E.F.Codd(关系数据库的老祖宗)在上个世纪70年代提出关系数据库模型后总结出来的。范式是关系数据库理论的基础,也是我们在设计数据库结构过程中所要遵循...
    99+
    2022-05-25
    MySQL 范式
  • 详解MySQL 数据库范式
    前言: 关于数据库范式,时常有听说过,一直没有详细去了解。一般数据库书籍或数据库课程会介绍范式相关内容,范式也经常出现在数据库考试题目中。不清楚你是否对范式有比较清晰的了解呢?本篇文章我们一起来学习下数据库范式吧。 ...
    99+
    2022-05-15
    MySQL 数据库范式 MySQL 范式
  • mysql数据库范式指的是什么
    这篇文章主要为大家展示了“mysql数据库范式指的是什么”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“mysql数据库范式指的是什么”这篇文章吧。1、第一范式1NF:字段原子性字段原子性,字段不...
    99+
    2023-06-15
  • Mysql数据库设计三范式的用法
    这篇文章主要讲解了Mysql数据库设计三范式的用法,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。三范式1NF:字段不可分;2NF:有主键,非主键字段依赖主键;3NF:非主键字段...
    99+
    2022-10-18
  • MySQL数据库范式化设计的方法
    这篇文章主要讲解了“MySQL数据库范式化设计的方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL数据库范式化设计的方法”吧!一、设计范式问题: 什么是范式化设计,为什么需要反规范...
    99+
    2023-06-30
  • 数据库设计的范式规范
    关系型数据库的设计遵循六大范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式(5NF,又称完美范式)。 第一范式 1NF 1NF,即数...
    99+
    2022-10-18
  • mysql数据库的四个范式分别是什么
    这篇文章给大家分享的是有关mysql数据库的四个范式分别是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1、1NF(第一范式)第一范式是指数据库表中的每一列都是不可分割的基本...
    99+
    2022-10-18
  • mysql中between的边界,范围说明
    mysql between的边界范围 between 的范围是包含两边的边界值 eg: id between 3 and 7 等价与 id >=3 and id<=7 not between 的范围是...
    99+
    2022-05-30
    mysql between边界 between范围
  • 数据库中的范式是什么
    数据库中的范式是一种规范化的设计方法,用于规范数据库中的关系模式,以减少数据冗余、提高数据库的性能和可靠性。常见的数据库范式有以下几...
    99+
    2023-10-09
    数据库
  • MySQL中BETWEEN AND(范围查询)
    0 写在前面 MySQL 提供了 BETWEEN AND 关键字,用来判断字段的数值是否在指定范围内。 BETWEEN AND 需要两个参数,即范围的起始值和终止值。如果字段值在指定的范围内,则这些记录被返回。如果不在指定范围内,则不会被返...
    99+
    2023-08-16
    mysql 数据库
  • MySQL 数据库范式化设计理论总结
    目录一、设计范式1.第一范式(1NF)2.第二范式(2NF)3.第三范式 (3NF)二、范式化设计三、反规范化设计四、设计总结一、设计范式 问题: 什么是范式化设计,为什么需要反规范...
    99+
    2022-11-13
  • Mysql数据库设计三范式实例解析
    三范式 1NF:字段不可分; 2NF:有主键,非主键字段依赖主键; 3NF:非主键字段不能相互依赖; 解释: 1NF:原子性 字段不可再分,否则就不是关系数据库; 2NF:唯一性 一个表只说明一个事物; 3NF:每列...
    99+
    2022-06-01
    Mysql 数据库 三范式
  • 一文了解MYSQL三大范式和表约束
    目录 一,什么是范式 二,三大范式的理解1,第一范式(确保每列保持原子性)2,第二范式(保证每列都和主键相关)3,第三范式(保证每列和主键直接相关,不能间接相关)4,表的关系(1)一...
    99+
    2022-11-13
  • MySQL学习之三大范式详解小白篇
    目录1.范式基础1.1范式的概念2.三大范式2.1三大范式概念2.2三大范式举例1.进行第一范式的改造2.进行第二范式的改造3.进行第三范式的改造1.范式基础 1.1范式的概念 设计...
    99+
    2022-11-12
  • mysql中Memory的适用范围是什么
    今天就跟大家聊聊有关mysql中Memory的适用范围是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1.Memory适用范围将数据存在内存,为了提高数据的访问速度,每一个表实际...
    99+
    2023-06-14
  • MySQL的规范是怎样的
    这篇文章将为大家详细讲解有关MySQL的规范是怎样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。下边分为建表规约、SQL 规约、索引规约三个部分,每部分的每一条都有强制、建议两个级别,大家...
    99+
    2023-06-28
  • 数据库的三范式
    简单来说可以把它粗略的理解为一张数据表的表结构所符合的某种设计标准的级别。就像英语46级,相对代表了英语水平的高低。 满足这些规范的数据库是简洁的,结构明晰的,同时,不会发生增删改操作异常。 数据库范式分为 1NF 2NF 3NF BC...
    99+
    2022-02-13
    数据库的三范式
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作