数据库 范式化和反范式化

news2024/10/1 17:20:08

第一范式 1NF

主要确保数据表中每个字段的值必须具有原子性,也就是说数据表中每个字段的值为不可再次拆分的最小数据单元

第二范式 2NF

在满足第一范式的基础上,还要满足数据表里的每一条数据记录,都是可唯一标识的,而且所有非主键字段,都必须完全依赖主键,不能只依赖主键的一部分。

第三范式 3NF

在满足第二范式的基础上,确保数据表中的每一个非主键字段都和主键字段直接相关,也就是说,要求数据表中的所有非主键字段不能依赖于其它非主键字段(即,不能存在非主属性A依赖于非主属性B,这个B依赖于主键C的情况,A——>B——>C)。
该规则的意思是所有非主键属性之间不能有依赖关系**,必须相互独立**

BCNF

在这里插入图片描述

总结:
1NF:告诉我们字段属性需要是原子性的
2NF:一张表就是一个独立的对象,一张表只表示一个意思,要求实体的属性完全依赖主关键字。如果存在不完全依赖,那么这个属性和主关键字的这一部分应该分离出来形成一个新的实体,新实体与元实体之间是一对多的关系。
3NF:2NF和3NF 概括:每个非主键属性依赖于主键,依赖于整个主键(联合主键),并且出来主键别无他物
在这里插入图片描述

反范式化

有时候不能简单按照规范要求设计数据库,因为有点数据看似冗余,其实对业务来说十分重要。这个时候,我们就要遵循业务优先的原则,首先满足业务需求,再尽量减少冗余
如果数据库中的数据量比较大,系统的UV和PV访问批次比较高,则完全按照MySQL的三大范式设计数据表,读数据时会产生大量的关联查询,在一定程度上会影响数据库的读性能。如果我们相对查询效率进行优化,反范式优化也是一种优化思路。此时通过在数据表中增加冗余字段来提高数据库的读性能
反范式的应用场景
在这里插入图片描述

在这里插入图片描述

规范化 VS 性能
  1. 为满足某种商业目标,数据库性能比规范化数据库更重要
  2. 在数据库规范的同时,要综合考虑数据库的性能
  3. 通过在给定的表中添加额外的字段,以2大量减少需要从中搜索信息所需要的时间
  4. 通过在给定的表中插入计算列,以方便查询

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/983609.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

线性代数的学习和整理18:什么是维度,什么是秩?秩的各种定理秩的计算 (计算部分未完成)

目录 0 问题引出:什么是秩? 概念备注: 1 先厘清:什么是维数? 1.1 真实世界的维度数 1.2 向量空间的维数 1.2.1 向量空间,就是一组最大线性无关的向量组/基张成的空间 1.3 向量α的维数 1.3.1 向量的…

苹果证书分类及作用详解,助力开发者高效管理应用程序

转载:苹果证书的作用及分类详解 摘要:本文将详细介绍苹果证书的作用及分类,包括企业证书、开发者证书、 推送证书、分发证书和MDM证书,帮助开发者了解如何正确使用和管理这些证书, 提升应用程序的开发和发布效率。 引…

供配电技术

最近,在上一门关于供配电技术的课程,虽说与自动化的关系并不是十分大,但对于扩展知识面还是有很大用处的,不至于与其他人交谈此方面的相关知识的时候,一头雾水。

网络丢包问题,敢不敢这样定位?

下午好,我的网工朋友。 所谓丢包,是指在网络数据的收发过程中,由于种种原因,数据包还没传输到应用程序中,就被丢弃了。 这些被丢弃包的数量,除以总的传输包数,也就是我们常说的丢包率。 丢包…

胖小酱为什么天上会打雷?

很久很久以前,上帝并不是住在天上的,而是和人们住在一起的。他们相处融洽,生活很快乐。 人们都很尊敬上帝,天冷的时候,送柴禾给他取暖;缺吃的时候,送食物给他充饥。 上帝呢,对大家是一视同仁&am…

SolidKits.BOMs高级BOM及属性批量导入工具个人版上线了

Solidkits自主研发的SolidKits.BOMs工具可以在不启动SOLIDWORKS的情况下,一键导出各种BOM,如结构BOM、总汇总BOM、分类汇总BOM等,相比于人工编制BOM表,不仅能提升出BOM的效率,还可大幅降低出错几率。 为满足广大个人客…

Zabbix -- 创建监控项及触发器

目录 一、创建监控项 二、创建触发器 三、测试触发器 一、创建监控项 添加带参数的监控项,以磁盘使用率为例子。 vfs.fs.size[/,pused] 表示显示当前磁盘所占用的百分比 vfs.fs.size[/,used] 表示显示当前磁盘所占用的空间,单位为B vfs.fs.size[/,f…

mybatis执行自带update方法遇到的坑

1. 背景 项目上需要对已有oracle数据源进行兼容改造,兼容doris数据源。改造过程中发现,启动项目时有一个类内部执行updateByPrimaryKeySelective时异常。把日志打印出的SQL复制到doris数据库执行,提示的错误与项目内一致,说明错误…

半导体制造工艺(一)光刻

在这里开个新专题,主要详细描述半导体制造整个流程中所用到的设备工艺步骤。 在集成电路制造工艺中,光刻是决定集成器件集成度的核心工序,该工序的作用是将图形信息从掩模版(也称掩膜版)上保真传输、转印到半导体材料衬…

手机也能轻松搭建个人博客,使用安卓Termux+Hexo建立自己的网站

文章目录 前言 1.安装 Hexo2.安装cpolar3.远程访问4.固定公网地址 前言 Hexo 是一个用 Nodejs 编写的快速、简洁且高效的博客框架。Hexo 使用 Markdown 解析文章,在几秒内,即可利用靓丽的主题生成静态网页。 下面介绍在Termux中安装个人hexo博客并结合…

技术漫谈|IVR通用开发框架简说

IVR为Interactive Voice Response的缩写,意为交互式语音应答(系统)。它可以应答客户的呼叫,然后为呼叫者提供语音导航或自助服务,呼叫者可通过按键输入或使用语音命令进行选择。随后,IVR可通过呼叫路由将呼…

解决Vue3.0以上+Vite项目打包后低版本浏览器兼容性问题

文章目录 一、Vite在低版本浏览器中运行遇到的问题二、浏览器兼容性三、官方解决方案:使用vitejs/plugin-legacy插件1)、安装插件2)、在vite.config.js中配置 四、vitejs/plugin-legacy插件,在打包过程中做了什么 一、Vite在低版本浏览器中运行遇到的问题…

CVE-2023-3836:大华智慧园区综合管理平台任意文件上传漏洞复现

文章目录 CVE-2023-3836:大华智慧园区综合管理平台任意文件上传漏洞复现0x01 前言0x02 漏洞描述0x03 影响范围0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现 CVE-2023-3836:大华智慧园区综合管理平台任意文件上传漏洞复现 0x01 前言 免责声…

python 文创产品商城推荐网上购物系统设计与实现vue

随着Internet的发展,人们的日常生活已经离不开网络。未来人们的生活与工作将变得越来越数字化、网络化和电子化。网上销售,它将是直接市场营销的最新形式。本论文是以构建文创产品推荐系统为目标,使用 django制作,由前台用户购物、…

搭建vue3项目并git管理

搭建vue3项目 采用vue3的create-vue脚手架搭建项目,底层是vite,要求环境 node 16.0及以上(node -v检查node版本) 在文件夹右键->终端-> npm init vuelatest,输入项目名称,根据需要选择是否装包 src…

Nginx教程

Nginx教程 01-Nginx简介02-windows安装Nginx03-Nginx目录结构04-Linux安装Nginx05-linux下源码安装nginx06-linux下nginx配置07-在docker中安装nginx08-源码安装和yum安装的区别09-Nginx运行组和运行用户10-卸载nginx11-nginx的基本原理和架构12-nginx是如何处理请求的13-nginx…

ABB CMA120 3DDE300400面板

人机界面:ABB CMA120 3DDE300400 面板通常具有用户友好的人机界面,可用于监视和控制连接设备和系统的操作。 图形显示:该面板通常具有高分辨率的液晶显示屏,用于显示图形界面和实时数据,以便操作员更容易理解和管理工…

港陆证券:股票做t解套的方法和技巧?

做股票出资的人都知道,有时候会遇到股票价格跌落的状况,导致自己手中的股票市值缩水,丢失惨重。而股票做T则是一种解套的办法之一。本文将从多个角度剖析股票做T解套的办法和技巧。 一、什么是股票做T? ​ 股票做T是出资者为了…

Echarts图表小数处理

在项目中遇到echarts图,小数显示两位如何处理呢? 获取到数据后,直接传值给echarts图的时候,会自动四舍五入保留整数进行显示,如果想如上进行显示,在echarts的 series 数组对象的 label 中添加一个属性即可&…