开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第22天,点击查看活动详情
前言
上篇我们学习了MySQL中的数据库优化之设计规范。有兴趣的小伙伴可以阅读(MySQL中的数据库设计规范(一))。
下面我们继续学习MySQL中的数据库设计规范。
范式
定义
在关系型数据库中,关于数据表设计的基本原则,规则就称为范式。可以理解为一张数据表的设计结构需要满足的某种设计标准的级别。要想设计一个结构合理的关系型数据库,必须满足一定的范式。
目前关系型数据库有六种常见范式,按照范式的级别,从低到高分别是:
- 第一范式(1NF)
- 第二范式(2NF)
- 第三范式(3NF)
- 巴斯-科德范式(BCNF)
- 第四范式(4NF)
- 第五范式(5NF,又称为完美范式)
键和相关属性的概念
举例:球员表:球员编号|姓名|身份证号|年龄|球队编号
- 超键:对于球员表来说,超键就是包括球员编号或者身份证号的任意组合,比如(球员编号),(球员编号,姓名),(身份证号,年龄)等。
- 候选键:就是最小的超键,对于球员表来说,候选键就是(球员编号)或者(身份证号)。
- 主键:我们自己选定,也就是从候选键中选择一个,比如(球员编号)。
- 外键:球员表中的球队编号。
- 主属性、非主属性:在球员表中,主属性是(球员编号)(身份证号),其他属性(姓名)(年龄)(球队编号)都是非主属性。
第一范式(1NF)
字段不可再拆分,具有原子特性(最小粒度)
举例一
如果user表中包含一个字段,学生信息,这个字段中包含姓名,电话住址等。那么这个字段是可以进一步拆分成更小粒度的字段,不符合数据库设计对第一范式的要求。应该把学生信息拆分成3个,分别是姓名,电话,住址。
今天先学习到这里,明天继续。