1NF | 2NF | 3NF的区分以及什么是函数依赖、部分函数依赖、值传递依赖(最详细的讲解1NF、2NF、3NF的关系)

简介: 这篇文章详细讲解了数据库范式中的1NF、2NF和3NF,包括它们的定义、区分方法和如何判断部分函数依赖和传递函数依赖,以及如何将数据表规范化到相应的范式。

1NF | 2NF | 3NF的区分以及什么是函数依赖、部分函数依赖、值传递依赖

符合3NF一定符合2NF、一定符合1IF

简单区分。2NF不存在部分函数依赖,3NF不存在传递函数依赖

第一范式1NF

  • 符合1NF的关系中的每个属性都不可再分。

在这里插入图片描述

第二范式2NF

  • 消除了1NF非主属性对主属性的部分函数依赖。

函数依赖:在属性(属性组)X的值确定的情况下,必定能够确定属性Y的值。
例如:学号–>班主任。(学号,课程名称)–>分数。

完全函数依赖:在一张表中,如果X–>Y,对于X的任意子集都不能确定Y。
例如(学号,课程)–>分数。单独的学号、和课程都不能确定分数。一个学号多个课程分成绩,一个课程对应多个同学的成绩。只能由学号和课程共同确定具体的分数。

部分函数依赖:Y函数依赖X函数,但是Y函数不完全依赖X函数。就称函数Y部分依赖函数X。
例如:(学号,课程名)–>姓名。一个学号对应一个学生姓名,但是课程名并不能对应具体的学生。

传递函数依赖:Z函数依赖Y函数,Y函数依赖X函数(Y不包含X,X不依赖Y前提)。Z函数依赖X函数。

判断是否是2NF:查看表中是否存在非主属性对于码的部分函数依赖。不存在部分函数依赖就是2NF

判断方法:

  • 1、找出数据表所有的码
  • 2、根据码找出主属性
  • 3、找出非主属性
  • 4、查看非主属性对码的部分函数依赖

找码的过程:
1、查看一个单一属性,其他属性值是否都能确定
2、查看两个属性:其他属性值能否全部确定
3、…

例如:(学号,课名,姓名,系名,系主任,分数)。
单一的学号不能确定分数,分数的确定需要学号和课程。

码(学号,课名)

(学号,课名)–>系名.单独的学号就可以确定。部分依赖

改为2NF,消除部分依赖
将分数搞出去,选课(课程名,学号,分数)
学生(学号,姓名,系名,系主任)

选课的码(课程名,学号)–>分数
学生的码(学号)–> 只有一个主属性,不存在部分函数依赖

第三范式:3NF

  • 消除了非主属性对码的传递函数依赖。

选课表(课程名,学号,分数)不存在传递函数依赖。(课程名,学号)为主码,传递也需要另外两个属性。

学生表中,学号–>系名。系名–>系主任。存在传递函数依赖。不符合3NF。
消除这个传递函数依赖
系(系名、系主任)
学生(学号,姓名,系名)

相关文章
|
移动开发 vr&ar
数据库系统概论——关系代数详解
关系代数是一种抽象的查询语言,是关系数据操纵语言的一种传统表达方式,它是利用对关系的运算来表达查询的。任何运算都是将一定的运算符作用于一定的运算对象上,得到预期的运算结果。关系代数的运算对象是关系,运算结果亦为关系。集合运算符将关系看成元组的集合从关系的“水平”方向即行的角度来进行运算专门的关系运算符不仅涉及行而且涉及列算术比较符辅助专门的关系运算符进行操作逻辑运算符辅助专门的关系运算符进行操作。
2730 1
数据库系统概论——关系代数详解
|
安全 数据库 存储
数据库设计基石:一文搞懂 1NF、2NF、3NF 三大范式
数据库设计常遇数据冗余、增删改异常?根源往往是表结构不规范。本文带你轻松掌握数据库三大范式——1NF、2NF、3NF,从原子列到消除依赖,层层递进,提升数据一致性与可维护性,让数据库设计更高效、安全!#数据库 #范式设计
3665 0
|
SQL 数据库 容器
软件体系结构 - 元组演算
【4月更文挑战第7天】软件体系结构 - 元组演算
393 2
IEEE 754规格化浮点数所能表示的最大值和最小值
IEEE 754规格化浮点数所能表示的最大值和最小值
5417 1
IEEE 754规格化浮点数所能表示的最大值和最小值
|
存储 编解码 算法
哈夫曼树完全解析:从原理到应用
哈夫曼树是一种带权路径长度最短的二叉树,广泛应用于数据压缩领域。它通过为高频元素分配短编码、低频元素分配长编码,显著减少数据量。构建时根据权重动态合并节点,最终生成无歧义前缀编码。其核心特性包括最优压缩效率、贪心策略有效性和高空间利用率。在现代应用中,哈夫曼编码被用于ZIP压缩、PNG图像、HTTP/2头部压缩及多媒体处理等领域。例如,对字符串“ABRACADABRA”进行压缩,可将88bit数据降至26bit,压缩率达70.5%。
|
SQL 存储 数据库
关系数据库:关系运算
关系数据库:关系运算
1425 5
关系数据库:关系运算
|
关系型数据库 数据库
关系型数据库设计规范第二范式(2NF)
【5月更文挑战第14天】关系型数据库设计规范第二范式(2NF)
1299 7
|
缓存 网络协议 安全
【图解】三次握手,四次挥手 —— 用心看这一篇就够了
【图解】三次握手,四次挥手 —— 用心看这一篇就够了
3182 0
【图解】三次握手,四次挥手 —— 用心看这一篇就够了
|
uml
UML 类图几种关系(依赖、关联、泛化、实现、聚合、组合)及其对应代码
UML 类图几种关系(依赖、关联、泛化、实现、聚合、组合)及其对应代码
4542 0
构造LR(1)分析表和LALR(1)分析表
构造LR(1)分析表和LALR(1)分析表
806 3