数据仓库建模基础理论-01-为什么需要数据建模?
一、什么是数据模型?
-
数据模型是数据库的基础结构,用于描述和组织数据的方式。
-
它不仅是数据库的底层结构,还是一个概念性工具,帮助理解数据的含义和关系。

- 数据模型包括数据本身、数据之间的关系、数据的语义(含义和描述)、以及数据的约束条件。
- 在设计数据库时,可以从物理层面(存储结构)、逻辑层面(关系模型)和视图层面(用户视角)来考虑和实现数据模型。
常见的四种数据模型:

1.关系模型
关系模型是数据库管理系统中的一种主要数据模型。关系模型通过表和表之间的关系,提供了一种清晰而有效的方式来组织和管理数据,适用于各种规模和类型的应用程序和数据库需求。

-
关系模型是由表的集合组成的,每个表用来表示数据和数据之间的关系。
-
表中的行和列用来存储数据,同时也表示数据之间的关系。
-
每个表可以包含多个列,每个列都有唯一的名称和定义的数据类型。
-
在关系模型中,表被称为关系,反映了数据的结构和组织方式。
-
关系模型是基于记录(即行)的模型,每条记录有多个字段或属性,字段数目和类型是固定的。
-
关系模型是目前最广泛使用的数据模型,大多数现代数据库系统都基于此模型设计和实现。

2.实体关系模型
E-R 模型通过清晰地定义实体和它们之间的关系,为数据库设计提供了一种直观且高效的方法。

-
E-R 模型由称为实体的基本对象及其之间的关系组成。
-
实体是现实世界中可区分的事物或对象,例如一个人、一个地方或一个事件。
-
实体之间可以存在不同类型的关系,如一对一、一对多或多对多关系,这些关系反映了实际世界中事物之间的连接方式。

3.对象模型
对象模型(Object-Based Model,OBM)是数据库设计中的一个重要概念。结合了实体-关系(E-R)模型和面向对象编程语言的特性。
对象模型在现代数据库设计和应用开发中具有重要的地位,为面向对象编程与数据库管理之间的集成提供了理想的解决方案。

-
面向对象的特性:
- 对象模型基于面向对象编程(如C++、Java、C#等)的思想,将数据表示为对象。
- 每个对象有其自身的属性(数据)和方法(操作)。
-
封装:
- 将数据和操作封装在对象内部,通过定义公共接口进行访问和操作,增强了数据的安全性和模块化。
-
继承:
- 支持类与子类之间的继承关系,使得对象可以继承和重用现有的属性和方法。
-
多态:
- 允许不同类的对象对相同的消息作出不同的响应,提高了代码的灵活性和可复用性。
-
实体-关系模型(E-R模型):
- 基于实体、属性和关系的概念,用于描述现实世界中的数据结构和关联。
-
数据建模:
- 通过定义类、属性和方法来建模现实世界中的实体和其关系,更符合业务逻辑和需求的表达方式。

4.半结构化数据模型
半结构化数据模型是一种用于表示和处理半结构化数据的概念性模型,它区别于传统的结构化数据模型(如关系数据库中的表和列)和非结构化数据(如文本和图像)。

-
半结构化数据模型强调数据可以包含不同的数据项类型,并且可以根据需要动态扩展和修改数据的结构。
-
这种模型与传统的数据模型形成鲜明对比,比如关系型数据库模型,它们通常要求所有数据都遵循预定义的严格结构。
-
在这种情况下,半结构化数据模型可以使用类似可扩展标记语言(如XML)的格式来表示数据。
-
XML允许数据以自定义的、层次化的方式进行组织,每个数据项可以具有不同的属性集合。这

二、为什么需要数据建模?
- 1.大数据时代,如何将这些海量的数据进行有序、有结构地分类组织和存储是我们面临的一个挑战,也是我们的目标。
- Tips:如果把数据比作图书馆里的书,我们希望看到书在书架上分门别类的放好;如果把数据比作城市里的建筑,我们希望城市规划布局合理;如果把数据看作电脑文件和文件夹,我们希望按照自己的习惯有很好的文件夹组织方式,而不是糟糕混乱的桌面,经常为找一个文件而不知所措。
-
2.而数据模型就是数据组织和存储的方法,数据模型强调从业务、数据存储和使用角度合理存储数据。
-
良好的数据模型可以带来很多好处:
- 性能(效率):快速查询所需要的数据,减少数据的I/O吞吐,极大改善用户体验,提高使用数据的效率。
- 成本:减少不必要的数据冗余,也能实现计算结果复用,极大降低成本。
总结下来就是一句话——大数据系统需要数据模型方法来帮助更好地组织和存储数据,以便在最主要的两个方面——成本和效率之间取得最佳平衡。
三、从OLTP、OLAP系统区别看模型方法论的选择
- 一般在公司中,系统是分为两部分的,一部分系统是业务系统,另一部分是决策类系统。
- OLTP通常是业务系统的这种模式,OLAP通常是面向于分析的决策类系统。

- OLTP通常是关系型数据库,必须要保证业务上的数据的唯一性或者准确性(严格3NF要求)。
- OLAP强调的不再是业务数据的存储,而是通过对业务数据的再分析,最终产出一个决策,去回流到业务系统中,让业务系统更好的去发展。

相关文章:
数据仓库建模基础理论-01-为什么需要数据建模?
一、什么是数据模型? 数据模型是数据库的基础结构,用于描述和组织数据的方式。 它不仅是数据库的底层结构,还是一个概念性工具,帮助理解数据的含义和关系。 数据模型包括数据本身、数据之间的关系、数据的语义(含义和…...
中序遍历的两种实现——二叉树专题复习
递归实现: /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNode right)…...
python 基础综合应用——小开发
#python 基础综合应用——小开发 综合复习 变量- 循环- 函数- 模块 开发 名片管理系统 名片管理系统介绍 名片管理系统可以理解成花名册软件,通过个人新建人的信息后可以进行查询等简单操作的程序 名片管理系统有三个作用, 1.新建名片 2.显示全部名…...
算法金 | 我最常用的两个数据可视化软件,强烈推荐
大侠幸会,在下全网同名「算法金」 0 基础转 AI 上岸,多个算法赛 Top 「日更万日,让更多人享受智能乐趣」 抱个拳,送个礼 预警:今天文章的描述可能会让你有点别扭;如感到不适,请及时停止 在我行…...
【机器学习实战】Baseline精读笔记
比赛用到的库 numpy:提供(多维)数组操作 pandas:提供数据结构、数据分析 catboost:用于机器学习的库,特别是分类和回归任务 sklearn.model_selection:包含模型选择的多种方法,如交…...
Redis 缓存问题及解决
所有问题解决的关键就是尽少的访问数据库,或者避免太集中的访问。 一,缓存穿透(key在数据库不存在) 当数据既不在缓存中,也不在数据库中,导致请求访问缓存没数据,访问数据库也没数据,…...
RISC-V的历史与设计理念
指令集是什么? 如果把软件比作螺丝钉,硬件比作螺母,那么指令集架构就是螺丝钉与螺母的蓝图。我们需要根据蓝图设计可以匹配的螺丝钉与螺母。——包云岗老师 RISC-V的起源 以往比较流行的指令集:ARM,MIPS,X…...
山西车间应用LP-LP-SCADA系统的好处有哪些
关键字:LP-SCADA系统, 传感器可视化, 设备可视化, 独立SPC系统, 智能仪表系统,SPC可视化,独立SPC系统 LP-SCADA(监控控制与数据采集)系统是工业控制系统的一种,主要用于实时监控、控制和管理工业生产过程。 在车间应用LP-SCADA系统…...
setjmp和longjmp函数使用
这里用最简单直接的描述:这两组函数是用于实现类似vscode全局的标签跳转功能,setjmp负责埋下标签,longjmp负责标签跳转。 #include <stdio.h> #include <stdlib.h> #include <setjmp.h>jmp_buf envbuf1; jmp_buf envbuf2;…...
vue-org-tree搜索到对应项高亮展开
效果图: 代码: <template><div class"AllTree"><el-form :inline"true" :model"formInline" class"demo-form-inline"><el-form-item><el-input v-model"formInline.user&quo…...
FullCalendar日历组件集成实战(17)
背景 有一些应用系统或应用功能,如日程管理、任务管理需要使用到日历组件。虽然Element Plus也提供了日历组件,但功能比较简单,用来做数据展现勉强可用。但如果需要进行复杂的数据展示,以及互动操作如通过点击添加事件࿰…...
【图像分割】mask2former:通用的图像分割模型详解
最近看到几个项目都用mask2former做图像分割,虽然是1年前的论文,但是其attention的设计还是很有借鉴意义,同时,mask2former参考了detr的query设计,实现了语义和实例分割任务的统一。 1.背景 1.1 detr简介 detr算是第…...
【不锈钢酸退作业区退火炉用高温辐射计快速安装】
项目名称 不锈钢酸退作业区退火炉用高温辐射计快速安装 改造实施项目简介项目提出前状况:不锈钢生产过程中,各种型号的不锈钢带钢在退火工艺中对带钢温度的准确性要求很高,带钢温度的检测直接影响带钢的产品质量,不锈钢带钢温度测量依靠的是高温辐射计,其测量的准确性、稳…...
Studying-代码随想录训练营day29| 134. 加油站、135. 分发糖果、860.柠檬水找零、406.根据身高重建队列
第29天,贪心part03,快过半了(ง •_•)ง💪,编程语言:C 目录 134.加油站 135. 分发糖果 860.柠檬水找零 406.根据身高重建队列 134.加油站 文档讲解:代码随想录加油站 视频讲解:手撕加油站…...
Understanding Zero Knowledge Proofs (ZKP)
Bilingual Tutorial: Understanding Zero Knowledge Proofs (ZKP) 双语教程:理解零知识证明(ZKP) Introduction 介绍 English: Zero Knowledge Proofs (ZKP) are a fascinating concept in cryptography where one party (the prover) can…...
微信小程序 DOM 问题
DOM 渲染问题 问题 Dom limit exceeded, please check if theres any mistake youve made.测试页面 1 <template><scroll-view scroll"screen" style"width: 100%;height: 100vh;" :scroll-y"true" :scroll-with-animation"tru…...
可视化作品集(03):旅游景区的应用,美爆啦。
景区可视化通常指的是利用现代科技手段,如地图、虚拟现实(VR)、增强现实(AR)、无人机航拍等技术,将景区的地理信息、景点分布、交通路线、游客服务设施等内容以可视化的方式呈现给游客或者管理者࿰…...
嵌入式实时操作系统:Intewell操作系统与VxWorks操作系统有啥区别
Intewell操作系统和VxWorks操作系统都是工业领域常用的操作系统,它们各有特点和优势。以下是它们之间的一些主要区别: 架构差异: Intewell操作系统采用微内核架构,这使得它具有高实时性、高安全性和强扩展性的特点。微内核架构…...
PCDN技术如何提高内容分发效率?(壹)
PCDN技术提高内容分发效率的操作主要体现在以下几个方面: 利用P2P技术:PCDN以P2P技术为基础,通过挖掘利用边缘网络的海量碎片化闲置资源,实现内容的分发。这种方式可以有效减轻中心服务器的压力,降低内容传输的延迟&a…...
Java 中Json中既有对象又有数组的参数 如何转化成对象
1.示例一:解析一个既包含对象又包含数组的JSON字符串,并将其转换为Java对象 在Java中处理JSON数据,尤其是当JSON结构中既包含对象又包含数组时,常用的库有org.json、Gson和Jackson。这里我将以Gson为例来展示如何解析一个既包含对…...
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造,完美适配AGV和无人叉车。同时,集成以太网与语音合成技术,为各类高级系统(如MES、调度系统、库位管理、立库等)提供高效便捷的语音交互体验。 L…...
谷歌浏览器插件
项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...
树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法
树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作,无需更改相机配置。但是,一…...
MongoDB学习和应用(高效的非关系型数据库)
一丶 MongoDB简介 对于社交类软件的功能,我们需要对它的功能特点进行分析: 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具: mysql:关系型数据库&am…...
无法与IP建立连接,未能下载VSCode服务器
如题,在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈,发现是VSCode版本自动更新惹的祸!!! 在VSCode的帮助->关于这里发现前几天VSCode自动更新了,我的版本号变成了1.100.3 才导致了远程连接出…...
【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力
引言: 在人工智能快速发展的浪潮中,快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型(LLM)。该模型代表着该领域的重大突破,通过独特方式融合思考与非思考…...
【Java_EE】Spring MVC
目录 Spring Web MVC 编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 编辑参数重命名 RequestParam 编辑编辑传递集合 RequestParam 传递JSON数据 编辑RequestBody …...
【Android】Android 开发 ADB 常用指令
查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...
如何把工业通信协议转换成http websocket
1.现状 工业通信协议多数工作在边缘设备上,比如:PLC、IOT盒子等。上层业务系统需要根据不同的工业协议做对应开发,当设备上用的是modbus从站时,采集设备数据需要开发modbus主站;当设备上用的是西门子PN协议时…...
13.10 LangGraph多轮对话系统实战:Ollama私有部署+情感识别优化全解析
LangGraph多轮对话系统实战:Ollama私有部署+情感识别优化全解析 LanguageMentor 对话式训练系统架构与实现 关键词:多轮对话系统设计、场景化提示工程、情感识别优化、LangGraph 状态管理、Ollama 私有化部署 1. 对话训练系统技术架构 采用四层架构实现高扩展性的对话训练…...
