数据模型:数字化转型的核心能(néng)力

2020/04/29      2128 文(wén)章来源:DG数据治理(lǐ) 原作者:龚菲


我们可(kě)以先看一下生活中的模型的例子,房屋平面图、地图等都是很(hěn)好的模型的示例。

对于下图的房屋平面图来说,我们基本看一眼就能(néng)知道这是一个三室两厅两卫的房子,有(yǒu)一个玄关和一个阳台,哪里是门,哪里是墙,哪里是窗户,每个房间的平米数是多(duō)少,全部都用(yòng)各种符号表示得一清二楚。

对于地图来说,我们也知道绿色的部分(fēn)一般都表示公园,蓝色的部分(fēn)表示湖(hú),黄色的粗線(xiàn)表示高速公路…


1 生活中的“模型”(图片来源与网络)

数据模型是用(yòng)于描绘、沟通数据需求的一组简单易懂、标准的,并且便于计算机实现标准符号的集合

我们都知道数据库很(hěn)强大,但数据在其中的关系却错综复杂,成千上万个表通过各种关系或约 束互连以形成复杂的结构。没有(yǒu)数据模型,利益相关者很(hěn)难看到现有(yǒu)数据库的结构、理(lǐ)解关键概念,当需要描述数据需求的时候,也很(hěn)难准确地表达出来,这也是数据模型很(hěn)重要的一个最主要的原因。

下图是一个简单数据模型的示例:


2 一个关于學(xué)生-出勤-课程的数据模型

(图片来源:数据建模经典教程,Steve Hoberman


与实物(wù)模型不同,数据模型不是等比例模拟出来的真实事物(wù),而是一组能(néng)表示数据需求、数据结构的符号集合

在房屋平面图中,中间有(yǒu)条線(xiàn)的矩形表示窗户,用(yòng)直角扇形表示门。在数据模型中,用(yòng)矩形框或圆角矩形表示实體(tǐ),用(yòng)線(xiàn)以及線(xiàn)上的符号表示实體(tǐ)之间的关系、基数或约束,用(yòng)写在線(xiàn)上的词或词组表示标签,所有(yǒu)的这些符号组成了各种各样的数据模型


建筑设计师在盖房之前通过房屋平面图描绘建筑需求,建筑工人就可(kě)以看着这些平面图来盖房子。房子盖完之后还可(kě)以把房屋平面图展示给客户,这样即使客户不去现场看实體(tǐ)房就可(kě)以大概了解房屋结构。数据模型也是专门设计出来描绘数据需求,给技术实现人员来建造数据库,并且实现数据需求无障碍沟通的“图纸”。


模型之所以可(kě)以让人们实现快速沟通,是因為(wèi)足够标准并且简单易懂。自古以来,无论是盖房子还是造火箭,都不可(kě)能(néng)事先把庞大复杂的实物(wù)拿(ná)过来给大家介绍,相反只需要通过一些简单标准的符号,就可(kě)以表示清楚具體(tǐ)的意思。一旦读者看到标准的模型语言,他(tā)们能(néng)马上能(néng)开始讨论这个模型是否准确,而不需要浪费任何额外的时间去探讨建模用(yòng)的符号是什么意思


数据模型从一个抽象层次描述了数据的静态特征、动态行為(wèi)和约束条件,最终是要通过技术实现人员转化成能(néng)被计算机理(lǐ)解的程序语言,并且在数据库中实现出来的。所以在设计数据模型的时候,必须将便于计算机实现作為(wèi)模型设计的原则之一。


企业中经常会出现以下问题:

1. 不同技术背景和业務(wù)经验的各类人员在讨论数据需求时缺少一种有(yǒu)效的沟通工具,在讨论中经常因為(wèi)对各种符号理(lǐ)解不一致,导致沟通效率低下,不同观点之间很(hěn)难协调,达成共识。

2. 当系统出现故障或发现数据问题时,没有(yǒu)可(kě)以观察系统的整體(tǐ)视角,技术人员对当前数据库内的状况全然不知,导致系统问题排查困难,数据问题无从下手。

3. 不同部门对业務(wù)规则的理(lǐ)解不一致,关于“客户”、“产品”等关键概念含义多(duō)种多(duō)样,数据库中同名不同义,同义不同名现象随处可(kě)见,极大地影响了数据的识别和应用(yòng)。

4. ......

数据模型作為(wèi)不同技术背景和业務(wù)经验的各类人员有(yǒu)效沟通数据需求的重要媒介,可(kě)以帮助描述与沟通数据需求、增加数据的精确性与易用(yòng)性、降低系统的维护成本并增加数据可(kě)重用(yòng)性,极大地减少了以上问题出现的频率。


1

在企业中,来自不同部门、具有(yǒu)不同技术背景的业務(wù)人员、业務(wù)分(fēn)析师、数据分(fēn)析师、建模人员、架构师、数据库设计人员、开发人员等各类人员经常需要共同讨论数据问题与数据需求。数据模型作為(wèi)一种理(lǐ)想的沟通工具,可(kě)以快速使相关人员达成共识,跳过对符号的理(lǐ)解而直接讨论深层需求。


数据模型中的精确定义為(wèi)数据提供了一个规范的结构,数据建模过程本身是发现、分(fēn)析、界定数据需求的过程,可(kě)以帮助解释数据上下文(wén)的边界,减少数据访问和数据存储时发生数据异常的可(kě)能(néng)性。通过说明数据中的结构和关系,数据模型使数据更易于使用(yòng)。


数据模型有(yǒu)助于我们从整體(tǐ)视角了解业務(wù)与数据现状,并有(yǒu)助于人们分(fēn)析目前可(kě)能(néng)存在的业務(wù)与数据问题、分(fēn)析修改现有(yǒu)数据结构是否可(kě)行和每次修改可(kě)能(néng)会带来的影响,降低维护成本。另外,数据模型以相对标准精确的形式保留了关于企业系统或项目的记忆,这些记忆可(kě)以作為(wèi)可(kě)重用(yòng)性资产供未来项目使用(yòng),从而降低构建新(xīn)应用(yòng)程序的成本。


作為(wèi)不同技术背景与业務(wù)经验的各类人员有(yǒu)效沟通数据需求的重要媒介,数据模型越来越成為(wèi)数字化转型的核心能(néng)力。数据模型有(yǒu)助于人们描述与沟通数据需求、增加数据的精确性与易用(yòng)性、降低系统的维护成本并增加可(kě)重用(yòng)性。


[1]DAMA International.DAMA-DMBOK: Data Management Body of Knowledge (2nd Edition)[M].Technics Publications:BASKING RIDGE, NEW JERSEY,2017:123.

[2]Steve Hoberman.Data Modeling Made Simple: A Practical Guide for Business and IT Professionals[M].Technics Publications:BASKING RIDGE, NEW JERSEY,2009