【SQL学习进阶】从入门到高级应用【三范式】

在这里插入图片描述

文章目录

  • 什么是数据库设计三范式
  • 三范式
  • 一对多怎么设计
  • 多对多怎么设计
  • 一对一怎么设计
  • 最终的设计

🌈你好呀!我是 山顶风景独好
💕欢迎来到我的博客,很高兴能够在这里和您见面!
💕希望您在这里可以感受到一份轻松愉快的氛围!
💕这里不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
🚀 欢迎一起踏上探险之旅,挖掘无限可能,共同成长!

🏠大家订阅本专栏!本专栏旨在为SQL初学者提供一条逐步迈向高级应用的学习之路,带您从零开始,一步一步练习,逐步掌握SQL的精髓,实现技能的提升与飞跃!😊

什么是数据库设计三范式

数据库表设计的原则。教你怎么设计数据库表有效,并且节省空间。

三范式

  1. 第一范式:任何一张表都应该有主键,每个字段是原子性的不能再分
    1. 以下表的设计不符合第一范式:无主键,并且联系方式可拆分。

image.png

  1. 应该这样设计:

image.png

  1. 第二范式:建立在第一范式基础上的,另外要求所有非主键字段完全依赖主键,不能产生部分依赖
    1. 以下表存储了学生和老师的信息

image.png
虽然符合第一范式,但是违背了第二范式,学生姓名、老师姓名都产生了部分依赖。导致数据冗余。

  1. 以下这种设计方式就是符合第二范式的:

image.png

  1. 第三范式:建立在第二范式基础上的,非主键字段不能传递依赖于主键字段
    1. 以下设计方式就是违背第三范式的

image.png
以上因为产生了传递依赖,导致班级名称冗余。

  1. 以下这种方式就是符合第三范式的:

image.png

一对多怎么设计

口诀:一对多两张表,多的表加外键。
image.png
image.png

多对多怎么设计

多对多三张表,关系表添加外键。
image.png

一对一怎么设计

两种方案:

  1. 第一种:主键共享

image.png

  1. 第二种:外键唯一

image.png

最终的设计

最终以满足客户需求为原则,有的时候会拿空间换速度。


✨ 这就是今天要分享给大家的全部内容了,我们下期再见!😊

🏠 我在CSDN等你哦!我的主页😍

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【学习笔记】计算机组成原理(九+十)

控制单元的功能 文章目录 控制单元的功能9.1 微操作命令的分析9.1.1 取指周期9.1.2 间址周期9.1.3 执行周期9.1.4 中断周期 9.2 控制单元的功能9.2.1 控制单元的外特性9.2.2 控制信号举例9.2.3 多级时序系统9.2.4 控制方式 控制单元的设计10.1 组合逻辑设计10.1.1 组合逻辑控制…

结构体 基础知识

本笔记为观看64 结构体-结构体定义和使用_哔哩哔哩_bilibili 的学习笔记 1.结构体概念 结构体属于用户自定义的数据类型,允许用户存储不同的数据类型。 2.结构体定义和使用 ​ 结构体定义 ​ 通过结构体创建变量的方式 2.1 Struct 结构体名 变量名 ​ 2…

“仿RabbitMQ实现消息队列”---整体架构与模块说明

顾得泉:个人主页 个人专栏:《Linux操作系统》 《C从入门到精通》 《LeedCode刷题》 键盘敲烂,年薪百万! 一、概念性框架理解 我们主要实现的内容: 1.Broker服务器:消息队列服务器(服务端&…

使用 Scapy 库编写源路由攻击脚本

一、介绍 源路由攻击是一种网络攻击方法,攻击者通过利用IP数据包中的源路由选项来控制数据包的传输路径,从而绕过安全设备或防火墙,直接访问目标系统。源路由功能允许数据包的发送方指定数据包通过的路径,而不是由路由器根据路由…

达梦数据库(六) -------- 数据迁移MYSQL->达梦数据库

前言:确保安装好达梦数据库,达梦数据库(三) -------- 安装和初始化达梦数据库_达梦数据库安装-CSDN博客,需要安装达梦的数据库软件包,直接安装达梦8是包含这个功能的。安装包下载地址如下需要注册: https://www.damen…

在鲲鹏服务器搭建k8s高可用集群分享

高可用架构 本文采用kubeadm方式搭建k8s高可用集群,k8s高可用集群主要是对apiserver、etcd、controller-manager、scheduler做的高可用;高可用形式只要是为: 1. apiserver利用haproxykeepalived做的负载,多apiserver节点同时工作…

UnityLeapMotion流程记录

突然接到一个LeapMotion的项目,回想起上次做LeapMotion还是在几年前,但是当时没有去记录,所以这次就相当于是重新走了一遍流程。很苦恼,赶紧记录下来。防止之后忘记。这次的需求还是比较简单的,用手滑动控制图片序列播…

高速服务区智慧公厕管理系统引导屏UI界面展示

在现代社会,高速服务区作为人们出行途中的重要休憩场所,其各项设施的智能化水平也在不断提升。其中,智慧公厕管理系统的出现,为人们带来了更加便捷、舒适的如厕体验,而引导屏 UI 界面更是这一系统的重要展示窗口。 智慧…

FinalShell 配置SSH密钥登陆

转载请标明出处:http://blog.csdn.net/donkor_/article/details/139355489 文章目录 前言生成密钥服务器配置公钥本地配置私钥存储私钥FinalShell配置 总结 前言 本机FinalShell 配置SSH密钥登陆服务器,这样就不再需要使用密码进行登陆了。由于FinalSh…

hadoop(1)--hdfs部署(亲测可用)

一、准备: 1、三台集群部署,配置hosts #cat /etc/hosts 192.168.46.128 node1 #nameNode dataNode secondaryNameNode 192.168.46.129 node2 #datanode 192.168.46.130 node3 #datanode说明: NameNode: 主节点管理者 DataNode&…

AI+教育:OpenAI推出ChatGPT Edu教育版

大家好,我是木易,一个持续关注AI领域的互联网技术产品经理,国内Top2本科,美国Top10 CS研究生,MBA。我坚信AI是普通人变强的“外挂”,所以创建了“AI信息Gap”这个公众号,专注于分享AI全维度知识…

Java web应用性能分析之【压测工具ab】

常用的性能测试工具有:JMeter、loadRunner、ab;对于开发人员来说用的多的是免费的Jmeter和ab,对于测试来说可能用收费的商业软件loadRunner多。在这里我们就说说ab压测工具,因为ab基本满足web接口测试要求,jmeter后面再…

开发者工具-sources(源代码选项)

一、概要说明 源代码面板从视觉效果上分为三个区域:菜单区、内容区、监听区。 菜单区里面有5个子分类: 网页(Page):指页面源,包含了该页面中所有的文件,即使多个域名下的文件也都会展示出来,包括iframe…

【网络层】IP地址基础 与 子网掩码

文章目录 IP地址基础IP地址概念IP地址分类公网地址和私网地址 子网掩码子网掩码作用默认子网掩码网络地址、主机地址、广播地址 IP地址基础 IP地址概念 IP地址:IP Address 在网络中,通信节点都需要有一个IP地址 IP地址以点分十进制表示,有…

openresty(Nginx) 配置 特殊URL 密码访问 使用htpasswd 配置 Basic_Auth登录认证

1 使用htpasswd 生成密码文件.htpasswd是Apache附带的工具。如果没有可以安装。 #centos 8.5 系统 yum install httpd-tools #Ubuntu 24.04 系统 sudo apt update sudo apt-get install apache2-utils #生成密码文件,用户test sudo htpasswd -c /usr/local/openresty/nginx/…

Python魔法之旅-魔法方法(07)

目录 一、概述 1、定义 2、作用 二、应用场景 1、构造和析构 2、操作符重载 3、字符串和表示 4、容器管理 5、可调用对象 6、上下文管理 7、属性访问和描述符 8、迭代器和生成器 9、数值类型 10、复制和序列化 11、自定义元类行为 12、自定义类行为 13、类型检…

Matlab操作Excel筛选指定数据的对应数据

Matlab中在表格中寻找指定汉字,并返回其所在行数, 将该行数的另一列提取出来。 目录 一、前言 二、直接在命令行输出 三、保存筛选数据excel 一、前言 源数据excel: 指定汉子:买,得到下面数据: 二、直接…

特征工程技巧——OneHot编码

我们以Kaggle比赛里面的一个数据集跟一个公开代码为例去解释我们的OneHot编码。 简单来说,独热编码是一种将类别型变量转换为二进制表示的方法,其中每个类别被表示为一个向量,向量的长度等于类别的数量,其中只有一个元素为1&…

Kafka篇:Kafka搭建、使用、及Flink整合Kafka文档

一、Kafka搭建 1、上传并解压改名 tar -xvf kafka_2.11-1.0.0.tgz mv kafka_2.11-1.0.0 kafka-1.0.0 2、配置环境变量 vim /etc/profile export KAFKA_HOME/usr/local/soft/kafka-1.0.0 export PATH$PATH:$KAFKA_HOME/bin source /etc/profile (使环境变量生效…

05.k8s弹性伸缩

5.k8s弹性伸缩 k8s弹性伸缩,需要附加插件heapster监控 弹性伸缩:随着业务访问量的大小,k8s系统中的pod比较弹性,会自动增加或者减少pod数量; 5.1 安装heapster监控 1:上传并导入镜像,打标签 ls *.tar.gz for n in ls *.tar.gz…