数据库的三范式是什么?

第一范式(1NF)

每列的原子性,表中的每一个字段都是不可分割的,同一列中不能有多个值。第一范式是对关系模式的基本要求,不满足第一范式的数据库不是关系型数据库。

・不满足第一范式的示例:

|----------|----------|------------------------------------------------------------------------------------------------|
| 学生编号 | 学生姓名 | 联系方式 |
| 1001 | 张三 | zs@gmail.com, 13599999999 |
| 1002 | 李四 | ls@gmail.com, 13699999999 |
| 1003 | 王五 | ww@163.net, 13488888888 |

第二范式(2NF)

确保唯一性和依赖性,每个表都有主键,且其他字段都完全依赖主键。

第二范式是在第一范式的基础上,要求表中的每一条数据可以被唯一区分,通常使用主键实现,其他所有字段都完全依赖主键。

其他字段依赖主键是指,其他每个字段都与主键完全相关,当确定主键的值时就能确定其他所有字段的值。也就是说一个表只能存一种数据,不可以把多种数据存到一个表中。

完全依赖是指,联合主键时,其他字段不可以只依赖主键中的某个字段,必须依赖联合主键中的每一个字段。

・不满足第二范式的示例:

|----------|----------|----------|--------|
| 学生编号 | 课程编号 | 学生姓名 | 成绩 |
| 1001 | 001 | 张三 | 90 |
| 1002 | 001 | 李四 | 80 |
| 1001 | 002 | 张三 | 90 |

第三范式(3NF)

在第二范式的基础上,非主键字段必须直接依赖于主键,不能存在传递依赖。

・不满足第三范式的示例:

|----------|----------|----------|---------|
| 学生编号 | 班级编号 | 学生姓名 | 班级名 |
| 1001 | 01 | 张三 | 一年一班 |
| 1002 | 02 | 李四 | 一年二班 |
| 1003 | 03 | 王五 | 一年三班 |

班级名对学生编号和班级编号产生了传递依赖

相关推荐
聆风吟º1 小时前
Oracle到KingbaseES数据库迁移:全流程实战指南与避坑总结
数据库·oracle·数据库迁移·kingbasees
哈__1 小时前
Oracle至KingbaseES数据库迁移全攻略:痛点拆解、配置实操与问题排查
数据库·oracle
JZC_xiaozhong2 小时前
电商ERP如何同步订单数据到MySQL?集成方案解析
数据库·mysql·数据分析·etl工程师·嵌入式实时数据库·电商erp集成·数据集成与应用集成
消失的旧时光-19432 小时前
第四篇(实战): 订单表索引设计实战:从慢 SQL 到毫秒级
java·数据库·sql
知识分享小能手2 小时前
Oracle 19c入门学习教程,从入门到精通, Oracle 表空间与数据文件管理详解(9)
数据库·学习·oracle
zhengfei6112 小时前
Chroma DB — 未经授权的信息披露
数据库
KaiwuDB3 小时前
KaiwuDB 获评“2025 中国大数据产业年度国产化优秀代表厂商”
数据库
百***07453 小时前
一步API+Gemini 3.0 Pro进阶实战:多模态开发、性能调优与项目落地
数据库·microsoft
不想写bug呀3 小时前
Redis主从复制介绍
数据库·redis
颜颜yan_3 小时前
Oracle 迁移到 KingbaseES 实战:从评估到追平的一套可落地流程
数据库·oracle