【MySQL 流浪之旅】 第五讲 数据库设计的三个范式
发布时间:2024年01月24日
系列文章目录
【MySQL 流浪之旅】 第一讲 MySQL 安装
【MySQL 流浪之旅】 第二讲 MySQL 基础操作
【MySQL 流浪之旅】 第三讲 MySQL 基本工具
【MySQL 流浪之旅】 第四讲 MySQL 逻辑备份
前言
数据库的设计三范式(Normalization)是关系型数据库设计的一种标准化过程,目的是消除冗余数据,提高数据存储的效率和数据查询的性能。
三个范式分别是:
- 第一范式(1NF):也称为原子性原则,要求数据库表中的每一列都是不可再分的最小数据单元,即所有域都应该是原子性的,即实体中的某个属性有多个值时,必须拆分为不同的属性。在符合第一范式(1NF)表中的每个域值只能是实体的一个属性或一个属性的一部分。
- 第二范式(2NF):在第一范式(1NF)的基础上,非主键字段必须依赖于主键。这意味着非主键列不能只依赖于主键的一部分,而是必须完全依赖于主键。此外,非主属性不能与非主属性之间有依赖关系,非主属性必须直接依赖于主属性,不能间接依赖主属性。
- 第三范式(3NF):在满足第二范式(2NF)的基础上,除了主键以外的其它列都不能传递依赖于主键列的信息。也就是说,任何非主属性不能依赖于其它非主属性。简而言之,第三范式就是在1NF基础上,除了主键以外的其它列都不传递依赖于主键列,或者说:任何非主属性不依赖于其它非主属性。
下面简单展开讲讲。?
一、第一范式
1.1. 设计原则
- 数据库所有字段都只有单一属性
- 单一属性是由基本数据类型构成的
- 数据库的表都是二维的(行与列)
1.2. 错误范例
二、第二范式
2.1. 设计原则
- 要求符合第一范式
- 表必须有一个主键(一列或多列)
- 其他字段可由主键确定
- 二范式目的是通过拆表减少数据冗余
2.2. 设计样例
三、第三范式
3.1. 设计原则
- 要求符合第二范式
- 字段要求直接依赖于主键,不允许间接依赖
- 第三范式目的在于拆分实体(完善主从表)
3.2. 设计样例
文章来源:https://blog.csdn.net/yip1228/article/details/135820328
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:chenni525@qq.com进行投诉反馈,一经查实,立即删除!