MySQL之三大范式
必须保证数据库设计的合理性 数据库设计关系整个系统的架构,关系到后续的开发效率和运行效率 数据库的设计主要包含了设计表结构和表之间的联系 如何是合理数据库 结构合理 冗余较小 尽量避免插入删除修改异常 如何才能保证数据库设计水平 遵循一定的规则 在关系型数据库中这种规则就称为范式 什么是范式(NF= Normal Form) 范式是符合某一种设计要求的总结。 要想设计一个结构合理的关系型数据库,必须满足一定的范式。 第一范式 要求 最基本的范式 数据库表每一列都是不可分割的基本数据项,同一列中不能有多个值 简单说就是要确保每列保持原子性 第一范式的合理遵循需要根据系统的实际需求来定 示例 用户表(用户名,家庭地址) 用户表(用户名,省,城市,详细地址) 第二范式 要求 第二范式需要确保数据库表中的每一列都和主键相关,而不能只与主键的某一部分相关(主要针对联合主键而言)。 即在一个数据库表中只能保存一种数据,不可以把多种数据保存在同一张数据库表中。 示例 学号和课程编号作为联合主键 课程名称只依赖于课程编号,而和学号没有关系 解决 提取出学生表 提取成课程表 提取选课表,存放选课记录 第三范式 要求 确保数据表中的每一列数据都和主键直接相关,而不能间接相关 属性不依赖于其他非主属性。 范式的优缺点 优点 结构合理 冗余较小 尽量避免插入删除修改异常 缺点 性能降低