数据库的设计规范

1.1 范式简介
在关系型数据库中,关于数据表设计的基本原则、规则称为范式。要想设计一个结构合理的关系型数据库,必须满足一定的范式。
1.2 范式都包括哪些
目前关系型数据库里由六种常见范式,按照范式级别,从低到高分别是第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式(5NF,又称完美范式)。
1.3 键和相关属性的概念
这里有两个表:

球员表(player):球员编号 | 姓名 | 身份证号 | 年龄 | 球队编号

球队表(team):球队编号 | 主教练 | 球队所在地

  • 超键:对于球员表来说,超键就是包括球员编号或者身份证号的任意组合,比如(球员编号)(球员编号,姓名)(身份证号,年龄)等。

  • 候选键:就是最小的超键,对于球员表来说,候选键就是(球员编号)或者(身份证号)。

  • 主键:我们自己选定,也就是从候选键中选择一个,比如(球员编号)。

  • 外键:球员表中的球队编号。

  • 主属性非主属性:在球员表中,主属性是(球员编号)(身份证号),其他的属性(姓名)(年龄)(球队编号)都是非主属性。
    1.4 第一范式
    第一范式主要是确保数据表中每个字段的值必须具有原子性,也就是说数据表中每个字段的值为不可再次拆分的最小数据单位。
    1.5 第二范式
    第二范式要求,在满足第一范式的基础上,还要满足数据表里的每一条数据记录,都是可唯一标识的。而且所有非主键字段,都必须完全依赖主键,不能只依赖主键的一部分。
    1.6 第三范式
    第三范式是在第二范式基础上,确保数据表中的每一个非主键字段都和主键字段直接相关,也就是说,要求数据表中的所有非主键字段不能依赖于其他非主键字段
    1.7 小结
    关于数据表的设计,前三个范式需要遵循。范式等级越高,设计出来的数据表就越多、越精细,数据的冗余度就越低,进行数据查询的时候就需要关联多张表,这不但代价昂贵,也可能使一些索引策略无效。

    范式只是提出了设计的标准,实际上设计表时,未必一定要符合这些标准。实际开发中通常根据需要从前三个范式中选择遵循。处于性能考虑,不使用后面的范式。其中第三范式通常被认为在性能、拓展性和数据完整性方面达到了最好的平衡。

笔记来自尚硅谷康师傅的MYSQL课程

相关推荐

  1. 数据库设计规范

    2024-03-23 11:06:03       38 阅读
  2. 数据库设计规范

    2024-03-23 11:06:03       20 阅读
  3. 数据库设计规范总结

    2024-03-23 11:06:03       6 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-23 11:06:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-23 11:06:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-23 11:06:03       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-23 11:06:03       20 阅读

热门阅读

  1. MATLAB下载安装部署教程

    2024-03-23 11:06:03       22 阅读
  2. stable diffusion 提示词进阶语法-学习小结

    2024-03-23 11:06:03       18 阅读
  3. python 八大排序算法

    2024-03-23 11:06:03       21 阅读
  4. node.js常用命令

    2024-03-23 11:06:03       18 阅读
  5. mysql数据库查询

    2024-03-23 11:06:03       20 阅读
  6. 专业前沿问题问答合集10-2——比特币的加密原理

    2024-03-23 11:06:03       23 阅读