码上敲享录 > mysql面试题 > 说一说三个范式?

说一说三个范式?

上一章章节目录下一章 2023-07-17已有176人阅读 评论(0)

在关系型数据库设计中,范式是一种用于规范化数据模型的方法论,目的是消除数据冗余和维护数据的完整性。MySQL遵循常见的三个范式(第一范式、第二范式和第三范式):


1. 第一范式(1NF):第一范式要求数据库中的每个列都是原子性的,不可再分。也就是说,每个列中的值都是不可分割的单一数据项。如果一个表中有重复的列,就需要拆分成多个表,每个表中的列都是原子性的。第一范式的目标是消除数据的重复性。


2. 第二范式(2NF):第二范式要求一个表中的非主键列必须完全依赖于全部主键,而不仅仅依赖于部分主键。换句话说,一个表中的每个非主键列都必须直接与主键相关,而不能间接相关。如果出现间接相关性,就需要将非主键列拆分到其他表中。第二范式的目标是消除非主键相关性和部分依赖。


3. 第三范式(3NF):第三范式要求一个表中的非主键列之间不能有传递依赖关系。也就是说,如果一个非主键列依赖于另一个非主键列,而后者又依赖于主键,就需要将依赖关系拆分到其他表中。第三范式的目标是消除传递依赖和非主键之间的依赖关系。


需要注意的是,范式设计并非一成不变的规则,有时会根据实际需求进行灵活调整。过度规范化可能导致复杂的查询和性能问题,而在某些情况下可能需要冗余数据以提高查询效率。因此,在设计数据库时,需要权衡范式规则和实际需求之间的平衡。


向大家推荐《Activiti工作流实战教程》:https://xiaozhuanlan.com/activiti
0

有建议,请留言!

  • *您的姓名:

  • *所在城市:

  • *您的联系电话:

    *您的QQ:

  • 咨询问题:

  • 提 交