参考:深入了解数据库设计的三范式

重点就是简洁,当某个数据发生变化时,不影响其它数据表内数据的准确性。

一、第一范式(1NF):列的原子性
第一范式是指数据库表中的每个字段都是原子性的,即不可再分的,不存在两个数据在一个cell的情况。
二、第二范式(2NF):
在满足1NF的前提下,表中不存在部分依赖,非主键列要完全依赖于主键。
(主要是说在联合主键的情况下,非主键列不能只依赖于主键的一部分)
image.png
表中主键为学生ID和课程ID,课程是依赖于课程ID的,
这个就不合适了,冗余了,不满足非主键列不能只依赖主键的一部分。
三、第三范式(3NF)消除传递依赖
第三范式是在满足第二范式的基础上,消除非主键字段之间的传递依赖。它要求每个非主键字段只依赖于主键,而不依赖于其他非主键字段。
image.png
例如,假设我们有一个员工表,其中包含员工ID、员工姓名、所属部门和部门负责人。在第三范式下,我们应该将所属部门和部门负责人拆分为独立的表,以避免员工表中的冗余数据,并确保每个非主键字段只依赖于员工号。

使用3NF的优势:
数据一致性:通过消除冗余数据和依赖关系,三范式能够提高数据的一致性,避免数据更新时的异常情况。
数据可维护性:三范式的设计使得数据库结构更加清晰和易于维护,减少了数据修改的复杂性。
查询性能优化:通过合理的表结构设计,三范式可以提高查询的效率和响应速度,提升数据库的性能。


瑾明达
1 声望0 粉丝