MySQL中的数据库设计规范(二)

70 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第22天,点击查看活动详情

前言

上篇我们学习了MySQL中的数据库优化之设计规范。有兴趣的小伙伴可以阅读(MySQL中的数据库设计规范(一))。
下面我们继续学习MySQL中的数据库设计规范。

范式

定义

在关系型数据库中,关于数据表设计的基本原则,规则就称为范式。可以理解为一张数据表的设计结构需要满足的某种设计标准的级别。要想设计一个结构合理的关系型数据库,必须满足一定的范式。

目前关系型数据库有六种常见范式,按照范式的级别,从低到高分别是:

  • 第一范式(1NF)
  • 第二范式(2NF)
  • 第三范式(3NF)
  • 巴斯-科德范式(BCNF)
  • 第四范式(4NF)
  • 第五范式(5NF,又称为完美范式)

键和相关属性的概念

举例:球员表:球员编号|姓名|身份证号|年龄|球队编号

  • 超键:对于球员表来说,超键就是包括球员编号或者身份证号的任意组合,比如(球员编号),(球员编号,姓名),(身份证号,年龄)等。
  • 候选键:就是最小的超键,对于球员表来说,候选键就是(球员编号)或者(身份证号)。
  • 主键:我们自己选定,也就是从候选键中选择一个,比如(球员编号)。
  • 外键:球员表中的球队编号。
  • 主属性、非主属性:在球员表中,主属性是(球员编号)(身份证号),其他属性(姓名)(年龄)(球队编号)都是非主属性。

第一范式(1NF)

字段不可再拆分,具有原子特性(最小粒度)

举例一

如果user表中包含一个字段,学生信息,这个字段中包含姓名,电话住址等。那么这个字段是可以进一步拆分成更小粒度的字段,不符合数据库设计对第一范式的要求。应该把学生信息拆分成3个,分别是姓名,电话,住址。

今天先学习到这里,明天继续。