数据治理-数据建模和设计
定义
发现、分析和确定数据需求的过程,用一种称为数据模型的精确形式表示和传递这些数据需求。过程是循环迭代的,可能包括概念、逻辑和物理模型。
常见的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…...
Debian系统简介
目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版ÿ…...
pam_env.so模块配置解析
在PAM(Pluggable Authentication Modules)配置中, /etc/pam.d/su 文件相关配置含义如下: 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块,负责验证用户身份&am…...
安卓基础(aar)
重新设置java21的环境,临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的: MyApp/ ├── app/ …...
Yolov8 目标检测蒸馏学习记录
yolov8系列模型蒸馏基本流程,代码下载:这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中,**知识蒸馏(Knowledge Distillation)**被广泛应用,作为提升模型…...
SQL慢可能是触发了ring buffer
简介 最近在进行 postgresql 性能排查的时候,发现 PG 在某一个时间并行执行的 SQL 变得特别慢。最后通过监控监观察到并行发起得时间 buffers_alloc 就急速上升,且低水位伴随在整个慢 SQL,一直是 buferIO 的等待事件,此时也没有其他会话的争抢。SQL 虽然不是高效 SQL ,但…...
使用LangGraph和LangSmith构建多智能体人工智能系统
现在,通过组合几个较小的子智能体来创建一个强大的人工智能智能体正成为一种趋势。但这也带来了一些挑战,比如减少幻觉、管理对话流程、在测试期间留意智能体的工作方式、允许人工介入以及评估其性能。你需要进行大量的反复试验。 在这篇博客〔原作者&a…...
第一篇:Liunx环境下搭建PaddlePaddle 3.0基础环境(Liunx Centos8.5安装Python3.10+pip3.10)
第一篇:Liunx环境下搭建PaddlePaddle 3.0基础环境(Liunx Centos8.5安装Python3.10pip3.10) 一:前言二:安装编译依赖二:安装Python3.10三:安装PIP3.10四:安装Paddlepaddle基础框架4.1…...
高效的后台管理系统——可进行二次开发
随着互联网技术的迅猛发展,企业的数字化管理变得愈加重要。后台管理系统作为数据存储与业务管理的核心,成为了现代企业不可或缺的一部分。今天我们要介绍的是一款名为 若依后台管理框架 的系统,它不仅支持跨平台应用,还能提供丰富…...
Axure零基础跟我学:展开与收回
亲爱的小伙伴,如有帮助请订阅专栏!跟着老师每课一练,系统学习Axure交互设计课程! Axure产品经理精品视频课https://edu.csdn.net/course/detail/40420 课程主题:Axure菜单展开与收回 课程视频:...
构建Docker镜像的Dockerfile文件详解
文章目录 前言Dockerfile 案例docker build1. 基本构建2. 指定 Dockerfile 路径3. 设置构建时变量4. 不使用缓存5. 删除中间容器6. 拉取最新基础镜像7. 静默输出完整示例 docker runDockerFile 入门syntax指定构造器FROM基础镜像RUN命令注释COPY复制ENV设置环境变量EXPOSE暴露端…...
