截至目前,企业级架构建模系列已经有了9篇不同角度的介绍。今天,我们主要谈的是重构系统的数据建模方法。
为什么要谈重构系统的数据建模?这里重点突出的是“重构”两个字。因为大型企业在多年的发展过程中,企业内的IT系统也已经建设完毕,但随着业务的发展,IT系统现有的架构设计,已经不能够满足企业近期或者未来发展的业务、技术和监管等要求。在这样的情况下,需要进行系统重构,重构方案有两种选择:
1.自上而下:自上而下的数据建模方法,可阅读企业级架构建模系列的第一篇文章《企业级架构建模系列之一“如何进行企业级数据建模”》。
2.自下而上:根据系统业务、技术现状,自下而上抽象建模。
本文主要描述第二种方法。
在介绍方法论前,先对企业级数据模型做一个简要介绍,企业级数据模型模型层次分为5级,层级结构如下:
1.A模型(顶层架构)
A模型,也叫主题域模型。该模型提供了一个通过业务主题组织企业数据模型的结构,使数据模型更加易于管理和维护。
主题域根据企业整体数据情况设计,一般数量为10个左右。
2.B模型+C模型(业务逻辑)
B模型,也叫业务概念模型。该模型是在A模型的主题域下,进行细化、分类,以便更好地承接C模型。
C模型,也叫业务逻辑模型。该模型详细表达不同业务概念下的业务逻辑。C模型建模方法采用范式建模,目的是消除冗余,更精确地表达业务逻辑。
重构系统的数据建模中,主要建模对象是C模型。
3.C'模型+D模型(技术开发)
C'和D模型面向技术开发,是特定软件和硬件的C模型实施方案。
在开始建模之前,应首先向建模团队成员做建模方法论的基本培训,以及明确不同阶段的产出物。建模流程分为3个阶段:建模前调研、存量库表分析、实体属性关系建立,如下图:
各阶段产出物如下:
1)建模前调研:需求文档、系统详设等资料。
2)存量库表分析:实体清单、属性清单。
3)实体属性关系建立:存量库表分析清单、实体清单、属性清单、ER图、域清单、数据字典规范。
下面逐个阶段展开介绍:
1.建模前调研
建模前的调研,主要包括重构规划、系统概况、系统资料3个方面:
1)系统重构规划:了解重构的时间计划、重构原因(企业战略层面、部门规划层面、应用痛点层面等)、人员配置等。建模是需求驱动的,应首先明确需求范围。
2)系统基本概况:了解系统职能、系统上下游、系统主管业务部门等。
3)系统资料:收集系统详细设计说明书、系统操作手册、需求说明书等等。在开始建模前,着手于系统现有资料,做充分的学习准备。
2.存量库表分析
系统中的库表数量众多,但不是所有库表都具备业务分析价值,所以在进入分析之前,需要对库表进行分类、定义。在维度建模的理论中,物理库表分为事实表和维度表,其中事实表又分为事务、周期快照、累计快照三类。此类库表设计方式,一般用于数据仓库、数据集市等分析型系统中。
C模型采用范式建模的方法,建模对象主要是业务系统,业务系统的种类多样,其技术方案也更为多样,目前没有严谨的物理表分类方案。在建模实施的过程中,可由建模人员和系统技术方共同定义、维护物理库表分类准则,为后续计划建模的系统做铺垫。
下面提供的表分类原则供参考,其中业务主要档案表和主要档案附属表是建模主要分析对象:
1)实体定义
实体,是有业务需求管理和维护而来的抽象或具体的视图,是保存信息的基本数据概念,是业务流程操作的最小单元。属性,则是实体相关业务的特征。
实体属性分为两种类型:
1>标识行属性:唯一标识实体发生值的键值。
2>描述性属性:描述实体发生制的非唯一特征。
实体可以从横向和纵向两个方面划分类型,从横向上可分为三种类型:
1>基础实体:也称核心实体,一般代表业务场景中的主体,比如:合约、账户、客户等。
2>从属实体:基础实体的扩展信息,依赖于基础实体。标识符必须包含其从属基础实体的标识符。
3>关系实体:用于建立实体间的关系。出于模型管理上的考虑,大部分的关系实体在B模型中实现。
从纵向可分为两种类型:
1>父类实体:父类实体可根据分类器选择,向下拆分子类实体。在C模型中,一般是基础实体作为父类实体。
2>子类实体:子类实体继承了其父类实体的全部属性,但可以包含不属于父类的属性,但子类实体的标识符必须继承其父类。
2)属性抽取
这里的属性,指的是除标识符外的描述性属性。同样,存量库表的字段也不全是具有价值的,实体属性只关注关键业务字段。可对库表字段做如下分类:
3.实体属性关系建立
在实体关系建立前,首先需要对实体及属性做标准化命名规范,即按数据标准方法论对其进行命名标准化。
上文提到,实体的标识符是指实体属性当中,标识性的属性,它代表了实体的每个发生值,且具有唯一性。实体和属性的关系建立,本质上是描述性属性和标识符的关系连接。需要从业务的角度分析,描述性属性的生命周期是跟随哪个标识符变化的。实体是树,标识符是树根,描述性属性是叶子。如下图示意,如果合同号变为无效状态,则该合同对应的状态、金额、有效期等,均应失效。
4.补充完善
自此,已经完成了对存量库表的分析及建模工作。后续需要针对重构中新的业务诉求,对模型加以调整、补充。