三大范式的通俗理解
**1.第一范式(1NF)
数据库表的每一列都是不可分割的原子数据项
例:
如图,家庭信息不满足原子性的要求,所以也不满足第一范式的要求,需要做出调整
调整后每一项都是不可再分的 满足第一范式,第一范式是关系模式规范化的最低要求,不然会有很多基本操作在这样的关系模式中实现不了。
2.第二范式(2NF):在第一范式的基础上,所有非主属性都完全依赖于表的每一个候选关键属性,而且需要确保数据库表中的每一列都和主键相关,而不能只与主键的某一部分相关(主要针对联合主键而言)
例:
如图,一个班有多个学生,所以主键是学号和班级编号组合而成,但是班级名称与学号无关 所以需要分成两个表
*3.第三范式(3NF):*在2NF基础上,需要确保数据表中的每一列数据都和主键直接相关,而不能间接相关。
上表中虽然所有属性都依赖编号,但是老师年龄是直接依赖授课老师的,需要拆分为:
这样就满足第三范式的需求了,
实际用到还是要结合实际的,这些只是个别例子,还是需要自己理解的