SQL之3大范式

SQL优化之总结篇-SQL三段分析法 关注我的微信公众号:pythonislover,领取python,大数据,SQL优化相关视频资料!~ Python大数据与SQL优化笔 QQ群:771686295 今天的这篇是对前面几篇SQL优化文章的总结: SQL优化之标量子查询,坑到你了吗? SQL优化之内联视图,合并到底好不好? SQL优化之子查询-IN和EXISTS哪个快点 一次性给大家放在这里方便查看。 那... 阅读详情

SQL之3大范式:

前置知识:

函数依赖关系:
完全依赖:
	通过A属性组中的所有部分,可以唯一确定B属性的值
		A (all) -> B

部分依赖:
	通过A属性组中的一部分,可以唯一确定B属性的值
		A(part) ->B

传递依赖:
	通过A属性(组),可以唯一确定B属性(组)的值,
	并通过B属性(组)的值,可以唯一确定C属性(组)的值
		A -> B -> C

3大范式:

1NF:字段单一属性,不可再分
2NF:基于1NF下,消除非主属性对主属性的部分依赖
3NF:基于2NF下,消除非主属性对主属性的传递依赖

举例:

创建一张仅满足范式1的表:

student 表

`CREATE TABLE student(
	id INT PRIMARY KEY,   -- 学号
	NAME VARCHAR(32) NOT NULL, 
	class VARCHAR(32) NOT NULL,
	MASTER VARCHAR(32) NOT NULL, -- 班主任
	SUBJECT VARCHAR(32) NOT NULL,
	score INT NOT NULL
);`	

添加一系列数据后如下:

在这里插入图片描述
可以看出这张表存在很多的重复片段,比如:姓名,班级,班主任,学号等,因此需要对这张表进行第二范式调整:

我们可以认为主属性组是 (学号,学科) 通过这个组,
  可以确定确定出其他所有数据,可以发现:
		1.name 部分依赖于 主属性组的 id
		2.class 部分依赖于 主属性组的 id
		3.master 部分传递依赖于 id 
		4.score 完全依赖于 主属性组
	因此作出调整:(移除部分依赖)
		将name,class,master移除加上id作为另一张表
	此时表结构:
		1. id subject score   表1
		2. id name class master	表2

当进行完第二范式调整后,考虑第三范式,第三范式是基于第二范式调整后的表进行传递依赖的消除…

	主属性组是 (学号,学科) 
	经过第二范式调整后:形成一张新表:
		id name class master 
	对于这张表,主属性为:学号
		name,class 完全依赖于 id
		master 传递依赖于 id,直接依赖于class
	因此作出调整:()
		将master移除加上 class 作为另一张表
	此时表结构:
		1. id subject score 表1
		2. id name class 表2
		3. class master 表3

个人总结:

对于三大范式:
	第一条范式是用于建表的,也就是说,一张表一旦能够建立起来,那它一定符合第一范式的。
	第二范式就是用于纠正第一范式留下的重复问题,做法:将表中的属性仅留下主属性组 和 完全依赖于主属性组的其他属性,
		剩余的其他属性根据其部分依赖的属性 重建出表2。
	第三范式用于纠正第二范式留下的增删各表数据的不合理问题,
		对于表2,将表二的属性消除掉具备与当前主属性(组)具备传递依赖的属性,而对于这些传递依赖根据其直接依赖的属性,重建出表3。
眼动数据分析基础_AOI分析动态刺激物 如果您正在研究人们对如视频、动画等动态刺激物的视觉行为,动态AOI工具可为您提供类似静态AOI工具对于图片及其他静止刺激物分析的同样功能。创建和编辑动态AOI的过程和静态AOI相似。 关于动态AOI工具的使用,有几点非常重要: 多个看到相同线性动态刺激物的用户的眼动数据叠加是有价值的; 动态AOI不能用于非线性动态记录的分析; 动态AOI不能用于静态刺激物,如图片的分析; 动态AOI可以被开启、关闭、移动、调整大小及跟踪相关分析对象 首先,我们来定义两种不同的动态刺激物:线性动态刺激物(LDS),是指固 阅读详情

相关推荐

Hyper-V创建Ubuntu虚拟机设置固定IP

本文记录使用hyper-v创建ubuntu虚拟机,为虚拟设置固定IP且通过物理机可访问。

2622

sql三大范式

一、第一范式: 必须有主键,列不可分。 二、第二范式: 当一个表是复合主键,非主键的字段不依赖于部分主键, 例如: create table sci( sno int(32),cno int(32),grade int(32),credit int(32), primary key sno,cno ) 非关键字属性credit仅函数依赖于cno,也就是cre...

dike1074的博客 206

逆变器方案(工频全套)工频正弦波逆变器开发板全套设计资

逆变器方案(工频全套)工频正弦波逆变器开发板,24V-72V通用12只TO-247封装MOS管,额定输出功率6500W以下;配有触摸屏操作界面,运行数据一目了然,带市电互补UPS功能,可选择电池优先或市电有限工作,我们的开发板均从实战角度出发,让您的学习更便捷,包含全套设计资料,PCB.原理图.源代码,程序均有中文注释,MCU选用美国微芯公的PIC-8位单片机,民用数字电源首选单片机,抗干扰能力强,运行稳定。...

m0_73494033的博客 890

【数据库】深入探讨SQL三大范式

在数据库设计中,数据的组织和关系对于数据的存储和检索效率至关重要。三大范式是数据库设计的基本原则,可以帮助我们消除冗余数据、提高数据一致性和减少数据异常。本文将深入探讨SQL三大范式的概念、特点以及在实际数据库设计中的应用。简而言之就是,数据库设计对数据的存储性能,还有开发人员对数据的操作都有莫大的关系。所以建立科学的、规范的数据库是需要满足一些规范来优化数据以及数据存储方式。在RDBMS中,这些规范可以称为范式。第一范式要求数据库中的每个列都必须是原子性的,即不可再分解。

山赶着山,山山漫漫结成关 2225

时间卷积网络(TCN):结构+pytorch代码

文章目录TCNTCN结构1-D FCN的结构因果卷积(Causal Convolutions)膨胀因果卷积(Dilated Causal Convolutions)膨胀非因果卷积(Dilated Non-Causal Convolutions)残差块结构pytorch代码讲解 TCN   TCN(Temporal Convolutional Network)是由Shaojie Bai et al....

Leon_winter的博客 11万+

Photoscan+Smart3D+CC组合建模实战:如何用三款工具打造高精度实景模型

本文详细介绍了如何整合Photoscan、Smart3D和ContextCapture三款软件,构建高效高精度的实景三维建模工作流。通过利用Photoscan稳健的空三解算、Smart3D精准的刺点优化,以及ContextCapture强大的最终建模能力,该方案能有效应对复杂地形与海量数据,显著提升模型质量与生产效率,适用于测绘、文化遗产数字化等专业领域。

weixin_29230649的博客 103

SQL 查询语句总结

SQL 查询语句总结 1. 列名 Select Sname AS 姓名 from Student; ·这里AS可以省略。   2. 去重:distinct Select distinctSno from sc;   3.  WHERE条件查询 比较               =/>/</>=/<= 确定范围        between … and …...

LMAKE_nbsp的博客 293

STM32F103+W5500网络通信

STM32F103+W5500网络通信一、W5500模块(一)W5500以太网模块介绍(二)模块排针功能表二、 modbus协议(一)modbus协议原理(二)Modbus 通讯方式1.Modbus三种通讯方式2.在Modbus网络上传输3.以太网(modbus tcp/ip)三、参考资料 一、W5500模块 (一)W5500以太网模块介绍 D-W5500 EVB以太网模块是一款基于WIZnet W5500芯片的以太网模块,且性价比高的以太网模块。W5500是一款全硬件TCP/IP嵌入式以太网控制器,为

”一只特立独行的猪“的博客 1万+

MySQL数据库三段式_Oracle数据库入门

一、Oracle1、oracle服务1)OracleDBConsoleorclOracle数据库控制台服务,orcl是Oracle的实例标识,默认的实例为orcl。2)OracleOraDb11g_home1TNSListener监听器服务,服务只有在数据库需要远程访问的时候才需要。3)OracleServiceORCL数据库服务(数据库实例),是Oracle核心服务,该服务是数据库启动的基础,只...

weixin_39865952的博客 1095

WPF窗口定位技巧:从基础到高级的三种实现方法

本文详细解析WPF窗口定位的三种核心方法:屏幕居中(CenterScreen)、父窗口居中(CenterOwner)和手动定位(Manual)。通过对比其适用场景、实现代码与注意事项,帮助开发者根据实际需求选择最佳方案,从而提升WPF应用程序的用户体验与专业度。

weixin_29224309的博客 272

STM32_WS2811驱动

STM32的WS2811驱动

健身房 2839

SQL 中的 1NF 2NF 3NF三大范式

第一范式(1NF) (必须有主键,列不可分) 数据库表中的任何字段都是单一属性的,不可再分   create table aa(id int,NameAge varchar(100))  insert aa values(1,''无限-女 '')  没有达到第一范式  create table aa(id int,name varcahr(10),age char

qq253113827的专栏 6660

电子元器件-接口电路篇:RS-232、RS485/422、I2C、SPI、USB、网口

以上规定说明了RS-232C 标准对逻辑电平的定义。对于数据(信息码):逻辑“1”的传输的电平为-3V~-15V,逻辑“0”传输的电平为+3V~+15V;对于控制信号;接通状态(ON)即信号有效的电平为+3V~+15V,断开状态(OFF)即信号无效的电平为-3V~-15V,也就是当传输电平的绝对值大于3V 时,电路可以有效地检查出来;

qq_60226558的博客 887

sql:oracle:数据库的3大范式和5大约束

    实体:表; 属性:表中的数据(字段); 关系:表与表之间的关系;      数据库设计三大范式(重点): 第一范式(1NF):数据表中的每一列(每个字段)必须是不可拆分的最小单元,也就是确保每一列的原子性; 例如:userInfo:山东省烟台市  131777368781           userAds:山东0省烟台市  userTel:131777368781  第二范式(2...

不花的花和尚的博客 253

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

MySQL 8.0 数据库设计:3大范式与ER图实战,从学生选课案例到SQL实现

今天,我们就以MySQL 8.0为平台,通过学生选课系统的案例,深入探讨如何将抽象的数据库范式理论转化为实际的表结构和SQL代码。这里,department_name和dean依赖于department_id,而department_id又依赖于student_id,形成了传递依赖。这里,student_name只依赖于student_id,course_name只依赖于course_id,存在部分依赖。提示:在实际项目中,有时会出于性能考虑故意违反第三范式,这种称为反范式化设计。

读书、思考、生活 501

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

MySQL学习笔记

自我感觉MySQL学完之后,脑子乱乱的。SQL语句写的不流畅,什么样子也没有很深的印象,在后面的学习中遇到困难,特意前来回顾之前所学习的内容。重点是:结构化的认识和回顾MySQL,建立自己“结构化的知识体系”。语法块结束,end返回。注意:空串 不等于 null就像空数组 不等于 null一样。还记得:if(arr0) 这个判断条件吗?------字符串也是同理。when:条件-------------then:赋值对于MySQL的基础部分,我们须要好好掌握,熟练。

lenard-lhz的博客 1422

【数据库】SQL相关知识点总结1(数据库约束、三大范式、关系模型、聚合函数)

1. 数据库约束2. 三大范式2.1 第一范式2.2 第二范式2.3 第三范式3. 关系模型3.1 一对一关系3.2 一对多关系3.3 多对多关系4. 聚合函数。

2509_93869310的博客 892

SQL 面试如何一次过?Python-Practise-Problems SQL 高频面试题清单与解析

正在准备 SQL 面试的你,是不是总在"第二高薪水"、"自连接"这类高频题前卡壳?开源项目 **Python-Practise-Problems** 收录了一份 100 道 SQL 面试题清单与解析(`sql interview.docx`),覆盖基础概念、手撕 SQL、数据分析三大类考点,帮你快速摸清 SQL 高频面试题的出题套路,一次过面。 ## 一、资源清单:这个项目里有什么 | 文件

gitblog_00783的博客 729

MySQL之数据库三大范式

本文是MySQL的学习,认识了数据库的三大范式,并且可以分辨表属于第几范式。之后的学习内容将持续更新!!!

qq15035899256的博客 6322

sql专题 之 三大范式

设计数据库需要遵循三大范式哦

oneouto的博客 1437

SQL与NoSQL面试问题对比:Full-stack-Developer-Interview-Questions-and-Answers实战指南

在全栈开发面试中,数据库知识是核心考察点之一,尤其是SQL与NoSQL的选择与应用。Full-stack-Developer-Interview-Questions-and-Answers项目提供了全面的面试问题集合,帮助开发者系统掌握这两种数据库技术的关键差异与应用场景。 ## 📊 SQL数据库核心面试问题解析 ### 1. SQL连接类型深度解析 SQL连接是数据库查询的基础,面试中常考

gitblog_00480的博客 534

数据库期末考和考研党必看:用这10道SQL实战题+并发控制案例,快速检验你的复习成果

本文为数据库期末考和考研党提供10道SQL实战题和3个并发控制案例,帮助快速检验复习成果。通过解题、分析和避坑三步法,定位知识盲区,提升SQL编写能力和并发控制理解。适合数据库系统概论学习者进行期末复习和考研复习。

weixin_30363981的博客 345

Mysql高级性能优化之性能分析(七)

表设计准则 满足关系数据库的三范式 1NF(关系模式的基本要求) 指数据库表的每一列都是不可分割的基本数据项,同一列种不能有多个值 2NF 要求数据库表中的每个实例或行必须可以被唯一的区分(设置主键) 3NF 要求一个数据库表中不包含已在其他表中包含的非主关键字信息(两张表不要重复的字段,通常都是设置外键) 大表拆小表,有大数据的列单独拆成小表: 1、在一个数据库中,...

weixin_44557238的博客 353

数据库三大范式实战解析:从理论到设计,构建高效数据模型

数据库范式是关系型数据库设计的核心理论,旨在通过规范化过程消除数据冗余和操作异常,确保数据的一致性与完整性。其原理基于函数依赖理论,通过分解关系模式来达到更高的范式级别。这一技术的核心价值在于为OLTP系统构建坚实、可维护的数据基础,避免因结构混乱导致的更新、插入和删除异常。在实际应用场景中,从电商订单到内容管理系统,遵循范式设计能显著提升数据质量与系统稳定性。本文以学生选课系统为例,深入剖析第一范式的原子性要求、第二范式的完全依赖消除,并重点攻克第三范式如何通过解决传递依赖实现数据的高度内聚与低耦合,为应

weixin_29233857的博客 289

Mysql注释+范式+外键+高级操作

指的是如果一个字段不依赖主键,而是依赖其他的字段的时候,那么就会形成传递依赖。如果存在依赖主键以外的字段,那就形成了传递依赖。第一范式:指数据库中表的设计(字段),字段在使用的过程中,不需要通过额外的方式对数据进行处理(拆分),要保证数据库中的字段必须拿出来就可以直接使用。如果在使用的过程中,需要额外的使用代课的起始时间,需要分别得到起始时间和结束时间。存在:一个表主键也是用来保证数据的唯一性(对应的字段),但是一张表只能拥有一个主键,但是其他字段也有可能需要保证数据唯一性,唯一键就是为了解决该问题。

2601_95438532的博客 570

SQL三大范式三个例子搞定

第一范式(1NF) (必须有主键,列不可分) 数据库表中的任何字段都是单一属性的,不可再分 create table aa(id int,NameAge varchar(100)) insert aa values(1,''无限-女'') 没有达到第一范式 create table aa(id int,name varcahr(10),age char(2)) insert aa v...

weixin_30950237的博客 168
上一篇: SQL之多表关系
下一篇: 数据库备份和还原
Tket
博客等级 码龄9年 21粉丝 114原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值