【MySQL】范式与反范式

一、数据库范式
1、第一范式(1NF):

无重复列,即表中每一列都是不可分割的,不满足第一范式的数据库不是关系型数据库
例子:联系人表(用户名,用户信息)

2、第二范式(2NF):

不存在仅依赖于关键一部分的属性(不能存在部分依赖于主键)
例子:选课关系(学号,课程名称,成绩,学分),学号与课程名称是主键,其不满足2NF,因为课程名称->学分

3、第三范式(3NF):

属性不传递依赖于其他非主属性,非主键必须直接依赖于主键而不能传递依赖
例子:学生表(学号,姓名,学院编号,学院名称),学号是主键,姓名、学院编号、学院名称都完全依赖于学号,满足2NF,但不满足3NF,因为学院名称直接依赖的是学院编号 ,它是通过传递才依赖于主键.

4、巴斯-科德范式(BCNF)
5、第四范式 (4NF)
6、第五范式(5NF)
7、zabbix流量监控图

在数据库的操作中DQL的比例要远远大于DML的比例

二、反范式

没有冗余的数据库未必是最好的数据库,有时为了提高运行效率,就必须降低范式标准,适当保留冗余数据。具体做法是: 在概念数据模型设计时遵守第三范式,降低范式标准的工作放到物理数据模型设计时考虑。降低范式就是增加字段,减少了查询时的关联,提高查询效率。

DDL(Database Defination Language):create、alter等
DML(Database Manipulation Language):insert、update、delete等
DCL(Database Control Language):grant、revoke等
DQL(Database Query Language):select

你可能感兴趣的:(【MySQL】范式与反范式)