写点什么

架构设计实践五部曲(三):从领域模型提取数据架构

  • 2019-09-26
  • 本文字数:1540 字

    阅读完需:约 5 分钟

架构设计实践五部曲(三):从领域模型提取数据架构

数据架构重要的输出是数据-实体关系图,简称 ER 图。ER 图中包含了实体(数据对象)、关系和属性 3 种基本成分。ER 图可以用来建立数据模型。如何准确的建立产品的数据模型,需要分解出业务需要什么样的数据。数据域的分解过程是站在业务架构的基础上,对业务域进行模型分析的过程。说起业务建模,大家很快会想到领域模型这个概念。这里的思路是通过领域建模来逐步提取系统的数据架构图。


说到领域模型,这里采用四色原型法进行业务模型的抽象。在进行四色模型分析前,我们先了解下四色模型的一些基本概念。


四色模型,顾名思义是通过四种不同颜色代表四种不同的原型。


  1. Moment-Interval Archetype 时标性原型


表示事物在某个时刻或某一段时间内发生的。使用红色表示,简写为 MI.


  1. Part-Place-Thing Archetype 参与方-地点-物品原型.


表示参与扮演不同角色的人或事物。使用绿色表示。简写为 PPT。


  1. Role Archetype 角色原型


角色是一种参与方式,它由人或组织机构、地点或物品来承担。使用黄色表示。简写为 Role。


  1. Description Archetype 描述原型


表示资料类型的资源,它可以被其它原型反复使用,并为其它原型提供行为。使用蓝色表示。简写为 DESC。


还是以风控系统为例,进行领域建模的过程如下:

1.关键流程

在进行业务建模前,首先需要梳理出业务的流程,这一步在业务架构分解环节中已经完成。按照四色建模法的原则,将业务流程图进行一点改造。在原来的流程图上,将流程涉及的事务和角色添加进来。


改造之后的流程图如下:



图 1

2.领域模型骨干

从业务流中,我们可以清晰的定义出 Moment-Interval Archetype (时标性原型),流程中的每个节点符合 MI 的定义,即事物在某个时间段内发生。在 MI 的定义过程中,一种方法是通过名词+动词进行定义。那么,风控的 MI 即为:数据采集、规则 &模型设置、风险识别、告警通知、风险处置、风险分析(MI 使用红色表示)。


在得到骨干之后,我们需要丰富这个模型,使它可以更好的描述业务概念。这里需要补充一些实体对象,通常实体对象包括:参与方、地点、物(party/place/thing)。


Part-Place-Thing Archetype(参与方-地点-物品原型):业务对象、规则、模型、异常风险、通知、异常事件、分析报告(PPT 使用绿色表示)。


领域模型骨干图,如下:



图 2

3.领域模型角色

在领域模型骨干的基础上,需要把参与的角色(role)带进来。Role 使用黄色表示。如下图:



图 3

4.领域模型描述

最后将模型的描述信息添加进来,模型的描述信息中涵盖模型的具体属性。这些描述信息对于后面数据库设计有很大的影响。


模型描述使用蓝色标注,如下图:



图 4

5.提取 ER 图

领域模型构建完成之后,在此基础上,我们已经能够初步的掌握整个系统的数据模型。其中绿色的 Part-Place-Thing Archetype(参与方-地点-物品原型),可以用来表示 ER 图中的实体模型。红色的 Moment-Interval Archetype(时标性原型),可以用来表示 ER 图中的关系。对领域模型架构图进行提炼,得到如下图:



图 5


实体(Entity)和联系(RelationShip)存在一定的关联关系,一般存在 3 种约束性关系: 一对一约束、一对多约束和多对多约束。将这些约束性关系表现在 ER 图中,用于展现实体与实体间具体的关联关系,最终输出 ER 图。(考虑保证 ER 的简洁性,这里并没有把模型的属性画进来)



图 6


最终一种好的 ER 图需要具备以下原则:


  • 同一实体在同一个 ER 图中只能出现一次

  • 先设计局部 ER 图,再把每一个局部 ER 图综合起来,生成总体的 ER 图。


作者简介


胡斌,菜鸟网络技术专家,目前负责菜鸟风控系统的建设。曾在淘宝技术部先后负责卖家平台、商家运营等领域。在大规模分布式应用、大数据、架构领域有多年的开发和管理经验。

延展阅读

架构设计实践五部曲(一):架构与架构图


架构设计实践五部曲(二):业务架构与产品架构设计实践


2019-09-26 20:5315536

评论 4 条评论

发布
用户头像
通表示ER图那儿没看懂,模型类型、规则类型和处置人从哪儿来的,异常事件、异常风险又去哪儿了?
2021-05-23 21:22
回复
模型和规则的治理,通常需要一个类型来管理,就产生了模型类型和规则类型。规则识别出来的风险,在配置规则时候应该需要对每种风险都配置好处理人。
2021-11-07 11:52
回复
用户头像
提取er图那一步还没有看懂
2020-11-05 15:12
回复
用户头像
大神,能不能再多讲讲数据建模的方法及知识
2020-11-05 15:10
回复
没有更多了
发现更多内容

我们又更新了一波大厂面经!

王中阳Go

Go 后端 面试题 面经 大厂

打造次世代分析型数据库(八):高效数据导入导出方案

腾讯云大数据

数据泄露定义以及危害简单讲解

行云管家

大数据 数据安全 数据泄露 数据运维 数据安全运维

数据集成实现以及平台安装部署入门

RestCloud

ETL 数据集成

华锐技术何志东:证券核心交易系统分布式改造将迎来规模化落地阶段

PingCAP

MySQL 数据库 分布式 TiDB

于璠访谈录 | AI 框架应该和而不同?

开源雨林

开源 ai框架 昇思MindSpore AI for Science

科技快讯丨浪潮海岳inBuilder荣获两项开源大奖

inBuilder低代码平台

目标识别不出来,根据指南配置了环境变量也没有用

矩视智能

深度学习 机器视觉

Pixelmator Pro for Mac(图像编辑软件) v3.4.3完美直装版

mac

Pixelmator Pro 苹果mac Windows软件 图像编辑软件

TCL实业积极践行ESG理念,绿色设计引领全球

科技热闻

低代码平台技术分享官丨系统集成系列之服务发布

inBuilder低代码平台

集成

外贸独立站怎么运营?零基础小白必看!

九凌网络

枚举

TiDB 企业版全新升级,平凯数据库核心特性全解读

PingCAP

数据库 TiDB 平凯数据库

HarmonyOS师资培训:赋能万千开发者,助力鸿蒙生态繁荣

最新动态

Gradle 新功能,你不能不知道

树上有只程序猿

Gradle

DAPP币安链代币合约质押挖矿系统开发源码

l8l259l3365

第16期 | GPTSecurity周报

云起无垠

简单聊聊远程协同运维定义以及优势-行云管家

行云管家

运维 远程系统 远程协同 协同运维

信创发展 再添一城!广州亚信技术携AntDB数据库入围广州市软件和信创产业链重点企业代表名单

亚信AntDB数据库

AntDB数据库

MySQL 到 TiDB:vivo 的 Hive Metastore 横向扩展之路

PingCAP

MySQL 数据库 TiDB

NFTScan | 10.23~10.29 NFT 市场热点汇总

NFT Research

NFT NFTScan nft工具

轻松理解 Transformers(2):Attention部分

Baihai IDP

人工智能 深度学习 AI Transformer 白海科技

众行远,华为携手多家数字教育集团加速培养鸿蒙生态人才

最新动态

TiDB x 汉口银行丨分布式数据库应用实践

PingCAP

MySQL 数据库 分布式 银行 TiDB

内置视图联动查看器,实现数据关联分析

观测云

可观测性 关联分析 #数据分析

架构设计实践五部曲(三):从领域模型提取数据架构_架构_胡斌_InfoQ精选文章