数据建模与业务建模
无论是企业信息系统还是web网站,各种大小程序的原始功能都是对数据的操作,可以看做是某一群体对一些数据的各种需求造就了一个又一个的程序,或者说是软件系统。
回头想想,第一刻起我们就开始和数据打交道了,新项目开始的时候我们先要做什么呢?用第三方依赖搭个框架,设计目录结构吗?不对,这些都是技术储备,应该是在项目启动之前就完成的了。项目启动的一刻我们在做的工作总是对数据的分析。
我们要分析数据结构,理清数据关系,确定数据类型,还要兼顾数据量的大小,现在至少不用考虑数据的存储媒介了,因为十有八九都要用数据库,除了极少数情况应该不会有人选择自己编写文件系统进行数据的存储了吧?
上
面的这些步骤就叫做数据建模,搞程序的同志们肯定相当轻车熟路了,从拿到用户的第一个表单开始,在ER图中拖出第一个Table,我们就开始进行数据模型
的设计,设计好的数据模型将固化在某一种媒介中(基本都是数据库),应用系统的用途就是为用户提供一个界面,让他们对固化在媒介中(一般都是数据库)的数
据进行操作。
怎
么才算是良好的数据模型呢?首先它要满足数据固化的基本要求,所有必须的数据都必须能够保存在数据库里,其次这些数据的结构应该是容易被应用程序操作的,
无论是增删查改、数据校验、数据安全、搜索查询、统计汇总、数据导出等等功能都是可以实现的,而且效率不能太低。如果能够实现以上两条,基本就可以算是一
个良好的数据模型了,这样用户就可以借助应用程序对数据库中自己所需的数据进行管理、操作。
但
是还有一个问题,是否只要提供了这些功能就足以满足用户的要求了呢?从上面列出的功能中我们就可以了解到,无论是CRUD增删查改,还是查询统计,无非是
“更新(update)”,“查询(Read)”,“校验(Check)”三个基本操作的实现,这些操作都是基于静态数据的单步操作,应用程序只是在数据
外面简单包装了薄薄的一层,用户面对的和要操作管理的依然是后面整个数据模型。
这个问题可以归结到:我们解决了用户想要什么(What),但是并没有了解用户需要怎么做(How)。
数
据建模解决了数据如何存储,存储的格式,以及怎么获得已经存储的数据的问题,数据建模完成了数据固化和检索的任务,数据建模归根结底是对静态数据的建模,
给你一张ER图,你很容易就可以了解到数据的类型、数据的关系,但是你无法从这些数据格式数据关系中弄明白客户到底需要利用这些数据完成什么样的任务。不
清楚这些数据从何而来,到何处去,也就决定了你编写的应用系统只能包含一个录入界面,一个查询界面,无法再为最终用户提供更多的功能,因为你手中只有静止
不动的数据而已。
因此,为了让应用系统可以肩负起更多的功能,我们需要在业务模型的基础之上进行业务建模,比如一个文章发布系统中的表结构如下所示:
从
表结构中可以看到一个文章包含主键(ID),作者(author),内容(content),状态(status),创建时间(create_time)
和修改时间(update_time)。状态(status)字段类型为整形,可能的值为0, 1, 2,
3四种。单单从数值上来说,除了建表的人谁也搞不清楚这四个状态到底有什么作用,但是只要配合下面的流程图这个问题就可以迎刃而解了。
业
务建模的目标是在数据模型的基础上,让应用程序帮助最终用户解决实际业务中出现的问题,它所感兴趣的方面数据的流向和状态的变迁,从上面的流程图我们就可
以看到,虽然status拥有4个状态,但是这4个状态并不是可以随意转换的,“文章起草”(status=0)只能转变为“提交待审批”
(status=1),而“审批完成”(status=2)作为一个终止状态是不能再发生改变的。这些功能需求都是数据建模阶段无法解决的,只有通过对业
务逻辑,业务流程的梳理分析才能在应用程序中为最终用户提供这些功能。
业务建模让数据模型变得有血有肉,结合了业务的数据不再是单薄的骨架,而是变成了鲜活的生灵。
我
们借助一个最简单的发文审批流程向大家介绍了数据建模与业务建模的关系,希望大家能够借此了解软件开发中业务流程与数据模型之间的关系,别小看文章表结构
中的status状态位,它已经初具了有限状态机(FSM, Finite State
Machine)的雏形,很多简易的工作流引擎都是基于FSM来实现的,所以请切实体会一下实际开发中流程的作用,你可能没有使用工作流,但是我们所面对
的问题和解决的方式却是大同小异的。
分享到:
相关推荐
精通Excel.2007数据分析与业务建模, 这是本适合日常业务工作的人员的一本入门书
数据分析与业务建模:随着数据仓库的不断发展和成熟,“大数据”概念的风靡,有越来越多的相关产品出来,最常见的技术解决方案包括hadoop和hive,oracle,mysql的infobright,greenplum及nosql,或者多个结合使用。...
精通Excel 2007:数据分析与业务建模
精通Excel.2007数据分析与业务建模,对各位有一定的帮助噢
精通Excel+2007:数据分析与业务建模
浅谈数据仓库建设中的数据建模方法浅谈数据仓库建设中的数据建模方法所谓水无定势兵无常法。不同的行业有不同行业的特点因此从业务角度看其相应的数据模型是千差万别的。目前业界较为主流的是数据仓库厂商主要是IB
数据挖掘、数据建模;AI精研社,数据、算法,专业交流
精通Excel.2007数据分析与业务建模(附CD)].Excel
精通Excel 2007:数据分析与业务建模(光盘文件)
Following a seminar presentation, a member of the audience approached me to follow up on a point I had addressed. He explained that he worked in a bank, and also taught a graduate-level data mining ...
⼤数据实践之数据建模 随着DT时代互联⽹、智能设备及其他信息技术的发展,数据爆发式增长,如何将这些数据进⾏有序、有结构地分类组织和存储是我们⾯临的⼀个挑战。 为什么需要数据建模 如果把数据看作图书馆⾥的书...
架构建模方法总论 业务架构建模方法 数据架构建模方法 应用架构建模方法 技术架构设计方法
Excel 2007 Data Analysis-精通Excel 2007数据分析与业务建模【完整随书配套CD资源】,全部示例excel文件按章节分好。
银行金融业务数字化转型数据治理元数据数据库结构建模数据标准合集(12份).zip
每个行业有自己的模型,但是 不同行业的数据模型,在数据建模的方法上,却都有着共通的基本特点。 什么是数据模型 数据模型是抽象描述现实世界的一种工具和方法,是通过抽象的实体及实体之间联系的形式,来表示现实 ...
三、四种建模⽅法 1、ER实体模型 在信息系统中,将事务抽象为"实体"(Entity)、"属性"(Property)、"关系"(Relationship)来表⽰数据关联和事物描述,这种 对数据的抽象建模通常被称为ER实体关系模型。...
本书系统地介绍了业务建模、数据建模和应用程序建模的方法和过程,通过PowerDesigner的实现,使读者全面掌握软件分析建模的思想,是软件工程师学习软件分析、建模的入门教材。PowerDesigner 12.5集中体现了软件分析...
业务建模(Business Modeling)是以软件模型方式描述企业管理和业务所涉及的对象和要素、以及它们的属性、行为和彼此关系,业务建模强调以体系的方式来理解、设计和构架企业信息系统。
数据分析建模流程概述