1. 什么是三范式
数据库三范式(Third Normal Form,3NF)是数据库规范化的一种级别,旨在设计数据库表结构以减少数据冗余,确保数据的一致性,提高数据库性能,并降低数据维护的复杂性。三范式建立在前两个范式(第一范式和第二范式)的基础上,以下是关于数据库三范式的详细介绍:
1.1 第一范式(1NF–列都是不可再分的)
第一范式的目标是确保每列的原子性:如果每列都是不可再分的最小数据单元(也称为最小的原子单元),则满足第一范式(1NF)
1.2 第二范式(2NF–每个表只描述一件事情)
首先满足第一范式,并且表中非主键列不存在对主键的部分依赖,非主键列要完全依赖于主键。第二范式要求每个表只描述一件事情。
1.3 第三范式(3NF–不存在对非主键列的传递依赖)
第三范式定义是,满足第二范式,并且表中的列不存在对非主键列的传递依赖。除了主键订单编号外,顾客姓名依赖于非主键顾客编号。
图中的顾客编号依赖于订单编号,而顾客名字又依赖于顾客编号,能够推断出,顾客姓名依赖于订单编号,有传递依赖,不服合第三范式。
2.使用三范式的目的
使用第三范式的主要目的是提高数据库的灵活性、可维护性和性能。通过遵循第三范式,可以获得以下好处:
- 减少数据冗余:第三范式要求非主键列之间不能有传递依赖关系,这意味着数据不会在表中重复存储,减少了数据冗余。
- 提高数据一致性:规范化的数据库表结构有助于确保数据的一致性,因为数据只存储在一个地方,不容易出现不一致的情况。
- 简化数据维护:数据库表结构更清晰,易于理解和维护。在修改数据时,只需在一个地方进行更改。
- 提高查询性能:规范化的表结构通常能够更有效地支持复杂查询,从而提高查询性能。