美文网首页
MySQL 三范式

MySQL 三范式

作者: 左诗右码 | 来源:发表于2023-12-19 00:46 被阅读0次

关于 MySQL 的三范式,它们其实是数据库设计的基本原则,主要用于指导我们进行合理的数据库设计,能够有效地减少数据冗余和异常:

第一范式(1NF):表中的每列的属性不可再分

比如:

学号(主键) 姓名 性别 就读信息
20200101 张三 大一,土木工程

上表中可以看到,(就读信息)这一列,其实还可以分解成(年级)和(专业),因此(就读信息)这一属性还可以再分,故不满足第一范式

修改成:

学号(主键) 姓名 性别 年级 专业
20200101 张三 大一 土木工程

第二范式(2NF):在第一范式的基础上,表里的非主键属性必须都依赖于主键(联合主键)

比如:

学号(主键) 课程(主键) 教师姓名 成绩 学生姓名 专业
20200101 C语言程序设计 老张 80 张三 计算机科学与技术
20200102 JAVA程序设计 老李 87 李四 网络工程
20200103 数据结构 老王 90 王五 软件工程

上表中可以看到,(教师姓名、成绩)两个属性都依赖于(学号)和(课程),但是(学生姓名、专业)这两个属性却只依赖于(学号),不依赖于(课程),即 只需要知道(学号)便可以知道(学生姓名和专业两个属性),所以,导致非主键属性(学生姓名、专业)不完全依赖于主键(学号、课程),故不符合第二范式

修改成:

学号(主键) 课程(主键) 教师姓名 成绩
20200101 C语言程序设计 老张 80
20200102 JAVA程序设计 老李 87
20200103 数据结构 老王 90
学号(主键) 学生姓名 专业
20200101 张三 计算机科学与技术
20200102 李四 网络工程
20200103 王五 软件工程

第三范式(3NF):在第二范式的基础上,表中的非主属性不可以存在依赖关系

学号(主键) 姓名 性别 年级 专业 班主任姓名 班主任性别 班主任年龄
20200101 张三 大一 计算机科学与技术 老张 33
20200102 李四 大二 网络工程 老李 34
20200103 王五 大三 软件工程 老王 35

上表中可以看到,非主键属性都依赖于(学号),满足了第二范式。但是(班主任性别、班主任年龄)这两个属性都是直接依赖于(班主任姓名)这一属性的,与(学号)属于间接依赖,这就导致了表中的非主键属性存在着依赖关系,不符合第三范式

学号(主键) 姓名 性别 年级 专业
20200101 张三 大一 计算机科学与技术
20200102 李四 大二 网络工程
20200103 王五 大三 软件工程
班主任姓名(主键) 班主任性别 班主任年龄
老张 33
老李 34
老王 35

这三个范式是在设计关系数据库时最基本的范式,遵循这三个范式可以减少数据冗余,提高数据的完整性和一致性。但是,在实际的数据库设计中,有时为了追求查询性能会适当的违反这些范式,引入一定的数据冗余,这种做法也是可以接受的。

相关文章

  • MySQL三大范式和反范式

    MySQL三大范式和反范式 第一范式 第二范式 第三范式 反范式

  • 数据库设计三范式与反范式

    MySql设计与优化系列笔记:一、数据库设计三范式与反范式二、MySql表设计与优化 第一范式: 1、数据库的所有...

  • MySQL之三范式

    引用 MySQL设计之三范式的理解 数据库逻辑设计之三大范式通俗理解,一看就懂,书上说的太晦涩 三范式 第一范式:...

  • MySQL三范式

    本文的示例代码参考normalization 目录 Startup 1NF什么是Primary-Key什么是Par...

  • mysql 三范式

    第一范式:确保每一列不可再分 1.第一范式是最基本的范式。如果数据库表中的所有字段值都是不可分解的原子值,就说明该...

  • MySql表设计与优化

    MySql设计与优化系列笔记:一、数据库设计三范式与反范式二、MySql表设计与优化 1、实体关系分析 实体关系需...

  • 02-MySQL数据库

    一、MySQL三大范式 MySQL的三大范式能够规范开发人员对数据表的设计,使得开发人员能够设计出简洁、优雅的数据...

  • mysql 三范式及逆范式

    数据库设计当中三范式是经常遇到的 1.第一范式 第一范式(1NF)所谓第一范式(1NF)是指数据库表的每一列都是不...

  • MySQL三范式&逆范式

    一、三范式 概念:为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则(注:在关系型数据库中这种规则...

  • mysql

    1. MySQL简介 MySQL是广泛应用的一种关系型数据库 1.1 三范式 第一范式(1NF):列不可拆分 第二...

网友评论

      本文标题:MySQL 三范式

      本文链接:https://www.haomeiwen.com/subject/rnhzgdtx.html