首页 > 数据库 >MySQL25 - 三范式

MySQL25 - 三范式

时间:2023-01-10 10:13:31浏览次数:42  
标签:班级 依赖 范式 -- 外键 主键 MySQL25

数据库三范式

数据库中表的设计依据

第一范式

要求任何一张表必须有主键每一个字段原子性不可再分

  • 必须有唯一非空列作为主键
  • 比如邮箱和手机号不能存储在一列中,应该分为两列,确保每一列的原子性

第二范式

建立在第一范式基础上,要求所有非主键字段完全依赖主键,不要产生部分依赖

  • 一般出现在联合主键中,非主键字段只依赖于联合主键中的某一个字段,而不是联合主键的全部字段
  • 解决方法:将联合主键(两个字段)拆分为三张表,两个主键字段是多对多的关系
    • 表1 -- 主键1, 表2 -- 主键2,表3 -- 表1与表2的关系

第三范式

建立在第二范式基础上,要求所有非主键字段直接依赖主键,不要产生传递依赖

  • 例如:一张学生表的字段为 学号 -- 姓名 -- 班级号 -- 班级名
  • 该表中,班级名依赖于班级号,再由班级号依赖于学号,产生了传递依赖
  • 解决方法:创建班级表以班级号为主键,班级名直接依赖于班级号,学生表中班级号设为外键,删除班级名字段

总结

  • 一对多
    • 两张表,多的表加外键
  • 多对多
    • 三张表,关系表加两个外键
  • 一对一
    • 可能存在一张表字段太多,太庞大,需要拆成两张表
    • 在第二张表中,添加第一张表的主键,设为外键且唯一 FOREIGN KEY UNIQUE
  • 以实际需求为准
    • 表连接越多效率越低,有时会以空间换时间,提高效率

标签:班级,依赖,范式,--,外键,主键,MySQL25
From: https://www.cnblogs.com/Ashen-/p/17039282.html

相关文章

  • 三大范式
     ......
  • 关系型数据库设计三大范式
    作者:郑龙飞范式定义百度百科:设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余......
  • 第一范式 第二范式 第三范式理解
    数据库中设计一个好的标准化范式能大大减少数据冗余,增强数据的易操作性。范式的演变:第一范式:表中没有重复数据组属性不可以再分,具有一个主键(主键组)例如:出现从重复的数据......
  • 关系型数据库设计三大范式
    作者:郑龙飞范式定义百度百科:设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越......
  • 数据库,部分函数依赖,传递函数依赖,完全函数依赖,三种范式的区别
    要讲清楚范式,就先讲讲几个名词的含义吧:部分函数依赖:设X,Y是关系R的两个属性集合,存在X→Y,若X’是X的真子集,存在X’→Y,则称Y部分函数依赖于X。举个例子:学生基本信息表R中(学号,......
  • Flutter 陈航 10-状态 State 编程范式 构建过程
    本文地址目录目录目录10|Widget中的State到底是什么?UI编程范式命令式声明式总结StatelessWidget构建过程适用场景StatefulWidget构建过程总结StatefulWidget可能......
  • 数据库三大范式-2022-12-2
    为什么要规范化?  1、信息重复  2、更新异常 3、插入异常   ---无法正常显示信息 4、删除异常   ---丢失有效信息三大范式概念解释:三大范式......
  • 基于 RocketMQ 的 Dubbo-go 通信新范式
    本文作者:郝洪范,Dubbo-goCommitter,京东资深研发工程师。一、MQRequestReply特性介绍什么是RPC通信?如上图所示,类似于本地调用,A服务响应调用B服务的helloworld......
  • 数据库三大范式
    一、第一范式定义:表中的列必须是不可再细分的最小单元举例: 表中家庭信息和学校信息列都不满足原子性的要求,即不满足第一范式二、第二范式定义:非主......
  • DTSE Tech Talk 第13期:Serverless凭什么被誉为未来云计算范式?
    摘要:在未来,云上交付模式会逐步从Serverful为主转向Serverless为主。本文分享自华为云社区《DTSETechTalk第13期:Serverless凭什么被誉为未来云计算范式?》,作者:华为云社......