数据库的三大范式

数据库的三大范式

目录

1NF

每个字段的数据保持原子性,不可再分割

示例:

不符合第一范式的表结构

学生ID 学生信息
1 张三,男,18岁,计算机科学
2 李四,女,19岁,物理学
3 王五,男,20岁,数学

符合第一范式的表结构

学生ID 姓名 性别 年龄 专业
1 张三 18 计算机科学
2 李四 19 物理学

'学生信息'包含了多种属性,因此不符合第一范式,需要将其拆分为多个独立的列

2NF

在满足第一范式的基础上,要求表中每个非主键字段必须完全依赖于主键,而不是主键的一部分

示例:

不符合第二范式的表结构

学生ID 课程ID 课程名称 成绩 讲师姓名
001 C001 数学 90 张老师

符合第二范式的表结构

学生ID 课程ID 成绩
001 C001 90
课程ID 课程名称 讲师姓名
C001 数学 张老师

课程名称和讲师姓名并没有完全依赖于学生id ,因此在这种情况下我们应该与课程相关的字段拆分到新的课程表中,然后将课程id字段作为外键存储在学生表

3NF

在满足第二范式的基础上,要求非主键字段之间不存在传递依赖,也就是一个非主键列不能依赖于另一个非主键列

示例:

不满足第三范式的表结构

学生ID 学生姓名 系主任姓名 系主任办公室
001 张三 李老师 201室

满足第三范式的表结构

学生ID 学生姓名 系主任ID
001 张三 01
系主任ID 系主任姓名 系主任办公室
01 李老师 201室

与第二范式类似,系主任办公室并不依赖于学生id而是依赖于系主任姓名,因此要将整个系主任字段拆分到系主任表中

相关推荐
城管不管38 分钟前
重生——第十一次面试之挖财一面2026.8.19已OC
java·服务器·jvm·数据库·spring·面试·职场和发展
倔强的石头1061 小时前
向量数据库从相似度检索走向融合数据底座
数据库
今天AI了吗2 小时前
Python 基础语法(一):常量、变量、输入输出与运算符
开发语言·数据库·人工智能·python·sql·深度学习·机器学习
lilian2333 小时前
Harmony os 技术实战|拼豆制图27:用单字符编码承载 50 张 70×70 图纸
前端·数据库·华为·harmonyos
皮卡丘不断更4 小时前
手机优先的 Personal Ledger:把账目、学习和复盘放到同一个入口
数据库·sqlite·fastapi·开源项目·个人效率
保卫大狮兄5 小时前
设备管理从台账到报废,完整生命周期一次讲清
数据库·设备管理·设备
数据安全技术观察5 小时前
数据动态脱敏:让脱敏策略跟着数据目录走
大数据·网络·数据库
小席是个热心肠6 小时前
Redis的自我学习
数据库·redis·学习
2601_965798476 小时前
Salient Theme Setup Guide for Fast Creative WordPress Sites
数据库·web3·php·wordpress
@Mike@6 小时前
09-数据库学习笔记(数据库索引与过滤器)
数据库·笔记