数据仓库建模基础理论-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为例来展示如何解析一个既包含对…...
谷歌浏览器插件
项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...

深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录
ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...
模型参数、模型存储精度、参数与显存
模型参数量衡量单位 M:百万(Million) B:十亿(Billion) 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的,但是一个参数所表示多少字节不一定,需要看这个参数以什么…...

UDP(Echoserver)
网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...

CentOS下的分布式内存计算Spark环境部署
一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架,相比 MapReduce 具有以下核心优势: 内存计算:数据可常驻内存,迭代计算性能提升 10-100 倍(文档段落:3-79…...

[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?
论文网址:pdf 英文是纯手打的!论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误,若有发现欢迎评论指正!文章偏向于笔记,谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...

Nuxt.js 中的路由配置详解
Nuxt.js 通过其内置的路由系统简化了应用的路由配置,使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...

uniapp微信小程序视频实时流+pc端预览方案
方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度WebSocket图片帧定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐RTMP推流TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…...

全志A40i android7.1 调试信息打印串口由uart0改为uart3
一,概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本:2014.07; Kernel版本:Linux-3.10; 二,Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01),并让boo…...
Swagger和OpenApi的前世今生
Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章,二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑: 🔄 一、起源与初创期:Swagger的诞生(2010-2014) 核心…...