`
xyz20003
  • 浏览: 292716 次
  • 性别: Icon_minigender_1
  • 来自: 唐山
社区版块
存档分类
最新评论

数据建模与业务建模

阅读更多

数据建模与业务建模

无论是企业信息系统还是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来实现的,所以请切实体会一下实际开发中流程的作用,你可能没有使用工作流,但是我们所面对 的问题和解决的方式却是大同小异的。

3
1
分享到:
评论
1 楼 xyz20003 2009-11-20  
没有理论就玩不大

相关推荐

    数据分析与业务建模

    《数据分析与业务建模》是一本专为日常业务工作中的数据处理和决策支持设计的入门书籍,主要聚焦于Excel 2007这一强大的数据分析工具。在这个数字化时代,理解和运用数据已经成为各行各业的关键技能,无论你是销售...

    数据建模与分析 学习数据建模基础

    数据建模是一种技巧,可以记录存货信息、形状、尺寸、内容、还有在业务处理流程中数据元素使用的规律,业务处理的范围可能像一个多元的跨国公司那么复杂,也可以像码头上接收货箱那么简单。 数据模型可以分为概念...

    数据挖掘、数据建模-pdf文字版

    数据挖掘与数据建模是数据分析领域中的核心环节,它们在人工智能和大数据时代扮演着至关重要的角色。本资源“数据挖掘、数据建模-pdf文字版”提供了深入理解和实践这两个概念的宝贵资料,尤其对于那些在AI精研社中...

    关于数据建模方面的,主要是ORACLE

    "数据建模与关系数据库设计" 数据建模是指在信息系统中对数据的结构、组织和关系的定义和描述的过程,它是数据库设计的核心部分。Oracle是一种流行的关系数据库管理系统,广泛应用于企业级应用系统中。以下是关于...

    数据建模(PowerDesigner)

    总的来说,PowerDesigner是一个强大且全面的数据建模工具,它帮助IT专业人员高效地设计和实现数据库结构,确保数据模型满足业务需求并优化数据库性能。通过使用PowerDesigner,我们可以创建清晰、规范化的数据模型,...

    数据挖掘与数据建模的9大定律

    数据挖掘与数据建模是现代信息技术领域中至关重要的组成部分,特别是在人工智能(AI)的应用中,它们扮演着发现潜在规律和创建预测模型的角色。以下是对标题、描述和部分内容中提到的知识点的详细阐述: 1. 目标律...

    数据仓库建模之金融银行模型篇

    本主题将深入探讨“数据仓库建模之金融银行模型篇”,旨在为读者提供一个全面理解金融银行业数据仓库建模的框架结构。 首先,我们要明白数据仓库的基本概念。数据仓库是一个集中的、非易失性的、用于报告和分析的...

    数据建模大赛 题型大全

    1. 概念数据模型(CDM):这是数据建模的第一步,主要关注业务领域的概念和实体。例如,一个教育系统中的概念模型可能包括学生、教师、课程等实体。CDM使用ER图(实体-关系图)来表示这些实体及其相互关系。 2. ...

    ERwin数据建模(杨国强)-完整版

    在信息化时代,数据建模是IT行业中不可或缺的一部分,它帮助企业构建高效、准确的数据存储系统,为业务决策提供强有力的支持。本资源的亮点在于其完整性,避免了用户因片段化的学习资料而产生的困扰。 ERwin是一款...

    数据仓库维度建模实践-模型设计-网易03.pdf

    数据仓库维度建模实践模型设计 ...* 核心模型与扩展模型分离 * 公共处理逻辑下沉 * 成本与性能平衡 * 数据可回滚 * 一致性 * 命名清晰 这些原则可以指导我们设计一个好的数据模型,以满足业务需求和非功能性需求。

    数据仓库数据建模方法

    总的来说,数据仓库数据建模方法是连接业务需求与技术实现的关键桥梁,它确保数据仓库能够有效地支持决策制定、业务分析和流程优化。通过深入理解业务,结合合适的方法论和技术,我们可以构建出满足需求、灵活可扩展...

    企业架构和数据建模

    企业架构与数据建模是紧密相连的两个方面,它们共同支撑着组织的数据战略和业务目标。通过采用业务成果驱动的方法,以及与利益相关者的有效沟通,企业可以最大化地发挥EA的价值,实现更好的业务成果。在这个过程中,...

    详细的数据建模方法

    1. **业务建模**:此阶段旨在理解业务需求并将其转化为业务模型。这一步骤要求深入了解业务流程,以便准确捕捉业务需求。 2. **领域建模**:在此基础上,对业务模型进行抽象处理,形成领域概念模型。这一阶段的目标...

    银行金融业务数字化转型数据治理元数据数据库结构建模数据标准合集(12份).zip

    通过实体关系模型(ER模型)、概念数据模型和逻辑数据模型的设计,银行能够确保数据库结构合理、规范,满足业务需求的同时,也能适应未来可能的扩展和变化。良好的数据库建模能降低数据冗余,提高查询性能,为大数据...

    IBM数据仓库需求建模方法及行业数据仓库模型

    IBM数据仓库需求建模方法及行业数据仓库模型的知识点主要涵盖了数据仓库的建设、企业级数据仓库建模、软硬件配置、行业数据仓库模型以及市场趋势和相关技术。 首先,IBM数据仓库需求建模方法强调了企业级数据仓库...

Global site tag (gtag.js) - Google Analytics