数据治理-数据建模和设计
定义
发现、分析和确定数据需求的过程,用一种称为数据模型的精确形式表示和传递这些数据需求。过程是循环迭代的,可能包括概念、逻辑和物理模型。
常见的6种数据模型
关系模式、多维模式、面向对象模式、事实模式、时间序列模式、NoSQL模式。根据描述详细程度不同,可分为:概念模型、逻辑模型、物理模型。
业务驱动因素
- 提供有关数据的通用词汇表;
- 获取、记录组织内数据和系统的详细信息;
- 在项目中作为主要的交流沟通工具;
- 提供了应用定制、整合,甚至替换的起点。
数据建模和设计的目标
确认并记录不同视角对数据需求的理解,确保应用程序更符合当前和未来的业务需求,为更多数据应用和数据管理奠定基础,例如主数据管理和数据治理项目。
数据建模和设计活动
- 规划数据建模;
- 建立数据模型(创建概念、逻辑、物理模型);
- 审核数据模型;
- 维护数据模型。
输入
现有的数据模型和数据库;数据标准;数据集;初始数据需求;原始数据需求;数据架构;企业分类法;
交付成果
概念、逻辑、物理数据模型
方法
命名规范,数据库设计规范,数据库类型选择;
工具
数据建模工具、数据血缘工具、数据分析工具、元数据资料库、数据模型模式(基本模式、套件模式、整合模式)、行业数据模型。
度量指标
数据模型校验指标
不同视角理解数据有助于
- 格式化。简洁定义,规范结构,防止异常;
- 范围定义。帮助解释数据上下文的边界;
- 知识保留记录。为未来提供原始记录,助于更好理解组织等,助于理解变更带来的影响,可被重复利用,帮助了解环境中的数据结构,建模师帮助他人理解信息蓝图。
建模的数据类型
类别信息
对事物分类或分配事物类型的数据,如颜色、型号;
资源信息
实施操作流程所需的基本数据,如产品、客户。资源实体有时被称为参考数据;
业务事件信息
在操作过程中创建的数据,如客户订单。事件实体有时被认为交易型业务数据;
详细交易信息
通过销售系统,传感器生成,用于分析趋势。
此4类为静态数据,部分动态数据也可建模,如系统的方案。
数据模型组件
实体、关系、属性、域
实体
在数据建模之外,有别于其他事物的一个事物。大多数数据模型都包含基本相同的组件:实体、关系、属性和域;在数据建模里,实体是一个组织收集信息的载体,名词:谁、什么、何时、何地、为什么、怎么办、度量,一般使用矩形表示,矩形中间是实体名词。实体实例是特定实体的具体化或取值。实体别名因模型类型不同而不同。关系模型用“实体”,维度模型用“维度”和“事实表”,面向对象类型用“类”和“对象”,基本时间模型用“中心”、“卫星”、“链接”,关系型用“文件”、“节点”。实体别名在概念模型中成为“概念”、“术语”。逻辑模型中称为“实体”。物理模型中称为“表”。实体的定义属于核心元数据,高质量的数据定义具有清晰、准确、完整三个特征。
关系
关系是实体之间的关联,关系捕获概念实体之间的高级别交互、逻辑实体之间的详细交互、物理实体之间的约束。关系在维度模型中使用“导航路径”,在NoSQL中使用“边界”、“链接”。在概念和逻辑级别上用“关系”,在物理模型上使用“约束”、“引用”。关系在数建模图上表现为线条。
关系的基数
表明一个实体和其他实体参与建立关系的数量,有0,1,多;
关系的元数
关系中涉及实体的数目,有一元关系、二元关系、三元关系。一元关系:递归关系、自我引用关系;一对多:层级关系;多对多:网络关系或图表;二元关系:涉及两个实体的关系;三元关系:涉及三个实体的关系。
外键
在物理模型建模中表示关系
属性
定义、描述或度量实体某个方面的性质。属性可能包含域。属性在图中是在实体矩形内用列表描述。实体中属性的物理表现为表、视图、文档、图形或文件中的列、字段、标记或节点等。
标识符
是唯一标识实体实例的一个或多个属性的集合。可按键结构分为单一键、组合键、复合键、代理键;按照功能分为候选键、主键、备用键。
键的结构类型
单一键:唯一标识实体实例的一个属性;代理键:也是单一键,表的唯一标识符,通常是一个计数器,由系统自动生成,一个整数,含义与数值无关,技术性,不应对用户可见。组合键:一组或两个多个属性组成的集合,一起达到唯一标识一个实体实例;复合键:包含一个组织键和至少一个其他单一键,组合键或非键属性。
键的功能类型
超键:唯一标识实体实例的任何属性集;候选键:标识实体实例的最小属性集合,可能包含一个或多个属性,最小意味着候选键的任意子集都无法唯一标识实体实例。一个实体实例可以有多个候选键。候选键可以是业务键。业务键:业务专业人员用于检索、单个实体实例的一个或多个属性。业务键和代理键是互斥关系。主键:被选择为实体唯一标识符的候选键,备用键:是一个候选键,虽唯一,但没有被选为主键,可用于查找特定实体实例。
独立实体
其主键仅包含只属于该实体的属性,用矩形符号表示。非独立实体指其主键于少包含一个其他实体的属性,至少含有一个表示关系用圆角矩形表示。
域
某一属性可被赋予的全部可能取值。提供一种将属性特征标准化的方法。域中的所有值都为有效的值,不在域中的值被称为无效的值。属性不应当含有其制定的域意外的值。可以附加的规则对域进行限制,限制规则称为约束。域可以使用多种不同的方式定义。如:数据类型、数据格式、列表、范围、基于规则。
常见的6种建模方法有:关系建模、维度建模、面向对象建模、基于事实建模、基于时间建模和非关系型建模。三层模型仅适用于关系型数据库,而概念模型和逻辑型模型可适用于其他数据库。基于事实的建模方法与此类似。对于维度建模方法,三层模型仅适用于关系型数据库和多维数据库。面向对象的建模方法仅适用于关系型数据库和对象数据库。基于时间的建模方法属于物理数据建模技术,主要用于关系型数据库环境的数据仓库。NoSQL方法严重依赖于底层数据库结构(文档、列、图、键值),因此也属于物理数据建模技术。
关系模型设计的目的是精确的表达业务数据,消除冗余。包括信息工程法、信息建模的集成定义IDEF1X、巴克表示法和陈氏表示法,常见的信息工程法,采用三叉线(鸭掌模型)来表示基数;
维度建模为了优化海量数据的查询和分析。使用轴表示法Axis Notation来建模。此模型中实体之间的连线表示用于说明业务问题的导航路径。
事实表:事实表中的行对应特定的数值型度量值,如金额,事实表占据了数据中大部分空间。
维度表:表示业务的重要对象,主要留住文字描述,维度是事实表的入口点和链接,充当查询或报表约束的主要来源。高速反范式的。占总数的10%左右,各个维度在每一行都有一个唯一的标识符,主要是代理键和自然键,维度也有些属性,渐变类的维度根据变化的速率和类型来管理变化,主要变化有覆盖,新行,新列。
雪花模型:将星型模型中的平面、单表、维度结构规范为相应的组件层次结构或网络结构。
粒度:事实表中当行数据的含义或描述,是每行都有的详细信息,关键步骤之一;
一致性维度:基于整个组织,一致性事实:使用跨多个数据集市的标准化术语;
UML:统一建模语言;
基于事实的建模:对象角色建模ORM,ORM2,完全面向通信的建模FCO-IM;
数据拱顶:是一组支持一个或多个业务功能领域,面向细节、基于时间且唯一链接的规范化表,数据拱顶是一种混合方式。综合了第三范式和星型模型的优点;数据拱顶模型专门为满足企业数据仓库的需求而设计的。有3种类型的实体:中心表、链接表、卫星表。设计的重点是业务的功能领域,中心表代表业务主键,链接表定义了中心表之间的事务集成,卫星表定义了中心表主键的语境信息。
锚建模:适合信息结构和内容随时间发生变化的情况。提供用于概念建模的图形语言,能扩展处理临时数据 ,它有锚、属性、连接、节点四个基本建模概念,锚模拟的是实体和事件,属性模型锚的特征,连接表示了锚之间的关系,节点模拟共享的属性。
非关系型数据库:1.文档数据库;2.键值数据库;3.列数据库;4.图数据库。
数据模型级别:1.概念模型,企业的真实世界视图,代表企业当前的最佳模式或经营方式;2.外模式;3.内模式,数据的机器视图。
概念数据模型CDM:用一系列相关主题域的集合来描述概要数据需求。概念数据模型仅包括给定的领域和职能中基础和关键的业务实体,同时也给出实体与实体之间关系的描述。
逻辑数据模型LDM:对数据需求的详细描述,通常用于支持特定用法的语境中(如应用需求)。不受任何技术或特定实施条件。在关系逻辑数据模型中,通过添加属性来扩展。属性通过规范化技术被分配给实体,每个属性和它所在实体的主键之间都有非常强的关系。在很多情况下,维度型逻辑数据模型是维度型概念数据模型的完全属性透视图。关系型逻辑数据模型捕获业务流程的规则,而维度型逻辑数据模型捕获业务问题以确定业务流程的运行状况和性能。
物理数据模型PDM:描述一种详细的技术解决方案,通常以逻辑模型为基础,与某一类硬件、软件和网络工具相匹配,与特定的技术有关。
- 规范模型;物理模型的一个变种,用于描述系统之间的数据移动。该模型描述了在系统之间作为数据报或消息传递的数据结构。通常以实现重用和简化接口需求;
- 视图,虚拟表,提供了一种从多张包含或引用实际属性的表中查看数据的方法;
- 分区,拆分表的过程,执行分区是为了方便存档和提高检索性能。分区可以是垂直或水平;
- 逆规范化。
逆规范化:将符合范式规则的逻辑数据模型经过慎重考虑后,转换成一些带冗余数据的物理表,逆规范化处理由于存在数据冗余而引入了产生数据错误的风险。一般逆规范化只会提高数据库查询性能或提升用户安全操作。原因:1.提前组合来自多个其他表的数据,以避免代价高昂的运行时连接;2.创建更小的,预先过滤的数据副本,以减少昂贵的运行时计算和/或大型表的扫描;3.预先计算和存储昂贵的数据计算结果,以避免运行时系统资源竞争。在维度建模中,常成为折叠、合并。
如果每个维度都被折叠为一个结构,生成的数据模型称为星型模型;如果维度没有被折叠,则生成的模型为雪花模型。
规范化:是运用规则将复杂的业务转化为规范的数据结构的过程。目标是保证每个属性只在一个位置出现,以消除冗余或冗余导致的不一致性。规范化规则根据主键和外键整理属性。规范化规则可归类到不同规范层次,对每一个层次可应用更细的方式和规范性来搜索正确的主键和外键。每个级别由一个独立的范式组成,并且每个相继级别不需要包含以前的级别。通常要求达到第三范式即可。
第一范式:每个实体都有一个有效的主键,每个属性都依赖于主键;
第二范式:每个实体都有最小的主键,每个属性都依赖于完整的主键;
第三范式:每一实体都没有隐藏的主键,属性都不依赖于键值外的任何属性(仅依赖于完整的主键),模型的规范化通常要求达到第三范式;
建模活动:
- 规划数据建模;交付物有图表、定义、争议和悬而未决的问题、血缘关系;
- 建立数据建模:正向工程,逆向工程,数据建模是一个不断迭代的过程;
- 审核数据模型;
- 维护数据模型;
相关文章:

数据治理-数据建模和设计
定义 发现、分析和确定数据需求的过程,用一种称为数据模型的精确形式表示和传递这些数据需求。过程是循环迭代的,可能包括概念、逻辑和物理模型。 常见的6种数据模型 关系模式、多维模式、面向对象模式、事实模式、时间序列模式、NoSQL模式。根据描述详…...

博客系统(升级(Spring))(四)(完)基本功能(阅读,修改,添加,删除文章)(附带项目)
博客系统 (三) 博客系统博客主页前端后端个人博客前端后端显示个人文章删除文章 修改文章前端后端提取文章修改文章 显示正文内容前端后端文章阅读量功能 添加文章前端后端 如何使用Redis项目地点: 博客系统 博客系统是干什么的? CSDN就是一…...

常用的辅助类(必会)
1.CountDownLatch package com.kuang.add;import java.util.concurrent.CountDownLatch;//计数器 减法 public class CountDownLatchDemo {public static void main(String[] args) throws InterruptedException {//总数是6,必须要执行任务的时候,再使用…...

Java常用类之 String、StringBuffer、StringBuilder
Java常用类 文章目录 一、字符串相关的类1.1、String的 不可变性1.2、String不同实例化方式的对比1.3、String不同拼接操作的对比1.4、String的常用方法1.5、String类与其他结构之间的转换1.5.1、String 与基本数据类型、包装类之间的转换1.5.2、String 与char[]的转换1.5.3、…...
linux在所有文件中查找某一个字符串
linux在所有文件中查找某一个字符串 有时候我们需要在大量文件中查找某一个字符串,手工一个一个打开文件查找非常耗时,我们可以使用 find 和 xargs 两个命令来实现查找指定字符串。 命令详解 find <directory> -type f -name "*.c" |…...
WebSocket vs SSE: 实时数据推送到前端的选择与实现(详细)
Websocket和Server-Sent Events 对比推送数据给前端及各自的实现 二者对比WebSocket:Server-Sent Events (SSE):选择 WebSocket 还是 SSE: Websocket 实现使用原生 WebSocket API:使用 Netty 创建 WebSocket:总结和选择…...

Redis从入门到精通(二:数据类型)
数据存储类型介绍 Redis 数据类型(5种常用) string hash list set sorted_set/zset(应用性较低) redis 数据存储格式 redis 自身是一个 Map,其中所有的数据都是采用 key : value 的形式存储 数据类型指的是存储的数据…...

基于SSM的珠宝首饰交易平台
末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…...

4款视频号数据分析平台!
很多人在做视频号的时候就会有创作参考的需求,那么你们知道视频号中有哪些数据平台?今天就和大家来分享一下 接下来就总结一下视频号数据平台有哪些?排名不分前后。 1:视频号助手(channels.weixin.qq.com)…...

【系统架构】什么是集群?为什么要使用集群架构?
什么是集群?为什么要使用集群架构? 1.什么是集群?2.为什么要使用集群?2.1 高性能2.2 价格有效性2.3 可伸缩性2.4 高可用性2.5 透明性2.6 可管理性2.7 可编程性 3.集群的常见分类3.1 负载均衡集群3.2 高可用性集群3.3 高性能计算集…...
Java手写拓扑排序和拓扑排序应用拓展案例
Java手写拓扑排序和拓扑排序应用拓展案例 1. 算法思维导图 #mermaid-svg-o8KpEXzxukfDM8c9 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-o8KpEXzxukfDM8c9 .error-icon{fill:#552222;}#mermaid-svg-o8KpEXzxukfD…...

练习:使用servlet显示试卷页面
试卷页面代码 在浏览器输入如下地址: http://localhost/examPageServlet 效果如下:...

视频监控系统/视频云存储EasyCVR接入国标GB28181设备无法播放设备录像,是什么原因?
安防视频监控平台EasyCVR支持将部署在监控现场的前端设备进行统一集中接入,可兼容多协议、多类型设备,管理员可选择任意一路或多路视频实时观看,视频画面支持单画面、多画面显示,视频窗口数量有1、4、9、16个可选,还能…...

四叶草clover配置工具:Clover Configurator for Mac
Clover Configurator是一款Mac上的工具,用于配置和优化Clover引导加载器。Clover引导加载器是一种用于启动macOS的开源引导加载器。它允许用户在启动时选择操作系统和配置启动选项。 Clover Configurator提供了一个可视化的界面,让用户可以轻松地编辑和…...

计算机网络第四章——网络层(中)
提示:待到山花烂漫时,她在丛中笑。 文章目录 需要加头加尾,其中头部最重要的就是加了IP地址和MAC地址(也就是逻辑地址和物理地址)集线器物理层设备,交换机是物理链路层的设备,如上图路由器左边就…...

时序分解 | MATLAB实现基于小波分解信号分解分量可视化
时序分解 | MATLAB实现基于小波分解信号分解分量可视化 目录 时序分解 | MATLAB实现基于小波分解信号分解分量可视化效果一览基本介绍程序设计参考资料 效果一览 基本介绍 基于小波分解的分量可视化,MATLAB编程程序,用于将信号分解成不同尺度和频率的子信…...

VMware虚拟化环境搭建
虚拟化环境搭建 1. 什么是虚拟化环境?未来工作中在何处使用? 在网络安全中,虚拟化环境是一种技术,它将一个物理计算机系统划分成多个独立、可管理的虚拟环境。这种虚拟环境技术允许多个完全不同的操作系统、显示装置和软件在同一…...

Jenkins :添加node权限获取凭据、执行命令
拥有Jenkins agent权限的账号可以对node节点进行操作,通过添加不同的node可以让流水线项目在不同的节点上运行,安装Jenkins的主机默认作为master节点。 1.Jenkins 添加node获取明文凭据 通过添加node节点,本地监听ssh认证,选则凭…...

如何实现不同MongoDB实例间的数据复制?
作为一种Schema Free文档数据库,MongoDB因其灵活的数据模型,支撑业务快速迭代研发,广受开发者欢迎并被广泛使用。在企业使用MongoDB承载应用的过程中,会因为业务上云/跨云/下云/跨机房迁移/跨地域迁移、或数据库版本升级、数据库整…...

微服务保护-隔离
个人名片: 博主:酒徒ᝰ. 个人简介:沉醉在酒中,借着一股酒劲,去拼搏一个未来。 本篇励志:三人行,必有我师焉。 本项目基于B站黑马程序员Java《SpringCloud微服务技术栈》,SpringCloud…...
React 第五十五节 Router 中 useAsyncError的使用详解
前言 useAsyncError 是 React Router v6.4 引入的一个钩子,用于处理异步操作(如数据加载)中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误:捕获在 loader 或 action 中发生的异步错误替…...

RocketMQ延迟消息机制
两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数,对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后…...
Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务
通过akshare库,获取股票数据,并生成TabPFN这个模型 可以识别、处理的格式,写一个完整的预处理示例,并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务,进行预测并输…...
数据链路层的主要功能是什么
数据链路层(OSI模型第2层)的核心功能是在相邻网络节点(如交换机、主机)间提供可靠的数据帧传输服务,主要职责包括: 🔑 核心功能详解: 帧封装与解封装 封装: 将网络层下发…...
GitHub 趋势日报 (2025年06月08日)
📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...

如何在最短时间内提升打ctf(web)的水平?
刚刚刷完2遍 bugku 的 web 题,前来答题。 每个人对刷题理解是不同,有的人是看了writeup就等于刷了,有的人是收藏了writeup就等于刷了,有的人是跟着writeup做了一遍就等于刷了,还有的人是独立思考做了一遍就等于刷了。…...

Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

Golang——6、指针和结构体
指针和结构体 1、指针1.1、指针地址和指针类型1.2、指针取值1.3、new和make 2、结构体2.1、type关键字的使用2.2、结构体的定义和初始化2.3、结构体方法和接收者2.4、给任意类型添加方法2.5、结构体的匿名字段2.6、嵌套结构体2.7、嵌套匿名结构体2.8、结构体的继承 3、结构体与…...
libfmt: 现代C++的格式化工具库介绍与酷炫功能
libfmt: 现代C的格式化工具库介绍与酷炫功能 libfmt 是一个开源的C格式化库,提供了高效、安全的文本格式化功能,是C20中引入的std::format的基础实现。它比传统的printf和iostream更安全、更灵活、性能更好。 基本介绍 主要特点 类型安全:…...

热烈祝贺埃文科技正式加入可信数据空间发展联盟
2025年4月29日,在福州举办的第八届数字中国建设峰会“可信数据空间分论坛”上,可信数据空间发展联盟正式宣告成立。国家数据局党组书记、局长刘烈宏出席并致辞,强调该联盟是推进全国一体化数据市场建设的关键抓手。 郑州埃文科技有限公司&am…...