# 一、数学模型、数据模型、业务模型和领域模型
我们在落地数据中台、海量数据仓库以及数据湖解决方案的过程中经常遇上一些专业术语非常容易混淆,比如数学模型、数据模型、业务模型和领域模型等,以下是其简单区别:
1. 数学模型(Mathematical Model):数学模型是使用数学来将一个系统简化后予以描述。数学模型广泛应用在自然科学(如物理学、化学、生物学、宇宙学)、工程学科(如计算机科学,人工智能)、以及社会科学(如经济学、心理学、社会学和政治科学)上。科学家和工程师用模型来解释一个系统,研究不同组成部分的影响,以及对行为做出预测。常见的模型包括动力系统、概率模型、微分方程或赛局模型等等。描述不同对象的模型可能有相同的形式,同一个模型也可能包含了不同的抽象结构。【1】
数学模型通常是由关系与变量组成,通常包括线性与非线性、静态与动态、显式与隐式、离散与连续、确定性与概率性(随机性)、演绎/归纳与漂移等不同分类。数据模型也就是我们通常所说的统计学中的数据函数、微分方案、概率模型等。
2. 数据模型(Data Model):在软件工程中,数据模型是定义数据如何输入和与输出的一种模型。其主要作用是为信息系统提供数据的定义和格式。数据模型是数据库系统的核心和基础,现有的数据库系统都是基于某种数据模型而创建起来的。【2】数据模型也就是我们通常所说的存储在数据库中对象(通常是表、视图等对象)的定义与描述,具体包括:
1)数据结构:储存在数据库中对象类型的集合,作用是描述数据库组成对象以及对象之间的联系。
2)数据操作:指对数据库中各种对象实例允许执行的操作的集合,包括操作及其相关的操作规则。
3)数据完整性约束条件:指在给定的数据模型中,数据及其联系所遵守的一组通用的完整性规则,它能保证数据的正确性和一致性。
3. 业务模型(Business Model):业务模型通常通常是我们基于机器学习/深度学习建模工具或者相关类库,将输入数据通过可视化的界面或程序API来调用统计学中的数据挖掘算法实现组件构建的预测模型(Predictive modelling)。
4. 领域模型(Domain Model): 领域模型业内有着各种各样的定义, 在数据仓库与BI中,我们一般对领域模型是这样理解的: 通过对企业全局业务进行梳理和理解,明确将企业全局业务划分为N个数据域,并明确每个数据域下有哪些业务过程,业务过程与哪些维度相关,并定义每个数据域下的业务过程和维度。可以将数据域看做是一个概念模型,用于以可视化的方式描述系统中各个实体及其之间的关系。比如在银行行业中,可以将业务分为九大领域:
二、元数据管理
在最开始的时候,元数据(Meta Data)是指描述数据的数据,通常由信息结构的描述组成,随着技术的发展元数据内涵有了非常大的扩展,目前包括:UML模型、数据交易规则、用JAVA,NET,C++等编写的APIs、业务流程和工作流模型、产品配置描述和调优参数以及各种业务规则、术语和定义等[1]。元数据通常分为业务元数据、技术元数据和操作元数据等。业务元数据主要包括业务规则、定义、术语、术语表、运算法则和系统使用业务语言等,主要使用者是业务用户。技术元数据主要用来定义信息供应链(Information Supply Chain,ISC)各类组成部分元数据结构,具体包括各个系统表和字段结构、属性、出处、依赖性等以及存储过程,函数,序列等各种对象。操作元数据是指应用程序运行信息,比如其频率、记录数以及各个组件的分析和其它统计信息等。本章主要讲述元数据管理的方法和模型比如本体论(Ontology)、元模型、元-元模型、公共仓库元模型(CWM)、元数据管理成熟度模型以及元数据管理策略、元数据集成体系结构等。更多内容请参考我之前写的文章:海量数据仓库:元数据管理分享
三、在数据仓库建立数据模型的方案论
业内主流的数据仓库方法论主要有两种:Kimball和Inmon。Kimball模式是由数据仓库和商务智能领域的权威专家Ralph Kimball博士提出的,其在《数据仓库工具箱(The Data Warehouse Toolkit)》一书中提出了Kimball维度建模模式。Kimball维度建模以来自前方分析决策需求为驱动构建数据模型,重点关注如何帮助用户快速完成分析需求,同时具有较好的大规模复杂查询的响应性能。Inmon关系模型模式是由数据仓库之父比尔·恩门(Bill Inmon)提出来的,主张构建以数据仓库为来源的数据集市。也就是说,Inmon关系模型模式中所有数据集市的数据都来自于面向主题的数据仓库数据存储。
Kimball模式是从底向上的,是从OLTP数据源到数据集市再到数据仓库的一种快速开发方法。Inmon模式是从顶向下的,会首先构建可以满足绝大多数需求的数据仓库,尝试构建满足不同业务预期的数据库表,并从各个数据源将数据进行ETL装入到数据仓库中。在面向某个业务场景需要构建数据集市时,则通过ETL将所需数据从数据仓库中装载进来。
四、数据仓库模型设计
如上图所示,以银行数据仓库模型设计为例,我们大体需要经过以下几个步骤:
- 制定元数据管理策略,整理数据规范,梳理各个系统的数据源以及其具体的业务对象、数据库对象等;
- 确定使用的数据仓库建模方法论,比如是选择Kimball维度建模 还是Inmon关系模型;
- 确定数据治理的规则,具体包括代码统一转换、数据清洗规则、数据质量地图、数据增量复制频率与同步等;
- 根据业务知识和各个源系统数据库建模特点, 确定数据模型域,并进一步明确数据子类划分;
- 根据数据仓库整体设计,划分操作型数据存储ODS、汇总域、分析域、公共维度模型域、数据服务域等不同的数据领域;
- 通过工具设计逻辑模型和物理模型,并将其落地到具体的离线分布式海量数据仓库中。
五、相关引用
【1】 来自维基百科关于数学模型的定义与介绍
【2】 :来自维基百科数据模型的定义与介绍