关系型数据库设计规范第二范式(2NF)

本文涉及的产品
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
简介: 【5月更文挑战第14天】关系型数据库设计规范第二范式(2NF)

image.png
关系型数据库设计规范中的第二范式(2NF, Second Normal Form)是在第一范式(1NF)的基础上进一步对数据库表的设计进行规范化,以减少数据冗余和确保数据完整性。

在理解2NF之前,我们先回顾一下第一范式(1NF):

第一范式(1NF):数据库表的每一列都是不可分割的原子项。

接下来,我们来看第二范式(2NF)的定义:

第二范式(2NF):一个关系满足1NF,并且非主键列完全依赖于整个主键(而不是主键的一部分)。

为了更好地理解2NF,我们来看一个例子:

假设我们有一个学生课程表,其中包含了学号课程号课程名成绩四个字段。在这个表中,学号课程号组合起来作为主键。

  • 学号:唯一标识一个学生。
  • 课程号:唯一标识一门课程。
  • 课程名:描述课程的名称。
  • 成绩:学生在该课程上的成绩。

这个表违反了2NF,因为课程名这一列并不直接依赖于主键的全部(即学号课程号),而只是依赖于课程号。这导致了一个潜在的问题:如果我们有多条记录对应于同一个课程号但不同的学号,那么课程名会在表中被重复多次,造成数据冗余。

为了符合2NF,我们可以将课程名字段移到一个新的表课程中,其中只包含课程号课程名两个字段。然后,在学生课程表中,我们只需要保留学号课程号成绩三个字段,并通过课程号课程表进行关联。

通过这样的设计,我们可以确保每个非主键列都完全依赖于主键,从而减少了数据冗余并提高了数据的完整性。

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
6月前
|
数据库 Python
在数据库中的规范设计
【5月更文挑战第16天】关系数据库规范化理论涉及函数依赖和超键概念。函数依赖如X->Y表示X能唯一确定Y。超键是能唯一标识元组的属性集合,候选键是最小超键,无冗余。主键是用户选定的候选键,外键关联不同表的主键。Armstrong公理用于推导函数依赖。数据库范式从1NF到5NF,消除部分和传递依赖,确保数据完整性。实际操作中,反规范化有时用于优化,如增加冗余列、派生列、重组表和分表策略,以提升查询效率和性能。
206 51
在数据库中的规范设计
|
3月前
|
存储 数据库
数据库设计三范式
三范式设计的最终目的都是为了减少我们的工作量,所以说,尽管三范式是一种很好的指导规范,但在实际应用中,我们也不需要太局限在三范式中,更多的是应该从项目中出发,设计出合理的表结构。
|
3月前
|
存储 SQL 关系型数据库
数据库开发设计规范(通用)
数据库开发设计规范(通用)
251 0
|
11天前
|
存储 数据库
数据库设计三范式
数据库设计三范式
18 0
|
3月前
|
存储 算法 Java
数据库范式与设计原则
数据库范式与设计原则
63 0
|
4月前
|
存储 关系型数据库 数据库
关系型数据库设计范式:深入理解与实践
【7月更文挑战第20天】关系型数据库设计范式是数据库设计中的重要指导原则,它通过一系列规范来减少数据冗余、提高数据一致性和优化查询性能。在实际应用中,我们应该根据具体需求和数据特点,灵活选择和应用不同的范式级别,以构建高效、可靠和可扩展的数据库系统。同时,也需要注意范式设计带来的挑战和限制,根据实际情况进行权衡和调整。
|
4月前
|
存储 Java 数据库连接
数据库三范式详解及应用
数据库三范式详解及应用
|
4月前
|
存储 Java 数据管理
数据库三范式设计与规范化过程详解
数据库三范式设计与规范化过程详解
|
4月前
|
存储 SQL 关系型数据库
MySQL设计规约问题之在数据库设计中,为什么要适当考虑反范式的表设计
MySQL设计规约问题之在数据库设计中,为什么要适当考虑反范式的表设计
|
4月前
|
存储 监控 安全
安全规范问题之跟数据库交互涉及的敏感数据操作需要有哪些措施
安全规范问题之跟数据库交互涉及的敏感数据操作需要有哪些措施