首页 > 其他分享 >三大范式

三大范式

时间:2023-02-26 21:46:44浏览次数:60  
标签:范式 name 依赖于 course student 主键 三大

1. 三大范式

可以帮助我们设计一个高效的数据库

1.1 第一范式1NF

定义:所有列不可以再分。
简单的说,就是要保证某张表中的某个字段,是原子的。
例如我们经常看到的表结构会有,姓名、性别、手机号、邮箱等等字段,那么为什么不直接叫做 联系人信息字段呢?然后存一个字符串或者 Json 串。其实主要也是遵循了第一范式。
假定字段userInfo广东省10086 ,依照第一范式拆解成userInfo广东省和userTel 10086两个字段

1.2 第二范式2NF

满足第一范式的条件下包含两个部分

  • 表必须有一个主键
  • 非主键列必须完全依赖于主键,而不是只依赖于主键的一部分
假定选课关系表为student_course 
表中有留个字段,分别是student_no,student_name,age,course——name,grade,credit
主键为(student_no,course_name)
其中学分完全依赖于课程名称,姓名年龄完全依赖于学号,不符合第二范式
会导致数据冗余(学生选择N门课,姓名年龄有N条记录),插入异常(插入一门新课,因为没有学号,无法保存新课记录)等问题
因此需要拆分成三个表:
学生:student表(student_no,student_name,年龄)
课程:course表(course_name,credit)
选课关系:student_course_relation表(student_no,course_name,grade)

1.3 第三范式3NF

满足第二范式的条件下,非主键列必须直接依赖于主键,不能存在传递依赖

即不能存在:非主键列A依赖于非主键列B,非主键列B依赖于主键

假定学生关系表student
表有五个字段分别为student_no,student_name,age.academy_id,academy_telephone
主键为学号student_no其中学院id依赖于学号,而学院地点和学院电话依赖于学院id们存在传递依赖,不符合第三范式
因此分为两个表
- 学生(student_no,student_name,age,academy_id)
- 学院(academy_id,academy_telephone)

1.3.1 第二范式和第三范式的区别

  • 2NF依据是非主键列是否完全依赖于主键,还是依赖于主键的一部分
  • 3NF依据是非主键列是否直接依赖于主键,还是直接依赖于非主键

标签:范式,name,依赖于,course,student,主键,三大
From: https://www.cnblogs.com/LaChlanYang/p/17157829.html

相关文章

  • 数据库三范式
    第一范式   数据库中每一个字段都要求具备原子性,是不可拆分的最小单元第二范式       数据库中的非主键字段必须依赖主键第三范式      数据库......
  • Java的特性和优点,三大版本,JDK,JRE,JVM
    Java的特性和优点面对对象跨平台性简单高性能分布式动态性多线程安全的健壮的Java的三大版本JavaSE:标准版(桌面程序,控制台开发...)JavaME:......
  • 【MySQL】010-数据库设计的三大范式
    一、范式概述范式,数据库设计范式,数据库的设计范式,是符合某一种级别的关系模式的集合。构造数据库必须遵循一定的规则。在关系数据库中,这种规则就......
  • Python UI自动化三大等待方式区别
    PythonUI自动化三大等待方式sleep():强制等待,设置固定休眠时间。后脚本的执行过程中执行sleep()后线程休眠,而另外两种线程不休眠。implicitly_wait():隐式等待,是设置的......
  • java三大平台与跨平台性01
    javaSE:  javaME: javaEE:  ......
  • 贝叶斯与卡尔曼滤波(1)--三大概率
    贝叶斯与卡尔曼滤波(1)--三大概率贝叶斯滤波主要是通过概率统计的方法,主要是贝叶斯公式,对随机信号进行处理,减小不确定度贝叶斯滤波处理的随机变量主要是一个随机过程。\(......
  • Java三大版本
    WriteOnce、RunAnywhereJavaSE:标准版(桌面程序,控制台开发......JavaME:嵌入式开发(手机,小家电.......JavaEE:E企业级开发(web端,服务器开发...)......
  • 域内三大协议—Kerberos
    https://www.tarlogic.com/blog/how-kerberos-works/为什么需要了解原理,因为不同攻击方法不同,而有的可用,有的不可用。简介什么是kerberos和NTLM协议一样,Kerberos是......
  • 域内三大协议—NTLM
    参考:https://www.crowdstrike.com/cybersecurity-101/ntlm-windows-new-technology-lan-manager/https://en.hackndo.com/pass-the-hash/简介什么是NTLMNTML全称......
  • (数据库系统概论|王珊)第五章数据库完整性-第一、二、三节:数据库三大完整性
    pdf下载:密码7281专栏目录首页:【专栏必读】(考研复试)数据库系统概论第五版(王珊)专栏学习笔记目录导航及课后习题答案详解@目录一:数据库完整性概述(1)数据库完整性的基本概念......