数据库设计范式
是在设计数据库结构过程中所要遵循的规则和指导方法,一共由8种范式,但通常只用到3种范式
第一范式(1NF)
所有字段的值都是不可分解的原子值。即实体中的某个属性有多个值时,必须拆分为不同的属性。例如:
好处
-表结构相对清晰
-易于查询
第二范式(2NF)
第二范式是在第一范式基础上建立起来的
第二范式规定:在满足第一范式的前提下,如果每一个非主属性完成依赖于某个候选键,那么就符合第二候选式
主属性:候选键中的所有字段,叫做主属性,否则称为非主属性
候选键:是区别一条数据的最少属性组合,是每条数据的唯一标识,候选键里的每个主属性都要有它的作用,一个表中可能有多个候选键,从中选一个作为主键
完全依赖:即一个属性与另一个属性完成相关
例如:
好处
-相对节约空间,当学生表和课程表属性越多,效果越明显
-解决插入异常,当新增一门课程时,原表因为没有学生选课,导致无法插入数据
-解决更新繁琐,当更改一门课程名称时,原表要更改多条数据
-解决删除异常,当学生学完一门课,原表若要清空学生上课信息,课程编号与课程名称的关系可能会丢失
第三范式(3NF)
在满足1NF和2NF的前提下,非主键列之间不存在间接依赖关系
例如
好处
-相对节约空间
-解决更新繁琐
-解决插入异常,当班级分配了老师,还没分配学生的时候,原表将不可插入数据
-解决删除异常,当学生毕业后,若要清空学生信息,班级和老师的关系可能会丢失