数据架构的重要构件之一是数据模型,当然从数据架构的视角来说的数据模型是指企业级数据模型。本篇文章更多是讨论如何设计和管理数据模型,此处的数据模型是泛指在组织中通过数据建模的过程,来发现、分析和确定数据需求范围,并用于表示和传达这些数据需求的成果。不仅仅是指企业级数据模型,也包括系统级或应用级的数据模型。
01概述
首先,我们明确什么是数据模型及数据建模:
数据建模是发现、分析和确定数据需求范围,然后以称为数据模型的精确形式表示和传达这些数据需求的过程。数据建模是数据管理的重要组成部分。
数据模型描述了组织的数据资产并促使组织理解其数据资产。
数据模型根据组织的了解或组织的期望来描述组织的数据。数据模型包含一组带有文本标签的符号,这些符号试图可视化地表示传递给数据建模者的数据需求。
数据建模的常用方案(模式)会有:关系、维度、面向对象、基于事实、基于时间和NoSQL建模。
数据模型的组件有实体、关系、事实、键和属性等。
关于数据模型和设计的语义图如下所示:
数据建模的业务驱动因素可以通过数据模型对于实现有效管理数据的重要性来说明,数据模型可以:
提供有关数据的通用词汇表
捕获并记录有关组织数据和系统的明确知识
在项目期间充当主要的沟通工具
提供自定义、集成甚至替换应用程序的起点
那么建模的目标会有什么呢,从下图我们可以了解到:
02基本概念
建模的数据类型
可以通过四种主要的数据类型来进行建模:
类别信息:用于对事物进行分类和分配类型的数据。例如,按市场类别或业务部门分类的客户;按颜色,型号,尺寸等分类的产品;订单按打开还是关闭状态分类。
资源信息:所需资源的基本概要执行诸如产品,客户,供应商,设施,组织和客户等操作流程。在IT专业人员中,资源实体有时称为参考数据。
业务事件信息:在进行业务流程时创建的数据。示例包括客户订单,供应商发票,现金提取和业务会议。在IT专业人员中,事件实体有时被称为事务业务数据。
详细交易信息:详细交易信息通常是通过销售系统(商店或在线)产生的。它也可以通过社交媒体系统,其他Internet交互(点击流等)以及机器中的传感器产生的,这些传感器可以是船只和车辆的一部分,工业组件或个人设备(GPS,RFID,Wi-Fi等)。与业务事件信息的使用方式类似,此类详细信息可以被汇总,用于导出其他数据并进行趋势分析。这类数据(大容量和/或快速变化的数据)通常称为大数据。
这些类型指的是“静态数据”。例如,还可以在包括协议的系统方案以及消息传递和基于事件的系统的方案中对动态的数据进行建模。
数据模型组件:实体、关系、属性、域。这些概念估计大部分人特别是对于数据模型有所了解的人都较熟悉。我们在这里只是将其中一些容易被忽略或者有些特点的概念说明一下。
实体的别名(用下面的表格来说明实体还可被称为其它名称:实体类型、 实体实例)
实际上实体的别名也可能跟建模模式相关,在关系建模中,经常就称为实体,而在维度建模中,会称为维度表和事实表,在面向对象建模中,会称为类和对象,在基于时间建模通过使用集线器、卫星表和链接表,在NoSQL建模中会使用文档或节点。
另外实体的别名也会数据模型的详细级别(层次)相关,如在概念数据模型中称为概念实体,在逻辑数据模型中称为逻辑实体,在物理数据模型中称为物理表。
关于关系,我们在这里用几张图形中说明一下关系的分类,关系在数据模型中会分为一元关系、二元关系和三元关系。
关于键,在数据模型中也是很重要的,如我们常提到的主键、外键、代理键等。数据模型中的键可以根据键的构造(简单、复合、替代)和功能(候选、主键、备用)来分类。在构造型的键中我们会分为单键、复合键、代理键(也是单键的一种);在功能类型的键中我们将分为候选键、主键和备用键,主键和备用键也是候选键。一般情况下,主键是代理键时,实体中同时也会有备用键,这时候的备用键实际上就是业务键。
数据建模模式
前面我们提到了常用的建模模式会有六种:关系,维度,面向对象,基于事实,基于时间和NoSQL建模。下面我们来了解一下这六种建模模式之间的区别会有哪些(示例、表示法、建模层级)
下面是一些表示法的示意图:
03数据建模活动
在DAMA中,数据建模活动主要是数据建模计划、构建数据模型、查看数据模型、维护数据模型组成。
在数据建模计划中,可交付成果包括:图表(模型图)、定义、当前问题和未解决问题、数据血缘。图表是解决了建模的详细程度(概念、逻辑或物理)和建模模式的表述;定义保障了数据模型的精度要求;数据血缘将协助数据建模人员对数据需求有非常深刻的了解并确定源属性;关于当前问题和未解决问题的文档,将会联合建模小组外相关人员来负责解决问题。
构建数据模型主要是考虑正向工程和逆向工程的建模。说明建模是一个经常反复的过程。
查看数据模型就是将对数据模型进行质量控制。
维护数据模型,让数据模型与其他元数据相似,需要根据需求的变化而对数据模型进行更新。而且也需要保障数据模型不同级别间的一致性(如逻辑模型与物理模型的一致性)。
数据建模工具
我们需要知道就是哪些工具属于数据建模所需的:数据建模工具(特指构建数据模型的工具,当然也有可能包括其它建模相关辅助功能)、血缘工具、数据分析工具、元数据存储库、数据模型模式、行业数据模型。
数据模型治理
数据模型与设计质量管理
数据模型和数据库设计应在企业的短期需求和长期需求之间保持合理的平衡。可以通过下面几个方面来保障数据模型和设计质量:
1、制定数据建模和设计标准
标准数据建模和数据库设计可交付成果的列表和描述
适用于所有数据模型对象的标准名称,可接受的缩写和不常见单词的缩写规则的列表
所有数据模型对象的标准命名格式的列表,包括属性和列类词
创建和维护这些可交付成果的标准方法的列表和说明
数据建模和数据库设计角色和职责的列表和描述
数据建模和数据库设计中捕获的所有元数据属性的列表和描述,包括业务元数据和技术元数据。例如,准则可以设置数据模型捕获每个属性的血统的期望。
元数据质量期望和要求
有关如何使用数据建模工具的准则
准备和领导设计评审的准则
数据模型版本化指南
阐述不鼓励的做法
2、审查数据模型和数据设计质量
项目团队应该对概念数据模型,逻辑数据模型和物理数据库设计进行需求审查和设计审查。审查会议的议程应包括审查初始模型(如有),对模型所做的更改以及任何其他已考虑和拒绝的选项,以及新模型与现有模型或架构标准的符合程度的项目。
在未经批准的审查中,建模者必须重新设计以解决问题。如果存在建模者无法自行解决的问题,则最终的发言权应由模型反映的系统所有者给出。
3、管理数据模型的版本控制和集成
数据模型和其他设计规范需要仔细的变更控制,就像需求规范和其他SDLC交付品一样。
数据建模指标
可以用来提供数据模型验证示例的一种方法是Data ModelScorecard®,它提供11种数据模型质量指标:构成记分卡的十个类别中的每个类别,以及所有十个类别的总体分数(Hoberman ,2015)。
关于数据模型和设计的内容本文将基本内容表达出来,但是根据个人的经验,如果想更好地进行数据建模并提升个人建模水平,最终达到数据建模师的水平,还是需要去学习相关理论并进行大量的练习及实践。