关系型数据库设计规范第三范式(3NF)

本文涉及的产品
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
简介: 【5月更文挑战第14天】关系型数据库设计规范第三范式(3NF)

image.png
关系型数据库设计规范中的第三范式(3NF, Third Normal Form)是在满足第一范式(1NF)和第二范式(2NF)的基础上进一步消除数据冗余和规范数据设计的标准。以下是关于3NF的详细解释:

  1. 第一范式(1NF)
* 每一列都是不可分割的原子项。
* 表中不能有重复的行(由主键唯一确定)。
* 列(属性)名唯一,没有重复的列。
  1. 第二范式(2NF)
* 满足1NF。
* 所有的非主键列都完全依赖于主键(即没有部分依赖)。
* 如果存在复合主键(由多个列组成的主键),则非主键列不能仅依赖于复合主键中的一部分。
  1. 第三范式(3NF)
* 满足2NF。
* 非主键列之间没有传递依赖。换句话说,如果一个非主键列A依赖于另一个非主键列B,而B又依赖于主键,那么A应该直接依赖于主键,而不是通过B来间接依赖。

为什么需要3NF?

通过遵循3NF,我们可以确保数据库结构更加清晰、规范,减少数据冗余和更新异常(如插入异常、删除异常和修改异常)。

如何应用3NF?

  • 识别并消除部分函数依赖。
  • 如果发现非主键列之间存在传递依赖,考虑将其拆分为多个表,并通过外键关联。

示例

假设我们有一个订单表,其中包含了订单ID客户ID客户姓名产品ID产品名称

  • 在这个表中,订单ID是主键。
  • 客户ID客户姓名产品ID产品名称都是非主键列。
  • 客户ID依赖于订单ID(因为每个订单都有一个客户)。
  • 但是,客户姓名依赖于客户ID,而不是直接依赖于订单ID
  • 同样,产品ID产品名称依赖于产品ID,而不是直接依赖于订单ID

根据3NF,我们应该将客户姓名产品名称移出订单表,并将它们分别放入客户表和产品表。然后,在订单表中,我们只保留客户ID产品ID作为外键,与客户表和产品表进行关联。

这样,我们就消除了传递依赖,并遵循了3NF。

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
1月前
|
数据库 Python
在数据库中的规范设计
【5月更文挑战第16天】关系数据库规范化理论涉及函数依赖和超键概念。函数依赖如X->Y表示X能唯一确定Y。超键是能唯一标识元组的属性集合,候选键是最小超键,无冗余。主键是用户选定的候选键,外键关联不同表的主键。Armstrong公理用于推导函数依赖。数据库范式从1NF到5NF,消除部分和传递依赖,确保数据完整性。实际操作中,反规范化有时用于优化,如增加冗余列、派生列、重组表和分表策略,以提升查询效率和性能。
157 51
在数据库中的规范设计
|
1月前
|
存储 关系型数据库 数据库
关系型数据库设计规范第一范式(1NF)
【5月更文挑战第14天】关系型数据库设计规范第一范式(1NF
44 8
|
1月前
|
关系型数据库 数据库
关系型数据库设计规范第二范式(2NF)
【5月更文挑战第14天】关系型数据库设计规范第二范式(2NF)
44 7
|
19天前
|
SQL 存储 关系型数据库
第11章‘数据库设计规范(2)
第11章‘数据库设计规范
25 0
|
19天前
|
存储 关系型数据库 数据挖掘
第11章‘数据库设计规范(1)
第11章‘数据库设计规范
15 0
|
1月前
|
存储 关系型数据库 MySQL
【MySQL】数据库规范化的三大法则 — 一探范式设计原则
【MySQL】数据库规范化的三大法则 — 一探范式设计原则
|
1月前
|
数据库
数据库-----范式判断
数据库-----范式判断
40 0
|
2天前
|
存储 关系型数据库 MySQL
关系型数据库MySQL的MyISAM
【6月更文挑战第17天】
18 11
|
3天前
|
存储 关系型数据库 MySQL
|
3天前
|
SQL 关系型数据库 MySQL

热门文章

最新文章