Mysql数据库学习之范式

news2024/11/20 4:49:33

范式

范式简介
在关系型数据库中,关于数据表设计的基本原则、规则称为范式。可以理解为,一张数据表的设计结构需要满足的某种设计标准的级别,要想设计一个结构合理的关系型数据库,必须满足一定的范式。
范式都包含哪些
在这里插入图片描述
6种范式以及关系
在这里插入图片描述
键和相关属性的概念
在这里插入图片描述
在这里插入图片描述

第一范式(1st NF)

第一范式主要是确保数据表种的每个字段的值必须具有原子性,也就是说数据表中每个字段的值为不可再拆分的最小数据单元
在这里插入图片描述

第二范式(2nd NF)

第二范式要求,在满足第一范式的基础上,还要满足数据表里的每一条数据记录,都是可唯一标识的。而且所有的非主键字段,都必须完全依赖主键,不能只依赖主键的一部分
如果知道主键的所有的属性值,就可以检索到任何元组(行)的任何属性的任何值(要求中的主键,其实可以拓展为候选键)
在这里插入图片描述
对于非主属性来说,并非完全依赖候选键,这样会产生什么问题?
在这里插入图片描述
1NF 告诉我们字段的属性需要是原子性的,而2NF告诉我们一张表就是一个独立的对象,一张表只表达一个意思
在这里插入图片描述
小结:
第二范式(2NF)要求实体的属性完全依赖于主关键字,如果存在不完全依赖,那么这个属性和主键字的这一部分应该分离出来形成一个新的实体,新实体与单元实体之间是一对多的关系。

第三范式(3rd NF)

第三范式是在第二范式的基础上,确保数据表中的每一个非主键字段都和主键字段直接相关,也就是说:要求数据表中的所有非主键字段不能依赖于其他非主键字段 (即不能存在非主属性A依赖于非主属性B,非主属性B依赖于主键C的情况,即存在A->B->C的决定关系)。通俗的说,该规则的意思是所有非主键属性之间不能有依赖关系,必须相互独立
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

符合3NF后的数据模型通俗的讲,2NF和3NF通常以这句话概括:每个非键属性依赖于键,依赖于整个键,并且除了键别无他物

小结
在这里插入图片描述
开发中,会出现为了性能和读取效率违反范式化的原则,通过增加少量的冗余或重复的数据来提高数据库的读性能,减少关联查询,join表的次数、实现空间换取时间的目的。在实际的设计过程中理论结合实际,灵活运用。

反范式化

如果相相对查询效率进行优化,反范式化也是·一种思路。可以通过在数据库表中增加冗余字段来提高数据库的读性能。
在这里插入图片描述
应用举例
在这里插入图片描述

反范式化的新问题
反范式可以通过空间换时间,提升查询的效率,但是反范式也会存在一定的问题:
存储空间变大了,一个表的字段做了修改,另一个表中的冗余字段也需要同步修改,否则数据不一致。若采用存储过程来支持数据的更新,删除等额外的操作,如果更新频繁,会非常消耗系统资源。在数据量小的情况下,反范式不能体现性能的优势,可能还会让数据库的设计更加复杂

反范式的适用场景
1.增加冗余字段的建议
在这里插入图片描述
2.历史快照、历史数据的需要
在这里插入图片描述

BCNF (巴斯范式)

BCNF被认为i没有新的设计范式加入,只是对第三范式中设计规范要求更强,使得数据库冗余度更小。所以,称为是修正的第三范式 或者扩充的第三范式。
若一个关系达到了第三范式,并且它只有一个候选键,或者它的每个候选键都是单属性,则该关系自然达到BC范式。
一般来说,一个数据库设计符合3NF或者BCNF就可以了
在这里插入图片描述
存在的问题
在这里插入图片描述
问题解决
在这里插入图片描述

第四范式

在这里插入图片描述

第五范式

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1469362.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

在当前源文件的目录或生成系统路径中未找到文件

vsqt中增加,减少文件,都必须要动一下cmakelist.txt,点一下换行或者保存 因为vsqt反应不过来 1。都必须要动一下cmakelist.txt,点一下换行或者保存 2.然后全部重新生成,或者重新扫描解决方案(多扫几次)

SSM项目集成Spring Security 4.X版本 之 加入DWZ,J-UI框架实现登录和主页菜单显示

目录 前言 一、加入DWZ J-UI框架 二、实现登录页面 三、实现主页面菜单显示 前言 大家好!写文章之前先列出几篇相关文章。本文内容也在其项目中接续实现。 一. SSM项目集成Spring Security 4.X版本(使用spring-security.xml 配置文件方式&#xff…

IDEA中Vue的安装和使用【window10】

一.准备工作 Vue是前端开发框架。搭建框架,首先要搭建环境。搭建Vue的环境工具:node.js(JavaScript的运行环境),然后再用nodejs里面的npm(包管理和分发工具)来安装依赖包。二.安装node.js 下载…

【办公类-22-07】周计划系列(2)“主题知识” (2024年调整版本)

作品展示 调用原来的主题知识素材,制作下学期的19周的主题知识word 背景需求: 开学了,继续做周计划系列,在原有基础上,进行进一步代码优化 【办公类-22-02】周计划系列(2)-生成“主题知识”&…

【Android】View 与 ViewGroup

View 是 Android 所有控件的基类,我们平常所用的 TextView 和 ImageView 都是继承自 View 的,源码如下: public class TextView extends View implements ViewTreeObserver.OnPreDrawListener {... }public class ImageView extends View {.…

升级加薪聊绩效过程中,如果我觉得自己受到了老板“不公正”的对待,该如何“怼”回去?...

老板与员工谈绩效 今天分享的主题是「职场的向上管理」 什么是向上管理? 向上管理是一种有自主意识的方法 通过与你的老板在目标上达成共识,并最终用这个目标满足你、你的老板、你的组织的最大利益 向上管理与你的老板无关,老板都没得选的&am…

Java JDK 下载和配置

Java JDK 下载 下载网址:https://www.oracle.com/java/technologies/javase/jdk21-archive-downloads.html jdk文件夹的目录介绍 bin: 主要存放的是Java的编译器、解析器等工具。 jre:Java runtime environment, Java 运行时环境。 jre/bin:Java平台…

RuntimeError: CUDNN_STATUS_EXECUTION_FAILED

问题描述: 运行代码时候报错: 原因:pytorch与cuda版本不对,需要重新安装。不过我在复现代码的时候一般是要求特定的环境,不然会有其他错误,所以选择其他解决办法。 解决方案: 在train.py开头…

【图论】【堆优化的单源路径】LCP 20. 快速公交

作者推荐 【广度优先搜索】【网格】【割点】【 推荐】1263. 推箱子 LCP 20. 快速公交 小扣打算去秋日市集,由于游客较多,小扣的移动速度受到了人流影响: 小扣从 x 号站点移动至 x 1 号站点需要花费的时间为 inc; 小扣从 x 号站…

MySQL--索引结构

索引-索引结构 1. 概述2. 二叉树3. B-Tree4. BTree5. Hash 1. 概述 MySQL的索引是在存储引擎层实现的,不同的存储引擎有不同的索引结构,主要包含以下几种: 上述是MySQL中所支持的所有的索引结构,下面展示不同的存储引擎对于索引…

如何连接ACL认证的Redis

点击上方蓝字关注我 应用程序连接开启了ACL认证的Redis时与原先的方式有差别,本文介绍几种连接开启ACL认证的Redis的Redis的方法。 对于RedisACL认证相关内容,可以参考历史文章: Redis权限管理体系(一):客户端名及用户…

计算机网络-网络互联

文章目录 网络互联网络互联方法LAN-LAN:网桥及其互连原理使用网桥实现LAN-LAN使用交换机扩展局域网使用路由器连接局域网 LAN-WANWAN-WAN路由选择算法非自适应路由选择算法自适应路由选择算法广播路由选择算法:分层路由选择算法 网络互联 网络互联是指利…

设备树详解

设备树(Device Tree)基本概念及作用 设备树(Device Tree)基本概念 在内核源码中,存在大量对板级细节信息描述的代码。这些代码充斥在/arch/arm/plat-xxx和/arch/arm/mach-xxx目录,对内核而言这些platform设备、resource、i2c_board_info、spi_board_info以及各种硬件的…

神经网络系列---分类度量

文章目录 分类度量混淆矩阵(Confusion Matrix):二分类问题二分类代码多分类问题多分类宏平均法:多分类代码多分类微平均法: 准确率(Accuracy):精确率(Precision)&#xf…

EasyRecovery2024免费不要钱的电脑数据恢复软件下载

EasyRecovery 2024易恢复软件在数据恢复方面的表现评价,EasyRecovery 2024易恢复软件在数据恢复领域享有良好的声誉,它提供了全面的功能,易于使用的界面以及可靠的数据恢复效果。以下是对该软件在数据恢复方面的详细评价: EasyRec…

03|JOIN关联查询优化

1. mysql关联算法 1.1 嵌套循环连接 Nested-Loop Join(NLJ) 算法 先去t2表(驱动表)拿一行数据,然后去t1表(被驱动表)做关联, 关联之后把结果集存下来最后返回. 1.2 基于块的嵌套循环连接 Block Nested-Loop Join(BNL)算法 1.把 t…

森歌深化体育营销战略,揭晓2024奥运新代言人,携手共创影响力奇迹

2024年,奥运龙年的春节将将过去,各大高端品牌便纷纷开始激烈博弈。森歌有备而来!布局早,积累深,以其深入骨髓的体育情怀和独具匠心的品牌策略,成为厨电行业的佼佼者。2月27日-2月28日,森歌将在杭…

电子器件系列64:稳压二极管ZM4728A

C143062_稳压二极管_ZM4728A-GS08_规格书_WJ481159 稳压管可以用于信号线路的旁路,用于过滤高频信号? 这种电路叫做限幅电路 从集成电路Al的①脚输出信号通过Rl加到集成电路A2的①脚。当集成电路Al的①脚输出信号幅度没有超过VD1稳压值时,这…

HDL FPGA 学习 - Avlon 总线,从端口传输、主端口传输,单周期、可变周期传输

目录 1.1 Avlon 总线 定制 外设 IP 核的框架 从端口传输 从端口信号类型 从端口传输模式列举 基本单周期读写传输 固定等待周期的读写传输 可变等待周期的读写传输(推荐) 具有建立时间和保持时间读写传输 主端口传输 主端口信号类型 主端口传…

Day04-流程控制语句_循环结构(while,do...while,关键字continue,关键字break,循环嵌套)

文章目录 Day04- 循环结构学习目标1 while循环2 do...while循环4 循环语句的区别5 关键字continue6 关键字break7 循环嵌套案例1:打印5行直角三角形案例2:break结束当层循环 Day04- 循环结构 学习目标 理解for语句的格式和执行流程 随机数公式 理解…