数据模型设计必读方法论!很实用

数据架构的重要构件之一是数据模型,当然从数据架构的视角来说的数据模型是指企业级数据模型。本篇文章更多是讨论如何设计和管理数据模型,此处的数据模型是泛指在组织中通过数据建模的过程,来发现、分析和确定数据需求范围,并用于表示和传达这些数据需求的成果。不仅仅是指企业级数据模型,也包括系统级或应用级的数据模型。

01概述

首先,我们明确什么是数据模型及数据建模:

数据建模是发现、分析和确定数据需求范围,然后以称为数据模型的精确形式表示和传达这些数据需求的过程。数据建模是数据管理的重要组成部分。

数据模型描述了组织的数据资产并促使组织理解其数据资产。

数据模型根据组织的了解或组织的期望来描述组织的数据。数据模型包含一组带有文本标签的符号,这些符号试图可视化地表示传递给数据建模者的数据需求。

数据建模的常用方案(模式)会有:关系、维度、面向对象、基于事实、基于时间和NoSQL建模。

数据模型的组件有实体、关系、事实、键和属性等。

关于数据模型和设计的语义图如下所示:
在这里插入图片描述
数据建模的业务驱动因素可以通过数据模型对于实现有效管理数据的重要性来说明,数据模型可以:

提供有关数据的通用词汇表
捕获并记录有关组织数据和系统的明确知识
在项目期间充当主要的沟通工具
提供自定义、集成甚至替换应用程序的起点
在这里插入图片描述
那么建模的目标会有什么呢,从下图我们可以了解到:
在这里插入图片描述

02基本概念

建模的数据类型

可以通过四种主要的数据类型来进行建模:

类别信息:用于对事物进行分类和分配类型的数据。例如,按市场类别或业务部门分类的客户;按颜色,型号,尺寸等分类的产品;订单按打开还是关闭状态分类。

资源信息:所需资源的基本概要执行诸如产品,客户,供应商,设施,组织和客户等操作流程。在IT专业人员中,资源实体有时称为参考数据。

业务事件信息:在进行业务流程时创建的数据。示例包括客户订单,供应商发票,现金提取和业务会议。在IT专业人员中,事件实体有时被称为事务业务数据。

详细交易信息:详细交易信息通常是通过销售系统(商店或在线)产生的。它也可以通过社交媒体系统,其他Internet交互(点击流等)以及机器中的传感器产生的,这些传感器可以是船只和车辆的一部分,工业组件或个人设备(GPS,RFID,Wi-Fi等)。与业务事件信息的使用方式类似,此类详细信息可以被汇总,用于导出其他数据并进行趋势分析。这类数据(大容量和/或快速变化的数据)通常称为大数据。

这些类型指的是“静态数据”。例如,还可以在包括协议的系统方案以及消息传递和基于事件的系统的方案中对动态的数据进行建模。
在这里插入图片描述
数据模型组件:实体、关系、属性、域。这些概念估计大部分人特别是对于数据模型有所了解的人都较熟悉。我们在这里只是将其中一些容易被忽略或者有些特点的概念说明一下。

实体的别名(用下面的表格来说明实体还可被称为其它名称:实体类型、 实体实例)

在这里插入图片描述

实际上实体的别名也可能跟建模模式相关,在关系建模中,经常就称为实体,而在维度建模中,会称为维度表和事实表,在面向对象建模中,会称为类和对象,在基于时间建模通过使用集线器、卫星表和链接表,在NoSQL建模中会使用文档或节点。

另外实体的别名也会数据模型的详细级别(层次)相关,如在概念数据模型中称为概念实体,在逻辑数据模型中称为逻辑实体,在物理数据模型中称为物理表。

关于关系,我们在这里用几张图形中说明一下关系的分类,关系在数据模型中会分为一元关系、二元关系和三元关系。
在这里插入图片描述
关于键,在数据模型中也是很重要的,如我们常提到的主键、外键、代理键等。数据模型中的键可以根据键的构造(简单、复合、替代)和功能(候选、主键、备用)来分类。在构造型的键中我们会分为单键、复合键、代理键(也是单键的一种);在功能类型的键中我们将分为候选键、主键和备用键,主键和备用键也是候选键。一般情况下,主键是代理键时,实体中同时也会有备用键,这时候的备用键实际上就是业务键。

数据建模模式

前面我们提到了常用的建模模式会有六种:关系,维度,面向对象,基于事实,基于时间和NoSQL建模。下面我们来了解一下这六种建模模式之间的区别会有哪些(示例、表示法、建模层级)

在这里插入图片描述
在这里插入图片描述

下面是一些表示法的示意图:
在这里插入图片描述
在这里插入图片描述

03数据建模活动

在DAMA中,数据建模活动主要是数据建模计划、构建数据模型、查看数据模型、维护数据模型组成。

在数据建模计划中,可交付成果包括:图表(模型图)、定义、当前问题和未解决问题、数据血缘。图表是解决了建模的详细程度(概念、逻辑或物理)和建模模式的表述;定义保障了数据模型的精度要求;数据血缘将协助数据建模人员对数据需求有非常深刻的了解并确定源属性;关于当前问题和未解决问题的文档,将会联合建模小组外相关人员来负责解决问题。

构建数据模型主要是考虑正向工程和逆向工程的建模。说明建模是一个经常反复的过程。
在这里插入图片描述
查看数据模型就是将对数据模型进行质量控制。

维护数据模型,让数据模型与其他元数据相似,需要根据需求的变化而对数据模型进行更新。而且也需要保障数据模型不同级别间的一致性(如逻辑模型与物理模型的一致性)。

数据建模工具

我们需要知道就是哪些工具属于数据建模所需的:数据建模工具(特指构建数据模型的工具,当然也有可能包括其它建模相关辅助功能)、血缘工具、数据分析工具、元数据存储库、数据模型模式、行业数据模型。

数据模型治理

数据模型与设计质量管理

数据模型和数据库设计应在企业的短期需求和长期需求之间保持合理的平衡。可以通过下面几个方面来保障数据模型和设计质量:

1、制定数据建模和设计标准

标准数据建模和数据库设计可交付成果的列表和描述
适用于所有数据模型对象的标准名称,可接受的缩写和不常见单词的缩写规则的列表
所有数据模型对象的标准命名格式的列表,包括属性和列类词
创建和维护这些可交付成果的标准方法的列表和说明
数据建模和数据库设计角色和职责的列表和描述
数据建模和数据库设计中捕获的所有元数据属性的列表和描述,包括业务元数据和技术元数据。例如,准则可以设置数据模型捕获每个属性的血统的期望。
元数据质量期望和要求
有关如何使用数据建模工具的准则
准备和领导设计评审的准则
数据模型版本化指南
阐述不鼓励的做法
2、审查数据模型和数据设计质量

项目团队应该对概念数据模型,逻辑数据模型和物理数据库设计进行需求审查和设计审查。审查会议的议程应包括审查初始模型(如有),对模型所做的更改以及任何其他已考虑和拒绝的选项,以及新模型与现有模型或架构标准的符合程度的项目。

在未经批准的审查中,建模者必须重新设计以解决问题。如果存在建模者无法自行解决的问题,则最终的发言权应由模型反映的系统所有者给出。

3、管理数据模型的版本控制和集成

数据模型和其他设计规范需要仔细的变更控制,就像需求规范和其他SDLC交付品一样。

数据建模指标

可以用来提供数据模型验证示例的一种方法是Data ModelScorecard®,它提供11种数据模型质量指标:构成记分卡的十个类别中的每个类别,以及所有十个类别的总体分数(Hoberman ,2015)。
在这里插入图片描述

关于数据模型和设计的内容本文将基本内容表达出来,但是根据个人的经验,如果想更好地进行数据建模并提升个人建模水平,最终达到数据建模师的水平,还是需要去学习相关理论并进行大量的练习及实践。

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

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

相关文章

分享Java NET Python三大技术下AutojsPro7云控代码

引言 有图有真相,那短视频就更是真相了。下面是三大语言的短视频。 Java源码版云控示例: Java源码版云控示例在线视频 Net源码版云控示例: Net源码版云控示例在线视频亚丁号-知识付费平台 支付后可见 扫码付费可见 Python源码版云控示例&…

彻底理解操作系统与内核的区别!

通用底盘技术 Canoo公司有一项核心技术专利,这就是它们的通用电动底盘技术,长得是这个样子,非常像一个滑板: 这个带轮子、有电池、能动的滑板已经包含了一辆车最核心的组件,差的就是一个外壳。这个看起来像滑板的东西…

基于SpringBoot的大学生体质测试管理系统

基于SpringBoot的大学生体质测试管理系统的设计与实现~ 开发语言:Java数据库:MySQL技术:SpringBootMyBatisVue工具:IDEA/Ecilpse、Navicat、Maven 系统展示 主页 管理员界面 教师界面 学生界面 摘要 大学生体质测试管理系统是一…

Flink的ResourceManager详解(一)

ResourceManager 总结 一、概述 1、ResourceManager 管理 Flink 集群中的计算资源,计算资源主要来自 TaskManager 组件。 2、如果集群采用 Native【本地模式】部署,则 ResourceManager 会动态地向集群资源管理器申请 Container 并启动TaskManager&…

python+django医患档案电子病历管理系统7ld2o

本课题使用Python语言进行开发。代码层面的操作主要在PyCharm中进行,将系统所使用到的表以及数据存储到MySQL数据库中,方便对数据进行操作本课题基于WEB的开发平台 1.运行环境:python3.7/python3.8。 2.IDE环境:pycharmmysql5.7; …

ArcGIS笔记5_生成栅格文件时保存报错怎么办

本文目录 前言Step 1 直接保存到指定文件夹会报错Step 2 先保存到默认位置再数据导出到指定文件夹 前言 有时生成栅格文件时,保存在自定义指定的文件夹内会提示出错,而保存到默认位置则没有问题。因此可以通过先保存到默认位置,再数据导出到…

linux进程间通讯--信号量

1.认识信号量 方便理解:信号量就是一个计数器。当它大于0能用,小于等于0,用不了,这个值自己给。 2.特点: 信号量用于进程间同步,若要在进程间传递数据需要结合共享内存。信号量基于操作系统的 PV 操作&am…

家居行业如何打破获客困局?2023重庆建博会现场,智哪儿AI营销第一课给出了答案

10月12日-14日,2023中国(重庆)建筑及装饰材料博览会(简称:2023中国重庆建博会)正在重庆国际博览中心如火如荼地进行。「智哪儿」携手2023中国重庆建博会主办方共同主办的《2023家居行业AI营销第一课&#x…

【vscode编辑器插件】前端 php unity自用插件分享

文章目录 一篇一句前言前端vuegitphpunity后端其他待续完结 一篇一句 “思考是最困难的工作,这也许是为什么很少有人这样做。” - 亨利福特(Henry Ford) 前言 无论是什么语言,我都会选择使用vscode进行开发,我愿称v…

4K壁纸小程序源码 全内容自动采集

全内容自动采集 4K壁纸小程序源码,带流量主。用的都是一个接口,不过这个不知是谁改的,成了LSP版,是真色啊,专搜小姐姐。 4K壁纸,静态壁纸,头像等都有保留,界面广告位很多&#xff0c…

qt 实现pdf阅读器

文章目录 概要方案一方案二一、介绍二、编译三、用法本项目代码 概要 在qt程序中,要实现PDF文件浏览,从网上目前找到了两种解决方案,本文主要介绍下着两种方案和适用性。 方案一 这种方法是从https://github.com/develtar/qt-pdf-viewer-l…

idea-配置不显示某个文件

例如, 在编辑处末尾添加 target; (注意使用分号分割) 则不会在项目位置出现该目录

Confluence 自定义展示页面

1. 概述 Confluence 作为知识库可通过JS脚本方式&#xff0c;根据登录用户或用户组进行前端页面的自定义 2. 实现方式 Confluence →管理→自定义HTML 嵌入对应JS脚本&#xff0c;示例如下 <script type"text/javascript">jQuery(#footer).html(<div>…

22款奔驰S450L升级主动式氛围灯 提升安全提示 又好看

主动式氛围灯有263个可多色渐变的LED光源&#xff0c;营造出全情沉浸的动态光影氛围。结合智能驾驶辅助系统&#xff0c;可在转向或检测到危险时&#xff0c;予以红色环境光提示&#xff0c;令光影艺术彰显智能魅力。配件有6个氛围灯&#xff0c;1个电脑模块。Xjh15863 了解更多…

Django REST Framework完整教程-RESTful规范-序列化和反序列数据-数据视图

文章目录 1.简介及安装2.案例模型2.1.创建模型2.2.安装mysql必要组件2.3.管理后台转中文2.4.启动后台 3.数据序列化4.RESTful规范4.1.协议、域名和版本4.2.uri(统一资源标识符)4.3.查增删改4.4.过滤信息&#xff08;Filtering&#xff09;4.5.状态码&#xff08;Status Codes&a…

保姆级教程:百度AI简单使用

1.进入AI对话界面 随便提个问题 这里我选择了程序猿小助手 文心一言网站 https://yiyan.baidu.com/welcome 文心一言可以做什么 与人对话互动&#xff0c;回答问题&#xff0c;协助创作&#xff0c;高效便捷地帮助人们获取信息、知识和灵感。 参考截图

相似性搜索:第 6 部分--LSH 森林的随机投影

一、说明 相似性搜索是一个问题&#xff0c;给定一个查询&#xff0c;目标是在所有数据库文档中找到与其最相似的文档。 在数据科学中&#xff0c;相似性搜索经常出现在 NLP 领域、搜索引擎或推荐系统中&#xff0c;其中需要检索最相关的文档或项目以进行查询。有多种不同的方法…

2023年中国熔盐储能装机量、新增装机量及行业投资规模分析[图]

熔盐储能是一种可以传递能量、长时间&#xff08;6-8h&#xff09;、大容量储能的技术路径&#xff0c;作为传热介质可以实现太阳能到热能的转换&#xff0c;作为储能介质可以实现将热能和电能的双向转换&#xff0c;可以很好的适应和解决以上两大矛盾。因此&#xff0c;熔盐储…

Linux/Ubuntu 安装 Java运行环境

linux下安装Java运行环境 1、下载安装包 .tar.gz 先在官网下载 JDK 点击这里 在这里要选择对应的 JDK 版本&#xff0c;一般我们目前选择JDK8 点击这里 2、在 /usr/local/ 目录下创建Java文件夹 cd /usr/local/ mkdir java3、将下载的文件通过FTP程序上传到刚刚创建的Java文…

Java对象数组练习

定义数组存储三个商品对象&#xff0c;商品的属性&#xff1a;id&#xff0c;名字&#xff0c;价格&#xff0c;库存&#xff0c;创建三个商品对象&#xff0c;并把商品对象存入到数组中 public class Goods {private String id;private String name;private double price;pri…