MySQL数据库范式

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: MySQL数据库范式

MySQL数据库范式


1、范式的优缺点

  • 应用数据库范式的好处:
  1. 减少数据冗余(这是最主要的好处,其他好处都是由此而附带的)
  2. 消除异常(插入异常,更新异常,删除异常)
  3. 让数据组织的更加和谐


  • 范式设计的缺点:
  1. 范式越高,意味着表越多,多表联合查询的机率就越大,SQL的效率就变低
  2. 表越多时,在做更新、删除、插入数据时需要维护的表越多,同样会降低数据库的效率


  • 因此:

并不是应用的范式越高越好,视实际情况而定。第三范式已经很大程度上减少了数据冗余,并且基本预防了数据插入异常,更新异常,和删除异常了


2、第一范式

  • 第一范式: 每一列保持原子特性

列都是基本数据项,不能够再进行分割,否则设计成一对多的实体关系

注:不符合第一范式不能称作关系型数据库

  • 例如:表中的地址字段,可以再细分为省,市,区等不可再分割(即原子特性)的字段

c5d77073f0c70d55d8565db24ab9ec38.png


3、第二范式

  • 第二范式:属性完全依赖于主键-主要针对联合主键

非主属性完全依赖于主关键字,如果不是完全依赖主键(即不全依赖联合主键中的所有关键字),应该拆分成新的实体,设计成一对多的实体关系

  • 例如:选课关系表为SelectCourse(学号, 姓名, 年龄, 课程名称, 成绩, 学分),(学号,课程名称)是联合主键,但是学分字段只和课程名称有关,和学号无关,相当于只依赖联合主键的其中一个字段,不符合第二范式。

a4bf7a9c1ac3ef1364cae10011f46aeb.png


4、第三范式

  • 第三范式:属性不依赖于其它非主属性

要求一个数据库表中不包含已在其它表中已包含的非主关键字信息

注:一般关系型数据库满足第三范式就可以了

  • 示例:学生关系表为Student(学号, 姓名, 年龄, 所在学院, 学院地点, 学院电话),学号是主键,但是学院电话只依赖于所在学院,并不依赖于主键学号,因此该设计不符合第三范式,应该把学院专门设计成一张表,学生表和学院表,两个是一对多的关系。

f3f8370aea0100432e40f141762376dc.png


5、BC范式

  • BC范式:每个表中只有一个候选键

BC范式是在第三范式的基础上的一种特殊情况,即每个表中只有一个候选键(在一个数据库中每行的值都不相同,则可称为候选键)

  • 示例:每一个员工的email都是唯一的(不可能两个人用同一个email),则此表不符合BC范式,对其进行BC范式化后的关系图为

ca91b0b323b88402d27c1a5a7f423731.png

  • 注意:

在要求更好的查询效率时,可以不遵循BC范式(多一个候选键,就多一份表,更多可能需要进行联合查询),候选键储存在主表上也是没有问题的,并不会造成数据的冗余,在一定程度上提高查询效率


6、第四范式

  • 第四范式:消除表中的多值依赖(减少维护数据一致性的工作)

比如:noNF表中的skill技能这个字段,有的人是“java,mysql”,有的人描述的是“Java,MySQL”,这样数据就不一致了,解决办法就是将多值属性放入一个新表

9d1325096821d657a9ec910df8330942.png

样数据就不一致了,解决办法就是将多值属性放入一个新表

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
24天前
|
存储 关系型数据库 MySQL
轻松入门MySQL:数据库设计之范式规范,优化企业管理系统效率(21)
轻松入门MySQL:数据库设计之范式规范,优化企业管理系统效率(21)
|
4月前
|
移动开发 C#
数据库系统概论期末经典大题讲解(范式提升、求闭包、求主码)
数据库系统概论期末经典大题讲解(范式提升、求闭包、求主码)
133 0
|
7月前
|
存储 大数据 关系型数据库
【数据库三大范式】让我们来聊一聊数据库的三大范式和反范式设计
数据库三大范式是指数据库设计中的规范化原则,它们分别是第一范式(1NF)第二范式(2NF)和第三范式(3NF)。第一范式(1NF)第二范式(2NF)第三范式(3NF)
|
3月前
|
数据库
数据库三范式
数据库三范式
18 0
|
3月前
|
存储 数据库
数据库设计三范式
数据库设计三范式
|
4月前
|
SQL 关系型数据库 MySQL
MySQL数据类型、运算符以及数据库范式
MySQL数据类型、运算符以及数据库范式
48 0
MySQL数据类型、运算符以及数据库范式
|
4月前
|
存储 数据库 双11
数据库的三大范式及其重要性,详细易懂
数据库的三大范式及其重要性,详细易懂
244 0
|
5月前
|
存储 关系型数据库 数据库
详细介绍带了你解密【数据库的三大范式】
详细介绍带了你解密【数据库的三大范式】
|
5月前
|
数据库
数据库设计:范式与反范式
数据库设计:范式与反范式