【数据仓库】数据仓库常见的数据模型——范式模型

news2024/9/28 3:29:05

目录

 一、范式

1、第一范式

2、第二范式

3、第三范式

4、进一步范式化:BCNF、4NF 和 5NF 简介

(1)Boyce-Codd 范式(BCNF)

(2)第四范式(4NF)

(5)第五范式(5NF)

5、反范式化

6、范式化设计和反范式化设计的优缺点

(1)范式化 (时间换空间)

(2)反范式化(空间换时间)

7、OLAP和OLTP中范式设计

 二、范式模型


 一、范式

       范式是符合某一种级别的关系模式的集合。构造数据库必须遵循一定的规则。在关系数据库中,这种规则就是范式。

       在创建一个数据库的过程中,范化是将其转化为一些表的过程,这种方法可以使从数据库得到的结果更加明确。这样可能使数据库产生重复数据,从而导致创建多余的表。范化是在识别数据库中的数据元素、关系以及定义所需的表和各表中的项目等这些初始工作之后的一个细化的过程。

1、第一范式

1NF要求属性具有原子性,即列不可再分解。

详解,

即每个字段只能包含一个值,而不能包含重复的组或集合。此外,表中的每一行都必须是唯一的。

※原子性是根据使用方便来自定义的最小单位。

2、第二范式

在符合第一范式的基础上,2NF要求记录有唯一标识,即并且所有非主属性(Non-Primary Attributes)完全依赖于主键(Primary Key)。

详解,

 (1)主键的唯一性:每个表必须有一个主键,该主键可以是单一字段或由多个字段组成的复合主键,用于唯一标识表中的每一行。

 (2)非主属性的完全依赖表中的非主属性不能依赖于主键的一部分,而必须依赖于整个主键。如果存在仅依赖于主键一部分的非主属性,则需要将这些属性和它们所依赖的主键部分分离出来,形成新的表,以保持数据的规范化和减少冗余。

3、第三范式

在符合第二范式的基础上,3NF要求所有非主属性不仅完全依赖于主键,还不能传递依赖于主键。

详解,

表中的非主属性不能依赖于其他非主属性。

第三范式旨在进一步减少数据冗余,提高数据的一致性和完整性。它要求字段没有冗余,即不存在传递依赖。

4、进一步范式化:BCNF、4NF 和 5NF 简介

(1)Boyce-Codd 范式(BCNF)

BCNF 是第三范式的一个扩展和加强。它要求表中的每个决定因素(Determinant)必须是候选键。这意味着在 BCNF 中,任何非平凡的函数依赖关系的决定因素都必须是超键。

(2)第四范式(4NF)

第四范式在 BCNF 的基础上,进一步解决了多值依赖(Multivalued Dependency)的问题。4NF 要求表中不能存在非平凡且不相等的多值依赖。

(5)第五范式(5NF)

第五范式解决的是连接依赖(Join Dependency)的问题。5NF 要求每个关系模式必须能够通过其投影(Projection)重构出原始关系,而不引入任何多余的数据。

5、反范式化

一般说来,数据库只需满足第三范式(3NF)就行了。

没有冗余的数据库设计可以做到。但是,没有冗余的数据库未必是最好的数据库,有时为了提高运行效率,就必须降低范式标准,适当保留冗余数据。

具体做法是:在概念数据模型设计时遵守第三范式,降低范式标准的工作放到物理数据模型设计时考虑。降低范式就是增加字段,允许冗余,达到以空间换时间的目的。

  〖例〗:有一张存放商品的基本表,如表1所示。“金额”这个字段的存在,表明该表的设计不满足第三范式,因为“金额”可以由“单价”乘以“数量”得到,说明“金额”是冗余字段。但是,增加“金额”这个冗余字段,可以提高查询统计的速度,这就是以空间换时间的作法。

6、范式化设计和反范式化设计的优缺点

(1)范式化 (时间换空间)

优点:缺点:
范式化的表减少了数据冗余,数据表更新操作快、占用存储空间少。查询时需要对多个表进行关联,查询性能降低。 
确保数据一致性;提高数据的可维护性更难进行索引优化

(2)反范式化(空间换时间)

反范式的过程就是通过冗余数据来提高查询性能,但冗余数据会牺牲数据一致性

优点:缺点:
可以减少表关联存在大量冗余数据
可以更好进行索引优化数据维护成本更高(删除异常,插入异常,更新异常)

7、OLAP和OLTP中范式设计

OLAP(联机分析处理) 一般冗余比较多,以查询分析为主,这种一般都是采用反范式设计,以提高查询效率。更新一般是定时大批量数据插入。

OLTP(联机事务处理) 则是尽可能消除冗余,以提高变更的效率。因为这种应用无时无刻不在频繁变化。

上述部分引用自:
深入解析数据库设计的三大范式:确保数据结构的完美设计_数据库范式-CSDN博客

一篇文章搞懂数据仓库:三范式与反范式_olap 数仓 范式-CSDN博客

 二、范式模型

范式模型,即实体关系(ER)模型,数据仓库之父Immon提出的,从全企业的高度设计一个3NF模型,用实体加关系描述的数据模型描述企业业务架构,在范式理论上符合3NF

特点:设计思路自上而下,适合上游基础数据存储,同一份数据只存储一份,没有数据冗余,方便解耦,易维护,缺点是开发周期一般比较长,维护成本高。

范式建模传统企业数仓,如电信、金融行业等业务相对稳定
维度建模互联网公司业务变化快,注重响应业务需求

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

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

相关文章

光华里社区“电亮生活”行动:智能科技携手志愿温情,老旧小区焕发新生机

在朝阳区建外街道光华里社区,一场关于“电”的革命正悄然改变着居民的生活面貌。面对老旧小区普遍存在的电力设施陈旧、线路老化、电压不稳等老大难问题,社区党委没有坐视不管,而是携手北京中兴物业管理有限公司广联物业管理中心党支部&#…

泽众P-One性能测试平台支持分布式全链路压测

在当今数字化转型加速的时代,高性能、高可用性的系统已成为企业竞争力的核心要素之一。为了确保系统能够在高并发、大数据量的环境下稳定运行,分布式全链路压测成为了不可或缺的一环。P-One凭借其强大的功能,支持分布式全链路压测&#xff0c…

什么是 SMB 服务器以及它如何工作?

在本文中,您将了解 SMB 服务器以及它们如何促进网络文件共享。 我们将介绍它们的基本功能、主要特性以及如何安全地设置它们。无论您是新手还是需要复习,本指南都将帮助您更好地了解 SMB 服务器。 什么是 SMB 服务器? SMB(服务器…

day19JS-AJAX数据通信

1. 什么是AJAX 原生生js中有两种通信,一个ajax,还有一个是fetch。 AJAX 并不是编程语言,是一种从网页访问 Web 服务器的技术。AJAX 代表异步 JavaScript 和 XML。 AJAX 使用浏览器内建的 XMLHttpRequest 对象从 web 服务器请求数据&#xff0…

【开放词汇检测】MM-Grounding-DINO论文翻译

摘要 Grounding-DINO 是一种先进的开放式检测模型,能够处理包括开放词汇检测(Open-Vocabulary Detection,OVD)、短语定位(Phrase Grounding,PG)和指代表达理解(Referring Expressio…

Java多线程——模拟接力赛跑

题目: 多人参加1000米接力跑 每人跑100米,换下个选手 每跑10米显示信息 解题思路: 1.必须要用到多线程的锁,否则就会出现三个选手乱跑的情况,我们需要一个一个跑 2.使用给oneRunner上锁的方式更细的控制资源比直接给…

qt画板v1.0

qt图形视图做的一个工具,具备画板功能,对初学习有很大作用

搭建内网文件服务器(FTP),以及实现内网Gitee

一、实现windows搭建FTP,实现文件共享和管理 具体步骤: 1.打开控制面板,搜索功能 2.打开这几个配置 3.打开IIS,添加FTP站点即可 二、实现内网Gitee 参考博客: Gitblit服务器搭建及Git使用-CSDN博客 jdk1.8.0的安…

关系数据库(1,2)

目录 关系 域 笛卡尔集 元组 分量 基数 码 关系模式 关系模式的表示方式 关系数据库 基本关系操作 完整性 关系 单一的数据结构,二维表是一个逻辑结构,关系模型建立在集合代数的基础上。 域 指具有相同数据类型的集合。 笛卡尔集 笛卡尔集是…

独立站建站及运营经验分享

什么是独立站 了解过跨境电商的朋友肯定都知道,跨境电商其实分两种,一种是入驻平台,一种是做独立站。平台例如亚马逊,速卖通,Lazada,国内就是京东淘宝,他们都属于平台,但平台的劣势…

实验一 番外篇 虚拟机联网与DHCP服务器

写的有点乱,因为刚开始遇到了一堆问题。 实验一会有联网问题,下面紧接着解决一下。 注意虚拟机设置的默认网关要有网。 参考:vmware校园网虚拟机无法连接网络解决方法_大数据_十三川浪越-华为开发者空间 【11-Windows server 2016 DHCP服务…

『功能项目』战士的伤害型技能【45】

我们打开上一篇44战士职业平A怪物掉血的项目, 本章要做的事情是制作技能按钮,点鼠标点击时释放对范围内怪物的伤害技能 首先双击打开资源脚本下的Canvas预制体 制作技能栏 在资源商店中下载免费资源 - 技能图片 将技能图片拖拽至技能栏的Button按钮组件…

细说STM32单片机使用通用定时器生成固定占空比和可变占空比PWM波的方法

目录 一、本实例测试的目的 二、硬件和CubeMX项目配置 1、硬件开发板 2、项目配置 (1)定时器TIM2_CH1 (2)时钟和Debug (3) NVIC (4)GPIO 3、输出固定占空比的PWM波源码 &…

a√斗地主之顺子

题目描述 在斗地主扑克牌游戏中,扑克牌由小到大的顺序为:3,4,5.6,7.8,9,10,J,Q,K,A,2,玩家可以出的扑克牌阵型有:单张、对子、顺子、飞机、炸弹等。 其中顺子的出牌规则为:由至少5张由小到大连续递增的扑克牌组成,且不能包含2。 例如:(3.4.…

三、Kubernetes中的控制器的使用

一 什么是控制器 官方文档: 工作负载管理 | Kubernetes 控制器也是管理pod的一种手段 自主式pod:pod退出或意外关闭后不会被重新创建 控制器管理的 Pod:在控制器的生命周期里,始终要维持 Pod 的副本数目 Pod控制器是管理pod…

Vue3+CesiumJS相机定位camera

new Cesium.Camera (scene) 摄像机由位置,方向和视锥台定义。 方向与视图形成正交基准,上和右视图x上单位矢量。 视锥由6个平面定义。每个平面都由 Cartesian4 对象表示,其中x,y和z分量定义垂直于平面的单位矢量,w分量…

springboot 整合 nacos 配置实现多个环境不同配置

目录 1、描述 2、Nacos服务端安装 3、创建dataId 配置中心 4、创建一个springboot 项目 5、重点:不同的springboot 读取不同application 6、总结 1、描述 一个项目一般会有中心配置文件,现在简单上手主流有Apollo,nacos config &#…

python的流程控制语句之制作空气质量评估系统

👨‍💻个人主页:开发者-曼亿点 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 曼亿点 原创 👨‍💻 收录于专栏&#xff1a…

VideoSRT 注册邀请码,填写邀请码免费获得3天专业版授权

邀请码:aN2M40 填写邀请码免费获得3天专业版授权

【Python刷题】Atcoder Beginner Contest 371

目录 A - Jiro题目描述算法思路代码实现 B - Taro题目描述算法思路代码实现 D - 1D Country题目描述算法思路代码实现 E - I Hate Sigma Problem题目描述算法思路代码实现 A - Jiro 题目描述 有三个人,知道他们之中每两个人的年龄关系,输出年龄第二大的…