范式设计和反范式设计

三大范式

  • 第一范式:无重复的列
  • 第二范式:属性完全依赖于主键
  • 第三范式:属性不能传递依赖其他非主属性

范式的作用是避免数据冗余(数据重复)。

范式的问题:

按照范式设计出来的表在数据冗余的问题虽然得到解决,但是会生成许多表,导致了表数量的复杂性,其二,查询数据的时候,多表查询的时间远远高于单表查询的时间。

反范式

范式的目的是减小数据冗余,而反范式指的是在一定程度上允许数据冗余,目的是加快数据操作。

对比

范式与反范式是一场时间和空间的较量,满足范式节省空间,满足反范式加快操作速度。

在满足范式设计数据库的前提条件下,再根据具体的业务需求完成反范式的设计。

原文地址:https://www.cnblogs.com/noneplus/p/11769619.html

时间: 2024-10-10 21:45:25

范式设计和反范式设计的相关文章

数据库范式设计 和 反范式化设计

三大范式设计 一 数据库表中的所有字段都只具有单一属性 单一属性的列是由基本数据类型所构成的 设计出来的表都是简单的二维表 二 要求表中只具有一个业务主键,也就是说符合第二范式的表不能存在非主键列只对部分主键的依赖关系 三 每一个非主属性既不部分依赖于也不传递依赖于业务主键,也就是在第二范式基础上相处于非主键对主键的传递依赖 优点 可以尽量减少数据冗余 范式化的更新操作比反范式化更快 范式化的表通常比反范式的小 缺点 对于查询需要对多个表进行关联 更难进行索引优化 反范式化设计 反范式化是为了性

关系数据库的范式和反范式设计

关于范式 Normal Form 范式是关系数据库理论的基础,也是我们在设计数据库结构过程中所要遵循的规则和指导方法.数据库的设计范式是数据库设计所需要满足的规范.只有理解数据库的设计范式,才能设计出高效率.优雅的数据库,否则可能会设计出错误的数据库. 目前关系数据库有六种范式:第一范式(1NF).第二范式(2NF).第三范式(3NF).巴斯-科德范式(BCNF).第四范式(4NF)和第五范式(5NF,还又称完美范式).满足最低要求的叫第一范式,简称1NF.在第一范式基础上进一步满足一些要求的为

2.2 范式和反范式

2.2.1 第一范式 原子性:要求属性具有原子性,不可再分解. 如学生(学号,姓名,性别,出生年月日),如果认为最后一列还可以再分成(出生年,出生月,出生日),它就不是一范式了,否则就是. 2.2.2 第二范式 惟一性:要求记录有惟一标识,即实体的惟一性,即不存在部分依赖 表:学号.课程号.姓名.学分; 这个表明显说明了两个事务:学生信息, 课程信息.由于非主键字段必须依赖主键,这里学分依赖课程号,姓名依赖与学号,所以不符合二范式. 可能会存在问题: 数据冗余:,每条记录都含有相同信息: 删除异

数据库表设计的三范式

数据库范式1NF 2NF 3NF BCNF(实例)     设计范式(范式,数据库设计范式,数据库的设计范式)是符合某一种级别的关系模式的集合.构造数据库必须遵循一定的规则.在关系数据库中,这种规则就是范 式.关系数据库中的关系必须满足一定的要求,即满足不同的范式.目前关系数据库有六种范式:第一范式(1NF).第二范式(2NF).第三范式 (3NF).第四范式(4NF).第五范式(5NF)和第六范式(6NF).满足最低要求的范式是第一范式(1NF).在第一范式的基础上进一步满足更多 要求的称为第

数据库设计的三大范式

数据库设计的三大范式 为了建立冗余较小.结构合理的数据库,设计数据库时必须遵循一定的规则.在关系型数据库中这种规则就称为范式.范式是符合某一种设计要求的总结.要想设计一个结构合理的关系型数据库,必须满足一定的范式. 在实际开发中最为常见的设计范式有三个: 1.第一范式 第一范式是最基本的范式.如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库表满足了第一范式. 第一范式的合理遵循需要根据系统的实际需求来定.比如某些数据库系统中需要用到"地址"这个属性,本来直接将"

数据库设计的三范式(六范式)

数据库是设计范式理解:关系型数据库的核心"规范化",规范化的存在是为了在数据库组织保存数据时使数据 保持完整性并且最小化的冗余数据. 数据库设计有六种范式规则,但通常我们再设计数据库时,通常用到3种范式. 1.1  第一范式: 概念:指数据库表的每一列的数据不可拆分,同一列不能有多个值,并且不能有重复的属性(列) 第一范式是所有范式的基础,不满足的数据库就不能称为关系行数据库 1:如图 简单来说第一范式没有重复的列,列中不包含多值 1.2 第二范式 概念: 在表满足第一范式的设计在数据

范式及其在mysql数据库设计中的应用

一.什么是范式 1.1.范式:Normal Format,是离散数学的知识,是为了解决数据的存储与优化而提出来的.要求存储数据后,凡是能够通过关系寻找出来的数据,坚决不再重复存储,终极目标是为了减少数据的冗余. 1.2.范式是一种分层的规范,分为6层,每一层都比上一层更加严格,若要满足下一层范式,前提是满足上一层范式.6层范式:1NF,2NF...6NF:1NF是最底层,要求最低,6NF最高层,要求最严格. 1.3.mysql属于关系型数据库,有空间浪费,表设计时也要致力于节省存储空间.这与范式

E-R画图规则和数据库设计的三大范式

总结:1.E-R图设计: 理念:一对一(1 1):将任意1端的主键拿来做另一端的外键 一对多(1 n):将1端的主讲拿来做n端的外键 多对多(n m):互相将双方的主键拿来做另一端的外键 数据库设计的三大范式:一.表中的每个字段必须是不能再分割的最小独立字段. 二.在第一范式的基础上,表中的每个字段都必须和主键的类型相同比如员工的表都是员工的信息不要出现产品或者其他信息 三.在第二范式的基础上,表中的每个字段都要和表中的主键有直接关系. 就是.表中的所有字段都是不能再小的独立单位且表中的所有字段

MySQL中数据中设计中的范式与反范式

设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小.但是有些时候一昧的追求范式减少冗余,反而会降低数据读写的效率,这个时候就要反范式,利用空间来换时间. 目前关系数据库有六种范式:第一范式(1NF).第二范式(2NF).第三范式(3NF).巴斯-科德范式(BCNF).第四范式(4NF)和第五范式(5NF,又称完美范式).满足最低要求的范式是第一范式(1NF).在第一范式的基础上进一步满足更多规范要求的称