一、什么是范式设计与反范式设计
1.1、范式设计(Normalization)
定义:
范式设计是数据库设计中最基础的设计原则之一,它主要通过规范化数据模型,减少数据冗余和数据不一致的问题。
常用的范式:
-
第一范式(1NF):要求数据库中的每个字段都是原子性的,即每个字段都是一个不可再分的数据项。例如,学生的姓名和成绩应分别单独作为一个字段,而不是放在同一个字段中。
-
第二范式(2NF):要求数据库中的每个非主键字段都完全依赖于主键。这意味着非主键字段不能依赖于其他非主键字段。例如,在一个课程信息表中,如果学分依赖于学期而不是课程编号,那么就不符合第二范式。
-
第三范式(3NF):要求数据库中的每个非主键字段都不依赖于其他非主键字段。换句话说,非主键字段之间不应该存在传递依赖关系。例如,在订单信息表中,如果商品价格依赖于商品编号而不是订单号,那么就不符合第三范式。
目的:
-
消除数据冗余,提高数据的一致性和完整性。
-
降低数据维护成本,提升数据库的扩展性、容错性及可用性。
1.2、反范式设计(Denormalization)
定义:
反范式设计是根据具体业务需求灵活地对数据库进行设计