数据仓库建模基础理论-01-为什么需要数据建模?

一、什么是数据模型?

  • 数据模型是数据库的基础结构,用于描述和组织数据的方式。

  • 它不仅是数据库的底层结构,还是一个概念性工具,帮助理解数据的含义和关系。

在这里插入图片描述

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

常见的四种数据模型:

在这里插入图片描述

1.关系模型

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

在这里插入图片描述

  • 关系模型是由表的集合组成的,每个表用来表示数据和数据之间的关系。

  • 表中的行和列用来存储数据,同时也表示数据之间的关系。

  • 每个表可以包含多个列,每个列都有唯一的名称和定义的数据类型。

  • 在关系模型中,表被称为关系,反映了数据的结构和组织方式。

  • 关系模型是基于记录(即行)的模型,每条记录有多个字段或属性,字段数目和类型是固定的。

  • 关系模型是目前最广泛使用的数据模型,大多数现代数据库系统都基于此模型设计和实现。

在这里插入图片描述


2.实体关系模型

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

在这里插入图片描述

  • E-R 模型由称为实体的基本对象及其之间的关系组成。

  • 实体是现实世界中可区分的事物或对象,例如一个人、一个地方或一个事件。

  • 实体之间可以存在不同类型的关系,如一对一、一对多或多对多关系,这些关系反映了实际世界中事物之间的连接方式。

在这里插入图片描述

3.对象模型

对象模型(Object-Based Model,OBM)是数据库设计中的一个重要概念。结合了实体-关系(E-R)模型和面向对象编程语言的特性。

对象模型在现代数据库设计和应用开发中具有重要的地位,为面向对象编程与数据库管理之间的集成提供了理想的解决方案。
在这里插入图片描述

  1. 面向对象的特性

    • 对象模型基于面向对象编程(如C++、Java、C#等)的思想,将数据表示为对象。
    • 每个对象有其自身的属性(数据)和方法(操作)。
  2. 封装

    • 将数据和操作封装在对象内部,通过定义公共接口进行访问和操作,增强了数据的安全性和模块化。
  3. 继承

    • 支持类与子类之间的继承关系,使得对象可以继承和重用现有的属性和方法。
  4. 多态

    • 允许不同类的对象对相同的消息作出不同的响应,提高了代码的灵活性和可复用性。
  5. 实体-关系模型(E-R模型)

    • 基于实体、属性和关系的概念,用于描述现实世界中的数据结构和关联。
  6. 数据建模

    • 通过定义类、属性和方法来建模现实世界中的实体和其关系,更符合业务逻辑和需求的表达方式。

在这里插入图片描述

4.半结构化数据模型

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

在这里插入图片描述

  • 半结构化数据模型强调数据可以包含不同的数据项类型,并且可以根据需要动态扩展和修改数据的结构。

  • 这种模型与传统的数据模型形成鲜明对比,比如关系型数据库模型,它们通常要求所有数据都遵循预定义的严格结构。

  • 在这种情况下,半结构化数据模型可以使用类似可扩展标记语言(如XML)的格式来表示数据。

  • XML允许数据以自定义的、层次化的方式进行组织,每个数据项可以具有不同的属性集合。这

在这里插入图片描述


二、为什么需要数据建模?

  • 1.大数据时代,如何将这些海量的数据进行有序、有结构地分类组织和存储是我们面临的一个挑战,也是我们的目标。
  • Tips:如果把数据比作图书馆里的书,我们希望看到书在书架上分门别类的放好;如果把数据比作城市里的建筑,我们希望城市规划布局合理;如果把数据看作电脑文件和文件夹,我们希望按照自己的习惯有很好的文件夹组织方式,而不是糟糕混乱的桌面,经常为找一个文件而不知所措。

  • 2.而数据模型就是数据组织和存储的方法,数据模型强调从业务、数据存储和使用角度合理存储数据。

  • 良好的数据模型可以带来很多好处:

    • 性能(效率):快速查询所需要的数据,减少数据的I/O吞吐,极大改善用户体验,提高使用数据的效率。
    • 成本:减少不必要的数据冗余,也能实现计算结果复用,极大降低成本。

总结下来就是一句话——大数据系统需要数据模型方法来帮助更好地组织和存储数据,以便在最主要的两个方面——成本和效率之间取得最佳平衡。


三、从OLTP、OLAP系统区别看模型方法论的选择

  • 一般在公司中,系统是分为两部分的,一部分系统是业务系统,另一部分是决策类系统。
  • OLTP通常是业务系统的这种模式,OLAP通常是面向于分析的决策类系统。
    在这里插入图片描述
  • OLTP通常是关系型数据库,必须要保证业务上的数据的唯一性或者准确性(严格3NF要求)。
  • OLAP强调的不再是业务数据的存储,而是通过对业务数据的再分析,最终产出一个决策,去回流到业务系统中,让业务系统更好的去发展。

在这里插入图片描述

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

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

相关文章

C++ | Leetcode C++题解之第206题反转链表

题目: 题解: class Solution { public:ListNode* reverseList(ListNode* head) {if (!head || !head->next) {return head;}ListNode* newHead reverseList(head->next);head->next->next head;head->next nullptr;return newHead;} …

一秒记单词:音通义通,一秒牢记

一秒记单词,从小学到高中,一秒牢记 一、小学生记单词,快速突破 1.1 好的开始,是成功的一半 sun n.太阳 【通】尚 moon n.月亮 【通】母恩 mother n.母亲,妈 【通】妈汁 sea n.海,大海 【通】细 sand …

【MySQL基础篇】SQL指令:DQL及DCL

1、DQL DQL - 介绍 DQL英文全称是Data Query Language(数据查询语言),数据查询语言,用来查询数据表中的记录。(在MySQL中应用是最为广泛的) 查询关键字:SELECT DQL - 语法 SELECT 字段列表 FROM 表名列表 WHER…

【人工智能学习之图像操作(六)】

【人工智能学习之图像操作(六)】 Hough变换直线检测圆检测 图像分割 Hough变换 在图像处理中,霍夫变换用来检测任意能够用数学公式表达的形状,即使这个形状被破坏或者有点扭曲 直线检测 import cv2 import numpy as np image …

利用微信开放标签<wx-open-launch-weapp>在H5中跳转微信小程序报错完美的解决方案

一、报错&#xff1a; [WXTAG] [JSCORE] The slot <template> or <script type"text/wxtag-template"> of <wx-open-launch-weapp> is missing 二、源码 官方源代码如下&#xff0c;<script type"text/wxtag-template"></sc…

美团外卖搜索基于Elasticsearch的优化实践--图文解析

美团外卖搜索基于Elasticsearch的优化实践–图文解析 前言 美团在外卖搜索业务场景中大规模地使用了 Elasticsearch 作为底层检索引擎&#xff0c;随着业务量越来越大&#xff0c;检索速度变慢了&#xff0c;CPU快累趴了&#xff0c;所以要进行优化。经过检测&#xff0c;发现…

[SAP ABAP] 数据字典

ABAP数据字典是定义和管理数据库对象的工具 系统的所有全局数据类型以及数据库表结构等都需要在数据字典中创建和维护(数据字典中的对象对所有ABAP程序都是全局的) 通过数据字典&#xff0c;我们可以把数据库对象管理好&#xff0c;后续才能顺利的进行功能开发&#xff0c;SA…

集合,Collection接口

可动态保存任意多个对象&#xff0c;使用比较方便 提供了一系列方便操作对象的方法&#xff1a;add&#xff0c;remove&#xff0c;set&#xff0c;get等 使用集合添加删除新元素&#xff0c;代码简洁明了 单列集合 多列集合 Collection接口 常用方法 List list new Arra…

多媒体基础

笔者按&#xff1a; 昨日复习的信息网络安全约莫是挂了&#xff0c;常言道&#xff1a;知耻而后勇。诚如斯言 于是决心多媒体是不能再挂了&#xff0c;不然直接变成xxx之流&#xff0c;自增笑耳 语雀链接&#xff1a;多媒体基础 一.多媒体计算机概述 媒体&#xff1a;承载信息…

动手学深度学习(Pytorch版)代码实践 -卷积神经网络-21多输入多输出通道

21多输入多输出通道 import torch from d2l import torch as d2ldef corr2d(X, K):"""计算二维互相关运算"""h, w K.shapeY torch.zeros((X.shape[0] - h 1, X.shape[1] - w 1))for i in range(Y.shape[0]):for j in range(Y.shape[1]):Y[i,…

go语言DAY7 字典Map 指针 结构体 函数

Go中Map底层原理剖析_go map底层实现-CSDN博客 目录 Map 键值对key,value 注意&#xff1a; map唯一确定的key值通过哈希运算得出哈希值 一、 map的声明及初始化&#xff1a; 二、 map的增删改查操作&#xff1a; 三、 map的赋值操作与切片对比&#xff1a; 四、 通用所有…

[leetcode hot 150]第一百二十二题,买卖股票的最佳时机Ⅱ

题目&#xff1a; 给你一个整数数组 prices &#xff0c;其中 prices[i] 表示某支股票第 i 天的价格。 在每一天&#xff0c;你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以先购买&#xff0c;然后在 同一天 出售。 返回 你能获得的 最大…

【C++】初识C++(一)

一.什么是C C语言是结构化和模块化的语言&#xff0c;适合处理较小规模的程序。对于复杂的问题&#xff0c;规模较大的程序&#xff0c;需要高度 的抽象和建模时&#xff0c;C语言则不合适。为了解决软件危机&#xff0c; 20世纪80年代&#xff0c; 计算机界提出了OOP(object o…

图形处理单元(GPU)在现代计算中的应用与挑战(研究论文框架)

摘要:随着高性能计算需求的日益增长,图形处理单元(GPU)已从专业的图形渲染处理器转变为具有高性能并行处理能力的多功能计算平台。本文将探讨GPU的核心优势、编程模型、在不同领域的应用以及面临的挑战和限制。此外,还将讨论GPU技术的未来发展趋势和潜在的研究机会。 关键…

mongodb 查询语句学习笔记

基础查询 正则查询 {status: A,$or: [{ qty: { $lt: 30 } }, { item: { $regex: ^p } }] }AND 查询 { "size.h": { $lt: 15 }, "size.uom": "in", status: "D" }OR 查询 { $or: [ { status: "A" }, { qty: { $lt: 30 } …

2024年机动车签字授权人题库,助你冲刺!绝对不会让你后悔!

61.&#xff08;&#xff09;使汽车按驾驶人选定的方向行驶。 A.传动系统 B.行驶系统 C.转向系统 D.制动系统 答案&#xff1a;C 62.&#xff08;&#xff09;使汽车各总成及部件安装在适当的位置&#xff0c;对全车起支承作用以保证汽车正常行驶。 A.传动系统 B.行驶系…

HDFS学习

3.5 HDFS存储原理 3.5.1 冗余数据保存 作为一个分布式文件系统&#xff0c;为了保证系统的容错性和可用性&#xff0c;HDFS采用了多副本方式对数据进行冗余存储&#xff0c;通常一个数据块的多个副本会被分布到不同的数据节点上。 如图所示&#xff0c;数据块1被分别存放到…

石油化工厂为什么要用专业防爆手机?

防爆手机之所以必须使用专业设计的产品&#xff0c;主要是出于安全考虑&#xff0c;以防止在易燃易爆环境中因手机使用不当引发爆炸事故。以下几点详细解释了使用专业化工防爆手机的必要性&#xff1a; 本质安全设计&#xff1a;顶坚专业防爆手机采用了本质安全&#xff08;本安…

动手学深度学习(Pytorch版)代码实践 -计算机视觉-47转置卷积

47转置卷积 import torch from torch import nn from d2l import torch as d2l# 输入矩阵X和卷积核矩阵K实现基本的转置卷积运算 def trans_conv(X, K):h, w K.shapeY torch.zeros((X.shape[0] h - 1, X.shape[1] w - 1))for i in range(X.shape[0]):for j in range(X.shap…

昇思25天学习打卡营第5天|数据变换Transforms

数据变换Transforms 介绍Transforms分类Common TransformsVision TransformsText TransformsPythonTokenizer LookupLambda Transforms 参考 介绍 MindSpore提供不同种类的数据变换&#xff08;Transforms&#xff09;&#xff0c;配合数据处理Pipeline来实现数据预处理。 所有…