李琪的技术专栏 System Research

MySql基础复习(2)

2020-05-15
Clear Li

阅读:


\

数据库三大范式

为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就称为范式。范式是符合某一种设计要求的总结。要想设计一个结构合理的关系型数据库,必须满足一定的范式。

第一范式

确保每一列保持原子性

第一范式是最基本的范式,如果数据库中的所有字段值都是不可分割的原子值,那么就说明该数据库满足了第一范式。如下图是满足第一范式的。但是假如地址项的省份,城市等合成一列则不满足第一范式

image-20200515171158826

第二范式

确保表中每列都和主键相关

其实针对联合主键而定义的,假如说表中的某一列只和联合主键当中的部分有关系,则不能满足第二范式,例如下图

image-20200515172124518

这个表的主键为联合主键(订单编号,商品编号)。但是商品名称只与商品编号有关。因此这个表不满足第二范式。

因此需要将这个表进行拆分

image-20200515173250674

这样就满足了第二范式

第三范式

确保每一列数据都和主键直接相关,而不能间接相关,也就是消除传递依赖。

如下图,业务员是与订单编号直接相关的,但是不能加入业务员的年龄,籍贯等信息。因为这些信息跟主键是间接相关关系。

image-20200515173433156

减少传递依赖就会减少数据的冗余


Similar Posts

上一篇 树结构