\
数据库三大范式
为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就称为范式。范式是符合某一种设计要求的总结。要想设计一个结构合理的关系型数据库,必须满足一定的范式。
第一范式
确保每一列保持原子性
第一范式是最基本的范式,如果数据库中的所有字段值都是不可分割的原子值,那么就说明该数据库满足了第一范式。如下图是满足第一范式的。但是假如地址项的省份,城市等合成一列则不满足第一范式
第二范式
确保表中每列都和主键相关
其实针对联合主键而定义的,假如说表中的某一列只和联合主键当中的部分有关系,则不能满足第二范式,例如下图
这个表的主键为联合主键(订单编号,商品编号)。但是商品名称只与商品编号有关。因此这个表不满足第二范式。
因此需要将这个表进行拆分
这样就满足了第二范式
第三范式
确保每一列数据都和主键直接相关,而不能间接相关,也就是消除传递依赖。
如下图,业务员是与订单编号直接相关的,但是不能加入业务员的年龄,籍贯等信息。因为这些信息跟主键是间接相关关系。
减少传递依赖就会减少数据的冗余