CBF Studio业务建模示例(2)-数据模型设计

2023-11-09 17:20

本文主要是介绍CBF Studio业务建模示例(2)-数据模型设计,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • 业务数据分析
    • 域/实例组模型定义
    • 实体数据模型定义
    • 关联数据模型定义
    • 行业标准和落地方法

业务数据分析


  简单分析下客户信息的构成要素,不论个人客户还是对公客户,都应该包含一个唯一标识号——客户号,以及客户信息开立的时间和是否有效的状态;然后才划分出个人客户信息和对公客户信息,两者间的业务属性是完全不一致的。因此我们将创建一个名为“基本客户信息”的内核实体数据模型,并且用客户号作为主键,客户号是必须满足某种格式的唯一标识号,因此定义为域数据;客户信息状态可选枚举值为“正常”、“睡眠”和“冻结”三个状态,因此设计为实例组数据。
  利用同样的数据分析方法,分析下个人客户信息应该包含哪些要素。比如说“法定名称”、“英文名称”等,这些属性需要定义为基本的字符串类型,“性别”、“客户类型”、“证件类型”等都应该设计为实例组数据,“证件生效时间”、“出生日期”等需要定义为日期类型。对公客户信息的业务数据分析交给读者。
  最后需要将业务数据进行归纳整理,按类别进行划分,并在适当的数据架构中定义。

域/实例组模型定义


  按业务分析结论,预先定义好域/实例组,下面以客户编号、客户状态为例。
客户编号
客户状态
  其中客户编号需要进行值校验,我们对其加锁,右键选择“设计ADML”。
值校验

  为化简示例,校验逻辑暂定为校验值长度,不满足13位长度的字符串则抛出错误信息。
校验值长度

实体数据模型定义


  按前文分析结论,需要为个人客户基本信息和对公客户基本信息创建一个衍生基类——客户基本信息,仅设置“客户编号”、“客户状态”和“创建时间”三个基本属性,并且设置客户编号为主键。
客户基本信息

  接下来分别定义个人客户信息和对公客户信息,两者均衍生自基本客户信息。为化简示例,仅以个人客户信息为例(暂列部分属性)。
个人客户基本信息(示意)

关联数据模型定义


  显然个人客户基本信息是不充分的,尚需要对其补充关联数据,如客户的联系方式信息,关系人信息等。以个人客户的联系信息为例。创建个人客户联系信息,并与个人客户基本信息进行数据关联,数据关系为“N:1”。
个人客户联系信息

  按同样的步骤创建关系人信息、非居民纳税信息、财务信息等,那么从个人客户基本信息的角度来看,完整的个人客户基本信息模型定义应该如下图所示。
个人客户基本信息

行业标准和落地方法


  先简单介绍下行业标准中对数据模型的定义:

  • A:可以用九大数据概念来描述所有金融服务信息;给B级的结构和内容定义了约束。
  • B:用层次化的概念术语来组织业务信息;不关心信息之间在具体应用中进行交互的业务规则;采用业务人员熟悉的语言。
  • C:用ER图描述业务信息;不考虑实施层面的约束,只维护逻辑视图;对各方面利益相关者的特有视图进行统筹整合。
  • C’:用ER图描述应用数据;考虑具体实施层面的约束,引入派生数据或去范式化的数据;允许可控的数据冗余
  • D:描述物理数据结构;考虑系统部署层面的约束。

  将标准翻译一下并结合CBF Studio工具上的使用可以描述为:

  • A级模型可以简单解释为即数据的基本概念,这些基本概念来自业务需求的描述,如“客户信息包含对私客户信息和对公客户信息,客户信息包含客户号,开立时间……”,那么从这段描述中我们可以整理出至少三个基本概念“对私客户信息”、“对公客户信息”以及“客户号”,其中“客户号”作为不可细分的数据定义,且必须要遵守既定的格式标准,那么它就应当被定义为数据标准,而“对私客户信息”和“对公客户信息”的数据应当持久化到数据库中,因此它们需要被定义为实体数据模型。
  • B级模型可以解释为对数据模型进行属性补充,补充的属性服务于业务设计。以上面的客户信息为例,“对私客户信息”和“对公客户信息”中均需要包含“客户号”属性,并且“对私客户信息”需要包含“客户姓名”属性,“对公客户信息”需要包含“企业名称”属性。其中“客户号”作为数据标准是可以被复用的,这也是行业标准中提倡的数据沉淀。
  • C级模型可以简单解释为除业务属性之外,还需要补充实体数据间的关系,如个人客户基本信息和个人客户联系人信息之间就存在着“1:N”的关系。
  • C’级模型简单解释为除业务设计必须的属性外,还允许补充应用设计所需的属性,这些属性仅为应用设计提供支撑,并且需要对数据模型进行模式化处理,将共有属性进行泛化处理,形成具有衍生关系的模型结构。回到“对私客户信息”和“对公客户信息”案例,两者均属于“客户信息”范畴,且均具有“客户号”作为唯一识别码,因此需要抽象出“客户信息”数据模型作为“对私客户信息”和“对公客户信息”的公共抽象层,也即两者均衍生自“客户信息”。
  • D级模型可以简单解释为将实体数据模型转换为可执行的数据库操作脚本,将模型设计落实到数据库设计中。这个过程CBF Studio已经自动实现了,无需用户关注。

  总结起来业务数据模型的设计基本上达到C’即可满足设计需求,并且数据模型的设计过程可大致划分为下述几个步骤:

  • 1.根据业务需求描述提取出基本模型(数据标准、实体数据模型);
  • 2.根据业务需求补充基本模型的业务属性;
  • 3.根据业务需求补充实体数据关系;
  • 4.使用数据范式以及模型泛化方法对数据模型进行衍生设计;
  • 5.根据应用设计需求补充应用属性。

  (更多关于可视化建模开发工具的介绍可以关注领驭框架(北京)软件有限公司的微信公众号和我自己的订阅号,或者到公司主页(www.eframesoft.com)查询。)
领驭框架软件
Java基友圈

这篇关于CBF Studio业务建模示例(2)-数据模型设计的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/377514

相关文章

pandas中位数填充空值的实现示例

《pandas中位数填充空值的实现示例》中位数填充是一种简单而有效的方法,用于填充数据集中缺失的值,本文就来介绍一下pandas中位数填充空值的实现,具有一定的参考价值,感兴趣的可以了解一下... 目录什么是中位数填充?为什么选择中位数填充?示例数据结果分析完整代码总结在数据分析和机器学习过程中,处理缺失数

Pandas统计每行数据中的空值的方法示例

《Pandas统计每行数据中的空值的方法示例》处理缺失数据(NaN值)是一个非常常见的问题,本文主要介绍了Pandas统计每行数据中的空值的方法示例,具有一定的参考价值,感兴趣的可以了解一下... 目录什么是空值?为什么要统计空值?准备工作创建示例数据统计每行空值数量进一步分析www.chinasem.cn处

利用Python调试串口的示例代码

《利用Python调试串口的示例代码》在嵌入式开发、物联网设备调试过程中,串口通信是最基础的调试手段本文将带你用Python+ttkbootstrap打造一款高颜值、多功能的串口调试助手,需要的可以了... 目录概述:为什么需要专业的串口调试工具项目架构设计1.1 技术栈选型1.2 关键类说明1.3 线程模

Python使用getopt处理命令行参数示例解析(最佳实践)

《Python使用getopt处理命令行参数示例解析(最佳实践)》getopt模块是Python标准库中一个简单但强大的命令行参数处理工具,它特别适合那些需要快速实现基本命令行参数解析的场景,或者需要... 目录为什么需要处理命令行参数?getopt模块基础实际应用示例与其他参数处理方式的比较常见问http

Android实现在线预览office文档的示例详解

《Android实现在线预览office文档的示例详解》在移动端展示在线Office文档(如Word、Excel、PPT)是一项常见需求,这篇文章为大家重点介绍了两种方案的实现方法,希望对大家有一定的... 目录一、项目概述二、相关技术知识三、实现思路3.1 方案一:WebView + Office Onl

Mysql用户授权(GRANT)语法及示例解读

《Mysql用户授权(GRANT)语法及示例解读》:本文主要介绍Mysql用户授权(GRANT)语法及示例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mysql用户授权(GRANT)语法授予用户权限语法GRANT语句中的<权限类型>的使用WITH GRANT

Java中Scanner的用法示例小结

《Java中Scanner的用法示例小结》有时候我们在编写代码的时候可能会使用输入和输出,那Java也有自己的输入和输出,今天我们来探究一下,对JavaScanner用法相关知识感兴趣的朋友一起看看吧... 目录前言一 输出二 输入Scanner的使用多组输入三 综合练习:猜数字游戏猜数字前言有时候我们在

html5的响应式布局的方法示例详解

《html5的响应式布局的方法示例详解》:本文主要介绍了HTML5中使用媒体查询和Flexbox进行响应式布局的方法,简要介绍了CSSGrid布局的基础知识和如何实现自动换行的网格布局,详细内容请阅读本文,希望能对你有所帮助... 一 使用媒体查询响应式布局        使用的参数@media这是常用的

Java使用SLF4J记录不同级别日志的示例详解

《Java使用SLF4J记录不同级别日志的示例详解》SLF4J是一个简单的日志门面,它允许在运行时选择不同的日志实现,这篇文章主要为大家详细介绍了如何使用SLF4J记录不同级别日志,感兴趣的可以了解下... 目录一、SLF4J简介二、添加依赖三、配置Logback四、记录不同级别的日志五、总结一、SLF4J

Java字符串操作技巧之语法、示例与应用场景分析

《Java字符串操作技巧之语法、示例与应用场景分析》在Java算法题和日常开发中,字符串处理是必备的核心技能,本文全面梳理Java中字符串的常用操作语法,结合代码示例、应用场景和避坑指南,可快速掌握字... 目录引言1. 基础操作1.1 创建字符串1.2 获取长度1.3 访问字符2. 字符串处理2.1 子字