网络开发 调用API函数 报表打印 常用技术 经验汇总 控件使用 软件工程 数据处理
您的位置:首页 >> vfp教程 >> 网上文摘 >> 软件工程 >> 正文

使用数据建模定义复杂的商业实体
出处:网络

  我们关于系统分析的系列文章中的前一篇讲述了业务需求和处理流程的建模。但是在大型的,复杂的项目中可能还需要另一种类型的建模:数据建模。虽然你可能不会亲自来完成这个任务,但你还是需要对它的概念有所了解。因为你的应用程序读取或者操作这些数据,所以你应该对这些模型中数据实体间联系的定义有一定的认识。

  在Dabs的那段日子里

  我以前在大型机上编程的时候,有的只是普通的文件和数据库(还有VSAM文件)。文件数据库由程序员进行控制,它们可以被随心所欲的创建。但是数据库对于普通的程序员来说要进行操作和理解实在是太复杂了。它们需要数据分析和数据库管理员(Dabs)。数据分析能够让你用来在逻辑上为数据建模,然后Dabs会在物理的数据库里实际的实现这个数据模型。

  在今天的C/S(客户/服务器)和Web开发环境下,数据库越来越多的处于开发者的控制之下了。在一些很小的使用SQL Server和Oracle的公司里,由于无法承担数据专家的费用,我们可能不得不亲自完成数据库方面的工作。也许这就是为什么今天的数据建模比以前看起来要少得多的原因。但是,理解数据建模的概念并知道在什么情况下使用数据建模仍然是有意义的。它对于大型的,复杂的或者数据库的吞吐量要求非常大的应用程序来说是非常关键的。

  数据建模的两个主要目的

  正式的数据建模是出于两个基本的意图。首先,它提供了一种表示数据实体间关系的精确的语言和语法。如果建模的范围足够广泛,那么企业所使用的所有重要数据都可以用这种方法表示。举个例子,你的企业对于一个客户的精确定义是否能够容易的达成一致?在我所工作的一家公司,用了数月来定义什么是一个客户数据实体,在它的共同属性上达成了一致,并对于客户数据实体与其它实体之间的联系有了共识。在完成数据定义以后,那么你会发现这家公司半数的程序是不准确的因为它们用了不同的方式来定义一个客户实体。但是,一旦数据建模已经完成,每个人就必须团结在这个大家都认可的定义上来了。 数据建模的另一个主要的目的是用来定义数据实体和数据实体之间的关系,这种定义的方法能够用来保存底层的业务数据。这允许我们定义文件和数据库以便商业应用程序能够正确的处理信息。例如,你可能会发现许多客户属性是相对静态的。你还可能会注意到一个客户也可能生成许多定单。这些简单的事实让你创建两张数据库表--一个保存客户属性而另一个保存定单信息。每个表单都可以用客户号码做索引。这就节省了存储空间,允许应用程序进行更快的处理,并使数据的维护变得更容易。

  简单的数据建模中的规则

  下面是数据建模中一些简单的规则,它们能够帮助你提高分析的清晰度和准确性:

  为所有的基本实体取一个清楚的名字。不象处理过程建模是面向动作的,数据建模更多的是关于名词的建模。一些实体从其它的实体继承而来。首先将精力集中于基本的实体然后是继承的那些实体。在我们的例子中,一个基本实体的例子就是客户。

  包括进实体的属性数据。对于一个客户实体来说,这可能包括一个描述信息,一个当前的编号方案,身体特征(如果恰当的话),地址信息,等等。

  寻找实体之间的关系。这是数据建模的关键部分,在这里你要定义一个实体如何与其它的实体交互或者关联。例如,一个客户能够生成多个定单。而一个客户也可以没有与之相关的定单。但一个定单必须有一个相关的客户。一个客户还有可能是销售商。你可能给一个客户分配了一个销售代理。就如何表达这些关系应该是能够达成共识的。第一个主要的定义是这种关系是否是一对一,一对多,或者多对多的。(还有其它类型,但这几种是最常见的类型。)

  使用精确的术语来描述这些实体之间的联系。数据建模的一个目的就是提供清晰度和准确性。但是如果你在描述模型的时候存在含糊不清的词语,那么要达到这两个目的是不可能的。幸运的是,在很久以前就出现了一套标准的用来图形化表示程序模型的制图技术。虽然存在几个主流的表示方法,而且有各自的特点,但是所有这些过程代表的是相同的底层概念。例如,一个方框通常代表一个实体;连接两个实体的直线通常代表一种联系;而在关系线一端的丁字型记号表明这是一个一对多的关系。

  根据你的项目的特点,创建一个有效的数据模型可能需要一些专门的技能。如果你的项目需要复杂的数据建模,你也许应该请个专家来。但是即使你这样做了,你也未必就一帆风顺了。不管最终的模型看起来会怎样,你都将有可能为它的设计花费上一翻,而且你也将不得不使用这个结果。所以它仍然值得你花时间来理解为什么这些模型要存在以及你如何能够利用它们给你带来好处。

  它全是关于数据的

  一些人想当然的组织其公司的数据,但是大的系统的关系可能十分复杂,以至于需要专业数据分析师或者数据设计师的技能。但是,在那种情况下,开发者不仅仅对于一个公司的数据而且还有这些数据之间的关系及这些关系的表达方式有一个基本的了解仍然是很重要的。下面是在数据建模的时候应该记住的几点:

  数据建模今天可能已经不那么流行了,但是它对于大型的或者复杂的,数据需求模糊的项目来说仍然是有价值的。

  数据建模的目的是准确的定义业务过程的实体以及它们之间的联系。数据建模还提供了正确创建数据结构和数据库来保存业务信息所需的准确性和细节。

  一个完整的可视化的语法使得数据模型能够被清晰的定义。其它的建模专家能够通过浏览生成的图表得知数据是如何相互关联的。

  专业的数据建模过程需要专门的技能和培训,一般的程序员在处理这个过程的时候可能会觉得不太舒服。

[返回]

     

首页 | 设为首页 | 加入收藏 | 关于本站 | 友情链接 | 版权声明

     
 
Copyright© www.bianceng.cn Powered by 编程入门网 All Rights Reserved
吉ICP备06005558号