问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

数据库三大范式详解:从1NF到3NF的设计理念与实践

创作时间:
作者:
@小白创作中心

数据库三大范式详解:从1NF到3NF的设计理念与实践

引用
CSDN
1.
https://m.blog.csdn.net/zhuge_long/article/details/141570624

数据库三大范式是一种数据库设计理念,其主要意义在于降低耦合,类似于编程中追求的"高内聚低耦合"原则。一个表应该只有一个主键,且一个主键可以由多列组成。

第一范式(1NF)

第一范式要求数据库表的每一列都是不可分割的原子数据项,即列中存储的数据是最小的数据单元,不能再分解为更小的部分。例如,如果一个属性包含多个值,必须将其拆分为不同的属性。第一范式是关系数据库设计的基本要求,确保数据的原子性。

案例分析:

  • 上方不符合原子性:家庭信息和学校信息包含多个数据项
  • 优化方案:将家庭信息拆分为人口数量和籍贯,将学校信息拆分为学历和年级

第二范式(2NF)

在满足第一范式的基础上,第二范式要求数据库表中的每个实例或记录必须可以被唯一区分。此外,所有非主键字段必须完全依赖于主键,不能只依赖主键的一部分。这意味着如果存在部分依赖的情况,需要将相关的属性移到与其完全依赖的关系中,以消除部分依赖。

案例优化:

  • 订单表:订单编号 + 商品编号 + 数量
  • 商品表:商品编号 + 商品名称 + 价格 + 单位
  • 客户表:订单编号 + 客户名称 + 所属单位 + 联系方式

第三范式(3NF)

在满足第二范式的基础上,第三范式进一步要求非主键字段之间不能存在传递依赖。即非主键字段必须直接依赖于主键,而不能通过其他非主键字段间接依赖主键。这有助于减少数据冗余,提高数据的一致性和完整性。

案例优化:

  • 学生表:学号 + 姓名 + 性别 + 家庭人口 + 班主任教师编号
  • 教师表:教师编号 + 姓名 + 性别 + 年龄

通过遵循这三大范式,可以有效提升数据库设计的合理性和数据管理的效率。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号