第一范式要求字段原子性,第二范式消除部分依赖,第三范式消除传递依赖。1NF确保每列不可分且行可区分;2NF要求非主键字段完全依赖整个主键,避免部分依赖;3NF要求非主键字段直接依赖主键,避免通过其他非主键字段间接依赖。遵循三范式可减少冗余、提升一致性,但实际中可能为性能适度反范式化。
MySQL数据库的三范式是设计关系型数据库时常用的规范化原则,目的是减少数据冗余、提高数据一致性。下面分别说明每一范式的核心要求。
第一范式要求数
据库表中的每个字段都是不可再分的最小数据单元,即列具有原子性。
在满足第一范式的前提下,第二范式要求所有非主键字段完全依赖于整个主键,而不是主键的一部分。
• 适用于复合主键的情况。在满足第二范式的前提下,第三范式要求非主键字段之间不能有依赖关系,即不能通过一个非主键字段推导出另一个非主键字段。
• 所有非主键字段必须直接依赖主键,不能间接依赖。基本上就这些。遵循三范式能让数据库结构更清晰、维护更方便,但在实际开发中有时会为了查询性能做适当反范式化处理。