领域模型图(数据架构/ER图)

简介: 数据架构核心输出为ER图,包含实体、关系与属性。通过四色原型法进行领域建模:红色MI表示时标事件,绿色PPT为参与方-地点-物品,黄色Role是角色,蓝色DESC为描述信息。以风控系统为例,从业务流程提炼MI,构建PPT实体,补充Role与DESC,最终提取出ER图,明确实体间一对一、一对多、多对多关系,形成清晰的数据模型。(238字)

数据架构重要的输出是数据-实体关系图,简称 ER 图。ER 图中包含了实体(数据对象)、关系和属性 3 种基本成分。ER 图可以用来建立数据模型。如何准确的建立产品的数据模型,需要分解出业务需要什么样的数据。数据域的分解过程是站在业务架构的基础上,对业务域进行模型分析的过程。说起业务建模,大家很快会想到领域模型这个概念。这里的思路是通过领域建模来逐步提取系统的数据架构图。
说到领域模型,这里采用四色原型法进行业务模型的抽象。在进行四色模型分析前,我们先了解下四色模型的一些基本概念。四色模型,顾名思义是通过四种不同颜色代表四种不同的原型。
● Moment-Interval Archetype 时标性原型
○ 表示事物在某个时刻或某一段时间内发生的。使用红色表示,简写为 MI.
● Part-Place-Thing Archetype 参与方-地点-物品原型.
○ 表示参与扮演不同角色的人或事物。使用绿色表示。简写为 PPT。
● Role Archetype 角色原型
○ 角色是一种参与方式,它由人或组织机构、地点或物品来承担。使用黄色表示。简写为 Role。
● Description Archetype 描述原型
○ 表示资料类型的资源,它可以被其它原型反复使用,并为其它原型提供行为。使用蓝色表示。简写为 DESC。
以风控系统为例,进行领域建模的过程如下:
1.关键流程
在进行业务建模前,首先需要梳理出业务的流程,这一步在业务架构分解环节中已经完成。按照四色建模法的原则,将业务流程图进行一点改造。在原来的流程图上,将流程涉及的事务和角色添加进来。
改造之后的流程图如下:

2.领域模型骨干
从业务流中,我们可以清晰的定义出 Moment-Interval Archetype (时标性原型),流程中的每个节点符合 MI 的定义,即事物在某个时间段内发生。在 MI 的定义过程中,一种方法是通过名词+动词进行定义。那么,风控的 MI 即为:数据采集、规则 &模型设置、风险识别、告警通知、风险处置、风险分析(MI 使用红色表示)。
在得到骨干之后,我们需要丰富这个模型,使它可以更好的描述业务概念。这里需要补充一些实体对象,通常实体对象包括:参与方、地点、物(party/place/thing)。
Part-Place-Thing Archetype(参与方-地点-物品原型):业务对象、规则、模型、异常风险、通知、异常事件、分析报告(PPT 使用绿色表示)。
领域模型骨干图,如下:

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

4.领域模型描述
最后将模型的描述信息添加进来,模型的描述信息中涵盖模型的具体属性。这些描述信息对于后面数据库设计有很大的影响。模型描述使用蓝色标注,如下图:

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

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

相关文章
|
程序员 数据库 开发者
值得收藏!如何快速画出一幅漂亮的架构图
这篇文章总结了常用的架构图类型,可以借鉴笔者提供的模板,快速地产出符合业务需要的架构图。
162872 95
Halcon找圆系列(1)如何检测圆形
Halcon找圆系列(1)如何检测圆形
3155 0
Halcon找圆系列(1)如何检测圆形
|
6月前
|
JSON 监控 数据可视化
基于n8n的全链路测试自动化实战
本文介绍如何利用开源工作流工具n8n实现全链路测试自动化。通过可视化流程设计,结合HTTP请求、数据库操作与断言验证,构建电商订单等复杂场景的端到端测试。n8n支持数据驱动、错误重试、报告生成与多系统集成,兼具灵活性与可扩展性,为测试工程师提供全新高效的自动化解决方案。
|
存储 小程序 前端开发
知识付费小程开发案例
随着移动互联网的发展,知识付费成为趋势,开发知识付费小程序成为企业和个人抓住机遇的重要方式。本文档提供了从需求分析到持续优化的全流程指南,涵盖技术选型、设计开发、测试上线及运营策略,旨在帮助开发者构建高效、安全的知识付费平台。
|
编解码 IDE KVM
Happy coding,明基RD280U使用分享
最近尝试了明基的专业编程显示器 `RD280U`,28寸4K分辨率,3:2屏幕比例,适合编程。支持硬件级防蓝光、抗反射面板,接口丰富,支持KVM。自动亮度调节、编码模式和软件辅助功能,使其在编程体验上表现出色。如果你对专业编程显示器有需求,这无疑是一个不错的选择。
795 12
|
前端开发 容器
CSS【详解】对齐 (含文本垂直对齐,文本水平对齐、单行文本垂直居中、多行文本垂直居中、6 种方案块级元素水平垂直居中 、7 种方案图片水平垂直居中、文本自适应对齐、图标和文本对齐,图片和文本对齐等)
CSS【详解】对齐 (含文本垂直对齐,文本水平对齐、单行文本垂直居中、多行文本垂直居中、6 种方案块级元素水平垂直居中 、7 种方案图片水平垂直居中、文本自适应对齐、图标和文本对齐,图片和文本对齐等)
1545 0
|
存储 移动开发 缓存
多个WKWebView页面的cookie不共享问题及解决方案
多个WKWebView页面的cookie不共享问题及解决方案
534 0
|
存储 Rust 安全
Rust 动态数组Vec基本概念及其用法
Rust中的Vec是一种动态数组,它可以在运行时自动调整大小。Vec是Rust标准库的一部分,提供了一种高效、安全的方式来处理大量数据。基于堆内存申请的连续动态数据类型,其索引、压入(push)、弹出(pop) 操作的时间复杂度为 O(1)。
813 0
Rust 动态数组Vec基本概念及其用法