美文网首页数据库
mysql 三范式及逆范式

mysql 三范式及逆范式

作者: CoderZS | 来源:发表于2018-06-14 15:05 被阅读0次

数据库设计当中三范式是经常遇到的

1.第一范式

第一范式(1NF)所谓第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。如果出现重复的属性,就可能需要定义一个新的实体,新的实体由重复的属性构成,新实体与原实体之间为一对多关系。在第一范式(1NF)中表的每一行只包含一个实例的信息。

在任何一个关系数据库中,第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库。
确保数据表中每列(字段)的原子性。列不可分。

如果数据表中每个字段都是不可再分的最小数据单元,则满足第一范式。

例如:user用户表,包含字段id,username,password

2. 第二范式(依赖性)

第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF)。第二范式(2NF)要求数据库表中的每个实例或行必须可以被惟一的区分。为实现区分通常需要为表加上一个列,以存储各个实例的惟一标识。要求实体的属性完全依赖于主关键字。不能部分依赖。即:一张表存在组合主键时,其他非主键字段不能部分依赖。
在第一范式的基础上更进一步,目标是确保表中的每列都和主键相关。

如果一个关系满足第一范式,并且除了主键之外的其他列,都依赖于该主键,则满足第二范式。

例如:一个用户只有一种角色,而一个角色对应多个用户。则可以按如下方式建立数据表关系,使其满足第二范式。

user用户表,字段id,username,password,role_id

role角色表,字段id,name

用户表通过角色id(role_id)来关联角色表

3. 第三范式(唯一性)

满足第三范式(3NF)必须先满足第二范式(2NF)。简而言之,第三范式(3NF)要求一个数据库表中不包含已在其它表中已包含的非主关键字信息。例如,存在一个部门信息表,其中每个部门有部门编号(dept_id)、部门名称、部门简介等信息。那么在员工信息表中列出部门编号后就不能再将部门名称、部门简介等与部门有关的信息再加入员工信息表中。如果不存在部门信息表,则根据第三范式(3NF)也应该构建它,否则就会有大量的数据冗余。简而言之,第三范式就是属性不依赖于其它非主属性。
表中的非主属性必须依赖于主属性才能被获取、减少依赖,①数据冗余问题不能有重复信息;②如有大量的重复信息,应该另建表。

4. 逆范式

逆范式化指的是通过增加冗余或重复的数据来提高数据库的读性能。

例如:在上例中的user_role用户-角色中间表增加字段role_name。

逆范式化可以减少关联查询时,join表的次数。

相关文章

  • mysql 三范式及逆范式

    数据库设计当中三范式是经常遇到的 1.第一范式 第一范式(1NF)所谓第一范式(1NF)是指数据库表的每一列都是不...

  • 【Mysql优化分析】之InnoDB索引类型及原理、字段范式/逆

    Mysql优化的部分有很多,本文主要介绍Mysql执行过程、索引类型及原理、字段范式/逆范式设计、索引设计及使用。...

  • MySQL三大范式和反范式

    MySQL三大范式和反范式 第一范式 第二范式 第三范式 反范式

  • MySQL三范式&逆范式

    一、三范式 概念:为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则(注:在关系型数据库中这种规则...

  • MySQL之三范式

    引用 MySQL设计之三范式的理解 数据库逻辑设计之三大范式通俗理解,一看就懂,书上说的太晦涩 三范式 第一范式:...

  • 数据库设计三范式与反范式

    MySql设计与优化系列笔记:一、数据库设计三范式与反范式二、MySql表设计与优化 第一范式: 1、数据库的所有...

  • (系列7)数据库

    MySQL 数据库概念 范式 范式是数据库设计规范,范式越高则数据库冗余越小,但查询也更复杂,一般只需满足第三范式...

  • MySQL三范式

    本文的示例代码参考normalization 目录 Startup 1NF什么是Primary-Key什么是Par...

  • mysql 三范式

    第一范式:确保每一列不可再分 1.第一范式是最基本的范式。如果数据库表中的所有字段值都是不可分解的原子值,就说明该...

  • MySql表设计与优化

    MySql设计与优化系列笔记:一、数据库设计三范式与反范式二、MySql表设计与优化 1、实体关系分析 实体关系需...

网友评论

    本文标题:mysql 三范式及逆范式

    本文链接:https://www.haomeiwen.com/subject/esoceftx.html