写点什么

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

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

评论 4 条评论

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

基于 Seedream 4.0 模型的多图融合应用开发实战(下)

北京中暄互动广告传媒有限公司

5项指标助您评估YashanDB数据库的性能

数据库砖家

7个步骤确保YashanDB数据库的顺利迁移

数据库砖家

Apache Doris 与 ClickHouse:运维与开源闭源对比

SelectDB

数据库 数据分析 实时数仓 Clickhouse apache doris

Aniyomi扩展开发指南与Google Drive集成方案

qife122

android Aniyomi

如何通过Python SDK在Collection中进行相似性检索

DashVector

人工智能 数据库 AI 大模型

5个最常见的YashanDB数据库配置误区

数据库砖家

7个步骤更好地维护您的YashanDB环境

数据库砖家

文心快码Comate3.5S更新,用多智能体协同做个健康管理应用

Comate编码助手

AI 编程 文心快码 编程智能体 文心快码3.5S AI编程助手

5个影响YashanDB数据库性能的关键因素

数据库砖家

5个有效方法提升YashanDB数据库的安全性

数据库砖家

6个常见错误避免在YashanDB数据库管理中出现

数据库砖家

在AI技术快速实现创意的时代,挖掘新需求成为核心竞争力——某知名笔记应用主题需求洞察

qife122

用户体验 需求分析

5种方式提升YashanDB数据库的查询速度

数据库砖家

1688图片搜索API详解

tbapi

1688API 1688图片搜索接口 1688拍立淘api

俄罗斯合作伙伴 Mobx,用 NocoBase 交付多场景方案

NocoBase

数据库 开源 项目管理 CRM 无代码

5个原因选择YashanDB支持您的企业增长

数据库砖家

5个主要因素影响YashanDB的选择

数据库砖家

6个理由为什么选择YashanDB数据库

数据库砖家

6种实用的方法提升YashanDB数据库的可用性

数据库砖家

7个步骤轻松掌握YashanDB的使用技巧

数据库砖家

0代码,用n8n一键打通微信、钉钉与数据库,效率提升500%

测试人

【RFID隧道机品牌评测】斯科信息 VS 其他品牌性能对比

斯科信息

斯科信息 RFID隧道机 RFID隧道机品牌

鸿蒙应用开发从入门到实战(二十二):使用Stack实现层叠布局

程序员潘Sir

鸿蒙 HarmonyOS

5种方式提升YashanDB的使用体验

数据库砖家

6个常见误区关于YashanDB的使用与维护

数据库砖家

不做“赛博棉花工”!TRAE 帮我实现数据处理自由

北京中暄互动广告传媒有限公司

一文读懂更换域名注册商的步骤和常见问题

防火墙后吃泡面

使用 Visual Studio 快速创建 NuGet 程序包并发布到 NuGet 官网

追逐时光者

.net 微软 Visual Studio 2022

7个常见问题解答关于YashanDB的误区

数据库砖家

极氪汽车×火山引擎:AI数据专家“上岗”,注入“分钟级”数据洞察力

北京中暄互动广告传媒有限公司

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