写点什么

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

  • 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:5315275

评论 4 条评论

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

狂刷三遍398道java最新MySQL笔记后,我四面阿里研发部,成功定级P7

做梦都在改BUG

Java MySQL 数据库

线程池是如何执行的?任务太多会怎样?

做梦都在改BUG

Java 线程池

财务标准化建设进程中,财务共享能起到什么作用?

用友BIP

财务共享

如何用ReadWriteLock实现一个通用的缓存中心?

华为云开发者联盟

Java 开发 华为云 华为云开发者联盟 企业号 5 月 PK 榜

艾媒咨询 | 2023年中国信创产业发展白皮书

亚信AntDB数据库

数据库 AntDB AntDB数据库

用友BIP新一代全球司库,重塑企业资金管理新价值

用友BIP

全球司库

财务共享五大价值助力央企构建世界一流财务管理体系

用友BIP

财务共享

基于 Log 的通用增量 Checkpoint

Apache Flink

大数据 flink 实时计算

探索 PlanetIX:解读区块链游戏运营的奥秘

Footprint Analytics

区块链游戏 web3 Planet IX

Hybrid Shuffle 测试分析和使用建议

Apache Flink

大数据 flink 实时计算

开源边缘计算项目【FabEdge v0.8.0】配置connector公开端口操作说明

BoCloud博云

边缘计算 容器网络 FabEdge #开源项目体验 边缘网络

今天又和Redis超时杠上了

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 5 月 PK 榜

阿里一面凉凉,幸获内推华为技术四面,offer到手!

程序知音

Java java面试 Java进阶 八股文 Java面试八股文

旅游景区如何寻找共享电单车厂家

共享电单车厂家

共享电动车厂家 景区共享电单车 共享电动车投放 景区共享电动车

精准快速搜索文件:Find Any File 激活版

真大的脸盆

Mac 办公效率 文件搜索 搜索工具 搜索文件

阿里P8大佬的1800页计算机基础知识总结与操作系统,太强了!

做梦都在改BUG

Java 程序员 操作系统

如何进行存储容量规划?

ScaleFlux

存储成本 数据压缩 企业级SSD NVMeSSD

MegEngine 使用小技巧:如何解读 MegCC 编译模型几个阶段 Pass 的作用

MegEngineBot

深度学习 编译器 MegEngine Pass

火山引擎DataLeap的Catalog系统搜索实践(一):背景与功能需求

字节跳动数据平台

「ACL 2023」:火山语音团队多篇论文中选,涉多方向技术创新突破

科技热闻

商业地产研策如何搜集数据​

MobTech袤博科技

水泥行业全球第一企业怎么进行财务共享建设?

用友BIP

财务共享

牛客网 2023 最新 1100道 Java 面试题来袭,面面俱到,太全了!

架构师之道

java面试

空降攻略!一文带你玩转2023开放原子全球开源峰会

开放原子开源基金会

开源 开放原子开源基金会 攻略 开放原子全球开源峰会

艾媒金榜|2023年中国信创企业百强榜

亚信AntDB数据库

数据库 AntDB AntDB数据库

怎样才能让业财融合真正为企业数智化转型起到推动作用?

用友BIP

财务共享

软件设计中你考虑过重试了吗?

做梦都在改BUG

Java 软件设计 重试机制

活动回顾丨首期阿里云 Serverless 技术创新实战营上海开讲(含 PPT 下载)

Serverless Devs

ScaleFlux企业级SSD通过VMware IOVP认证

ScaleFlux

vmware 固态硬盘 企业SSD 存储解决方案

详解RocketMQ 顺序消费机制

华为云开发者联盟

后端 开发 华为云 华为云开发者联盟 企业号 5 月 PK 榜

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