数据仓库建模基础理论-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强调的不再是业务数据的存储,而是通过对业务数据的再分析,最终产出一个决策,去回流到业务系统中,让业务系统更好的去发展。

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

前端面试题(基础篇十三)

一、async 和 defer 的作用是什么?有什么区别? (1)脚本没有 defer 或 async,浏览器会立即加载并执行指定的脚本,也就是说不等待后续载入的文档元素,读到就加载并执行。 (2&#xff0…

第二天:ALOAM前端讲解【第3部分】

(2)面特征 点到面的距离公式: d H = ∣ ( X ~ ( k + 1 , i ) L − X ˉ ( k , j ) L ) ⋅ ( ( X ˉ ( k , j ) L − X ˉ ( k , l ) L ) ( X ˉ ( k , j ) L − X ˉ ( k , m ) L ) ) ∣ ∣ ( X ˉ ( k , j ) L − X ˉ ( k , l ) L ) ( X ˉ ( k , j ) L − X ˉ ( k ,…

Golang | Leetcode Golang题解之第205题同构字符串

题目: 题解: func isIsomorphic(s, t string) bool {s2t : map[byte]byte{}t2s : map[byte]byte{}for i : range s {x, y : s[i], t[i]if s2t[x] > 0 && s2t[x] ! y || t2s[y] > 0 && t2s[y] ! x {return false}s2t[x] yt2s[y] …

RDMA建链的3次握手和断链的4次挥手流程?

文章目录 基础信息建链 3次握手断链4次挥手建联状态active端passive端 报文结构函数关系其他后记 基础信息 CM: Communication Management 通信管理 连接管理SIDR: Service ID Resolution Protocol. 作用: enables users of Unreliable Datagram service to locate …

amis中条件组合器condition-builder的使用 和 解析

1.amis中配置一个条件组合器,condition-builder。并根据自己业务需求配置source。这里用了一些自定义filter来进行预处理。 {"type": "condition-builder","label": "条件组合","name": "node.conditions&q…

第十节:学习ConfigurationProperties类来配置pojo实体类参数(自学Spring boot 3.x的第二天)

大家好,我是网创有方 。这节记录下如何使用ConfigurationProperties来实现自动注入配置值。。实现将配置文件里的application.properties的参数赋值给实体类并且打印出来。 第一步:新建一个实体类WechatConfig package cn.wcyf.wcai.config;import org…

浅谈如何在linux上部署java环境

文章目录 一、部署环境1.1、JDK1.2、Tomcat1.3、MySQL 二、将自己写的的程序部署到云服务器上 一、部署环境 为了在linux上部署 Java web 程序,需要安装一下环境。 1.1、JDK 直接使用 yum 命令安装 openjdk。我们 windows系统上 下载的是 oracle 官方的 jdk。而 …

文件系统(操作系统实验)

实验内容 (1)在内存中开辟一个虚拟磁盘空间作为文件存储器, 在其上实现一个简单单用户文件系统。 在退出这个文件系统时,应将改虚拟文件系统保存到磁盘上, 以便下次可以将其恢复到内存的虚拟空间中。 (2&…

llama.cpp

https://github.com/echonoshy/cgft-llm 【大模型量化】- Llama.cpp轻量化模型部署及量化_哔哩哔哩_bilibili github.com/ggerganov/llama.cpp cd ~/code/llama.cpp/build_cuda/bin ./quantize --allow-requantize /root/autodl-tmp/models/Llama3-8B-Chinese-Chat-GGUF/Llama…

项目训练营第六天

项目训练营第六天 前端注册界面开发 1、基本布局 将登录界面文件夹复制一份,粘贴到上一层目录User目录下,改名为Register 在typings.d.ts文件中添加如下的登录前端接口函数标准参数 以及返回值类型 2、接口开发 在api.ts中修改原先接口如下&…

3.SQL注入-搜索型

SQL注入-搜索型 输入k字段进行搜索发现出用户信息 通过上图搜索可以猜测的sql语句为 select 字段1,字段2 from 表名 where username like %k%;在后台查询结果 select id,email from member where username like %k%;通过以上猜测进行构造payload语句 like %k% or 11 #%; …

mysql_config 命令, 可以查看mysqlclient库的位置在/usr/lib64/mysql下

好吧,其实我是从这里知道了 -l 后面加的库名和so文件这种名不一样,因为库文件实际叫下面这个名(前面有lib)。

零基础开始学习鸿蒙开发-页面导航栏布局设计

1.设定初始页(Idex.ets) import {find} from ../pages/find import {home} from ../pages/home import {setting} from ../pages/setting Entry Component struct Index {private controller: TabsController new TabsController()State gridMargin: number 10State gridGut…

【漏洞复现】致远互联FE协作办公平台——SQL注入

声明:本文档或演示材料仅供教育和教学目的使用,任何个人或组织使用本文档中的信息进行非法活动,均与本文档的作者或发布者无关。 文章目录 漏洞描述漏洞复现测试工具 漏洞描述 致远互联FE协作办公平台是一个专注于协同管理软件领域的数智化运…

论文学习——一种自适应提升的动态多目标优化进化算法

论文题目:A dynamic multi-objective optimization evolutionary algorithm with adaptive boosting 一种自适应提升的动态多目标优化进化算法(Hu Peng a,b,∗, Jianpeng Xiong a, Chen Pi a, Xinyu Zhou c, Zhijian Wu d)IEEE Swarm and Ev…

【Python游戏】猫和老鼠

本文收录于 《一起学Python趣味编程》专栏,从零基础开始,分享一些Python编程知识,欢迎关注,谢谢! 文章目录 一、前言二、代码示例三、知识点梳理四、总结一、前言 本文介绍如何使用Python的海龟画图工具turtle,开发猫和老鼠游戏。 什么是Python? Python是由荷兰人吉多范…

LeetCode热题100刷题2:283. 移动零、11. 盛最多水的容器、15. 三数之和、42. 接雨水

283. 移动零 挺简单的没啥说的 class Solution { public:void moveZeroes(vector<int>& nums) {//快慢指针 // 快指针负责往前遍历&#xff0c;慢指针记录快指针遍历过的把0撵走的最后一个元素的位置// 然后快指针遍历完之后&#xff0c;慢指针到结尾直接赋0就行in…

2-20 基于matlab的利用准二维发散喷嘴的特性法给出理想喷嘴的几何形状

基于matlab的利用准二维发散喷嘴的特性法给出理想喷嘴的几何形状。 假设气体从燃烧室排出&#xff0c;燃烧室内没有质量流量。 利用二维喷嘴流动关系&#xff0c;找到一个最佳喉管区域&#xff0c;该区域将在给定环境压力和燃烧室参数下产生最大推力。 该区域将自动设置并输入代…

Webpack: 7 款常用的性能分析工具

概述 Webpack 最大的优势在于它的功能非常强大、全面&#xff0c;加之繁荣活跃的组件生态&#xff0c;已经足够应对几乎所有 Web 构建需求&#xff0c;包括&#xff1a;SPA、MPA、SSR、桌面应用、Node 程序、WebAssemsbly、PWA、微前端等等&#xff0c;所以即使在近几年工程化…

网络io与select,poll,epoll

前言 网络 IO&#xff0c;会涉及到两个系统对象&#xff0c;一个是用户空间调用 IO 的进程或者线程&#xff0c;另一个是内核空间的内核系统&#xff0c;比如发生 IO 操作 read 时&#xff0c;它会经历两个阶段&#xff1a; 1. 等待数据准备就绪 2. 将数据从内核拷贝到进程或…