第7章数据库系统的需求建模教材:数据库技术及应用2006年4月宁可、吴菁、胡海编著本章要点•数据库系统设计概述•需求分析•数据库需求建模•系统需求说明•CASE工具在需求建模中的运用目录7.1数据库系统设计概述7.1.1数据库系统设计的基本概念7.1.2数据库系统的设计过程与开发方法7.1.3数据库系统设计的特征7.2需求分析7.2.1事件与系统需求7.2.2事物与系统需求7.3数据库需求建模7.3.1数据流图7.3.2数据字典7.4系统需求说明7.4.1系统需求规格说明书7.4.2数据要求说明书目录7.5CASE工具在系统开发中的运用7.5.1系统开发与CASE工具7.5.2PowerDesigner介绍7.6应用实例小结7.1数据库系统设计概述数据库系统的设计属于系统设计的范畴,数据库系统同其它软件系统一样,需要进行需求分析和需求建模过程。需求分析关系到应用系统开发的成败,是系统开发过程的关键阶段,在此阶段需要准确、详细地描述新系统必须“做什么”,通常把一整套需求规格说明的方法、技术、图形工具以及相应的软件工具的集合称为建模方法。7.1.1数据库系统设计的基本概念数据库系统的设计包括数据库设计和数据库应用系统设计两方面的内容。数据库设计是指设计数据库结构特性,即为特定应用环境构造出最优的数据模型;数据库应用系统设计是指设计数据库的行为结构特性,即建立能满足各种用户对数据库应用需求的功能模型。数据库及应用系统的设计是开发数据库系统的首要环节和基础问题。1.数据库系统设计的基本任务数据库系统设计的基本任务是:根据一个用户单位的信息需求、处理需求和数据库的支撑环境(包括DBMS、操作系统和硬件),设计出数据模式以及典型的应用程序。数据库系统设计的基本任务如图7-1所示。图7-1数据库系统设计的基本任务2.数据库系统设计的基本内容数据库系统设计的基本内容是包含数据库的结构特性设计、数据库的行为特性设计和数据库的物理模式设计。在数据库系统设计过程中,数据库结构特性的设计起着关键作用,行为特性设计起着辅助作用。将数据库的结构特性设计和行为特性设计结合起来,相互参照,同步进行,才能较好地达到设计目标。(1)数据库的结构特性设计数据库的结构特性是指数据库的逻辑结构特征。(2)数据库的行为特性设计数据库的行为特性设计是指确定数据库用户的行为和动作,并根据其行为特性设计出数据库的子模式。(3)数据库的物理结构设计数据库的物理结构设计要求是:根据库结构的动态特性(即数据库应用处理要求),在选定的DBMS环境下,把数据库的逻辑结构模型加以物理实现,从而得出数据库的存储结构和存取方法。7.1.2数据库系统的设计过程与开发方法1.数据库系统的设计过程数据库系统设计过程是一种自上而下的、逐步逼近设计目标的过程。图7-2是数据库系统设计的过程图。数据库系统设计过程是数据库结构特性设计和行为特性设计相互参照、反复探寻的过程。数据分析用户业务活动分析概念结构设计功能模型逻辑结构设计事务分析物理结构设计程序说明用户结构设计应用程序设计数据加载调试和运行性能考核加载数据库运行维护满意图7-2数据库系统设计的过程2.数据库结构特性设计(简称数据库设计)同软件生命周期可把软件系统分为制定计划、需求分析、设计、程序编制、测试以及运行维护阶段一样,也可把整个数据库设计过程分成6个阶段:•需求分析•概念结构设计•逻辑结构设计•物理结构设计•数据库实施•数据库运行和维护3.数据库系统的设计方法对于任何系统而言,项目立项和可行性分析都是开发前需要首先完成的工作,而对于开发方法则有所不同。软件开发的方法有多种,如结构化方法、面向对象方法和软件开发统一过程(RUP)方法等,这些开发方法同样适用于开发数据库系统,这是因为数据库系统设计也属于系统设计的范畴。本书主要阐述基于结构化的数据库系统的开发(其它有关数据库系统的开发方法请参考相关书籍)。由数据库系统设计过程可知,数据库系统的开发方法不仅包括数据库设计方法(用于数据库结构特性设计),同时也包括一般的程序设计方法(用于数据库行为特性设计),二者是同步进行、紧密结合的。数据库系统各阶段的设计工作,如下所示。7.1.3数据库系统设计的特征数据库系统设计也和其他工程设计一样,具有如下3个特征。1.反复性。数据库系统设计不可能“一气呵成”,需要反复推敲和修改才能完成。前阶段的设计是后阶段设计的基础和起点,后阶段也可向前阶段反馈其要求。如此反复修改,以臻完善。2.试探性。数据库系统设计不同于求一个问题的数学解,设计结果一般不是惟一的。设计的过程往往是个试探的过程。在设计过程中,有各式各样的要求和制约因素,它们之问往往是矛盾的。数据库系统的设计很难说是最佳的,常常得之于东,而失之于西;何去何从,取决于数据库设计者各方面的权衡。3.分步进行。数据库系统设计常常由不同的人员分阶段进行。这样做,一是由于技术上分工的需要;二是为了分段把关,逐级审查,保证设计的质量和进度。7.2需求分析在数据库系统的需求分析阶段,需求收集与分析是以用户的角度出发,从系统中的数据和业务规则人手,收集和整理用户的信息,并以特定的方式加以描述,为下一阶段的设计工作做好准备。需求分析阶段是以调查和分析为主要手段的,以此获得用户对系统的如下要求:(1)信息要求:(2)处理要求7.2.1事件与系统需求所有的系统开发方法都可以以事件概念开始建模。事件是发生在某一特定的时间和地点,并且可以被描述和记录下来的。在调查中,首先把整个系统看成一个黑盒,从系统的外部环境中寻找对系统产生影响的事件,其次再寻找系统内部发生的事件。例如影响学校课程管理系统的某些事件,如图7-4所示。1.事件的类型一般事件可分为外部事件、临时事件和状态事件,在系统分析时应识别和列出尽可能多的事件,并在与用户的交流中不断细化这些事件列表。(1)外部事件外部事件是系统之外发生的事件,通常都是由外部实体或动作参与者触发的。(2)临时事件临时事件是由于达到某一时刻所发生的事件。(3)状态事件状态事件是当系统内部发生了需要处理的情况时所引发的事件。2.识别事件通常要识别影响系统的事件并不容易,但如下方法可以用来帮助分析人员识别事件。(1)事件/条件和响应有时候很难区分事件和一系列导致该事件发生的条件。一般说来,需要识别的事件是,该事件必须直接影响系统,而且系统对该事件有相应的响应。(2)在分析阶段可以忽略的事件虽然在分析阶段需要考虑的事件很多,但此阶段主要考虑的是系统的功能需求,即系统需要完成的工作而不是系统实现的细节。系统实现的细节事件往往应在系统设计阶段再考虑,这类事件大多数包括系统控制事件。如:ø用户更改口令ø用户改变系统性能设置ø备份数据库系统崩溃需要恢复数据库3.事件列表在识别影响系统的事件后,需制定出相应的事件列表。该表以各个事件为行、各个事件的关键信息为列。事件列表的格式如表所示,在确定事件列表时分析人员要注意每个事件附加的信息,以备将来使用。7.2.2事物与系统需求1.事物的类型一些事物是实实在在的,因此容易识别,但另一些事物却难以明了。不同类型的事物对不同的用户都很重要,因此有必要从所有类型的用户处收集信息。图7-4给出了一些常见事物类型。图7-4事物类型2.事物的关系系统中有很多事物间的关系非常重要。关系是指某些事物间自然发生的联系。事物之间的关系类型有多种:二元关系:两种不同类型事物之间的关系,例如顾客和订单的关系。一元(回归)关系:同一类型的两个事物间的关系,例如一个人和另一个人的婚姻关系。三元关系:三种不同类型事物之间的关系。n元关系:n(n为任意数)种不同类型事物之间的关系。如图7-5“被……订购”和“工作于”就是两个自然地发生在特定事物间的关系。图7-5事物之间发生的关系3.事物的属性大多数信息系统都存储并使用关于每个事物的一些信息。这些特定的信息被称为属性。如员工有姓名、性别、年龄等信息,每条信息都是一个属性。分析人员需要明确每个系统需要存储的事物属性。一个属性可以用来惟一标识某事物,例如,公民的身份证号码、某次交易的订单号等。能惟一标识事物的属性被称为标识符或关键字。有时标识符是由系统分配的。如,发票号和交易号等。有时一个事物的属性列表可能很长。分析人员开始时应先找出某事物最重要的属性,然后再逐步添加必要的其它属性。4.数据实体和对象以上描述的事物均是系统需要存储其信息的事物。在系统结构化开发方法中,这些事物被称为数据实体。数据实体、数据实体间的关系和数据实体的属性都可以使用实体-关系图(E-R图)来建立模型,实体-关系图(稍后将介绍)可以用来建立数据库(通常是关系型数据库),在系统结构化开发方法和信息工程方法中都用到了实体-关系图。7.3数据库需求建模在数据库系统的设计中,数据建模通常采用图形化方法来描述企业的信息需求和业务规则,以建立逻辑数据模型,其作用有两个,一是与用户进行沟通,明确需求;另一个作用是作为数据库物理设计的基础,以保证物理数据模型能充分满足应用要求,保证数据的一致性和完整性。本节主要介绍数据库系统的分析阶段常用的数据建模工具:数据流图和数据字典。7.3.1数据流图数据流建模方法是一种结构化分析方法,主要工具是数据流图(DataFlowDiagram,简称DFD)。数据流图是表示系统逻辑模型的常用工具,图中不存在任何具体的物理元素,只表示信息在系统中流动和处理的情况。数据流图中有四种基本符号,见下表,它们分别表示数据的源点或终点(或称为外部项)、对数据进行的加工、处于静止状态的数据存储和处于运动状态的数据流,使用这四种符号可表示大多数的数据流图。1.数据流图的分层思想对于一个较复杂的系统,其加工(或处理)可能有数百乃至数千个,整个系统的数据流图很难一次全部画齐。而采用分层的思想可以很好地解决这个问题。数据流图分层的基本思想是“自顶向下逐步分解”,即从系统的基本模型(把整个系统看成是一个加工)开始,逐层对系统进行分解。每次分解一个加工,得到相应的多个更具体的加工,形成分层数据流图。重复这种分解,直到所有加工都足够简单明了为止。2.画数据流图的步骤对于一个较简单的系统,可以直接画出整个系统的数据流图,如果系统较为复杂,则需按照如下步骤画出系统的数据流图。(1)画顶层数据流图(2)画第一层数据流图(3)画下层数据流图图7-9就是一个系统的分层数据流图。图7-9系统的分层数据流图3.画数据流图的注意事项画数据流图过程中,需要注意保持数据流图的准确性、规范性、易理解性。具体可从以下几方面考虑。(1)输入和输出的数据流关系(2)父图和子图的平衡(3)尽量简化加工间的联系(4)适当的命名演示7.3.2数据字典数据字典是有关数据信息的集合。是对数据流程图中出现的数据流和处理等做进一步的补充说明数据字典中有五类条目:数据元素、数据流、数据存储、处理过程和外部实体。对数据字典可以使用自然语言描述。但为了清晰起见,建议采用下列符号表示。=表示等价于(或定义为)。+表示连接两个数据元素,即“与”的关系。[]表示从方括号内列出的若干个数据元素中选择一个。{}表示重复花括号内的数据元素若干次(如表示数据元素E重复1-10次:1{E}10。)()表示圆括号内的数据元素是可有可无的。m..n表示界域,从m到n。*..*表示两个星号间的内容为对条目的注释。(1)数据元素。数据元素(又称为数据项)是数据的基本单位。数据流程图中的每一个数据结构都是由数据元素构成的,对于这些数据元素必须在数据字典中给出描述,通常以卡片形式(以下楷体字表示)给出,其具体内容及格式如下:数据元素名称:类型:长度:取值范围:定义:位置:(2)数据流。数据流的具体描述内容及格式如下:数据流名称:说明:数据流来源:数据流去向:数据流组成:数据流的流通量:(3)数据存储。数据存储主要描述数据存储的结构,其具体描述内容及格式如下:数据存储名称:描述:输入数据:输出数据:数据存储组成:存储方式:(4)外部实体。外部实体是数据的来源和去向,具体描述内容及格式如下:外部实体名称:输入数据流:输出数据流:(5)加工。加工比较