|
数据流图描述了系统的分解,即描述了系统由哪几部分组成,各部分之间的联系等,但没有说明系统中各成分的含义。只有当数据流图中出现的每一成分都给出定义之后,也就是使数据流图上的数据流名字、处理逻辑名字等都具有确切地解释之后,才能真正完整、准确地描述一个系统。为此,还需要其他工具对数据流图加以补充说明。
|
|
|
数据字典就是这样的工具。数据字典最初用于数据库管理系统。它为数据库用户、数据库管理员、系统分析员和程序员提供某些数据项的综合信息。这种思想启发了信息系统的开发人员,使他们想到将数据字典引入系统分析。
|
|
|
数据字典是以特定格式记录下来的、对系统的数据流图中各个基本要素(数据流、处理逻辑、数据存储和外部实体)的内容和特征所做的完整的定义和说明。它是结构化系统分析的重要工具之一,是对数据流图的重要补充和说明。
|
|
|
建立数据字典的工作量很大,而且相当繁琐。但这是一项必不可少的工作。数据字典在信息系统开发中具有十分重要的意义,不仅在系统分析阶段,而且在整个开发过程中以及今后的系统运行中都要使用它。
|
|
|
数据字典可以用人工方式建立。事先印好表格,填好后按一定顺序排列,就是一本字典。也可以建立在计算机内,数据字典实际上是关于数据的数据库,这样使用、维护都比较方便。编写数据字典是系统开发的一项重要的基础工作。一旦建立,并按编号排序之后,就是一本可供查阅的关于数据的字典,从系统分析一直到系统设计和实施都要使用它。在数据字典的建立、修正和补充过程中,始终要注意保证数据的一致性和完整性。
|
|
|
|
数据字典中有6类条目:数据项、数据结构、数据流、数据存储、处理过程和外部实体。不同类型的条目有不同的属性,现分别说明如下:
|
|
|
①数据项又被称为数据元素,是系统中最基本的数据组成单位,也就是不可再分的数据单位,如学号、姓名、成绩等。一般分析数据特性应从静态和动态两个方面去进行。但在数据字典中,仅定义数据的静态特性,具体包括:
|
|
|
.数据项的名称。名称要尽量反映该元素的含义,便于理解和记忆。
|
|
|
|
.别名。一个数据元素,可能其名称不止一个;若有多个名称,则须加以说明。
|
|
|
.简述。有时候名称仍然不能很确切地反映元素的含义,则可以给该数据项加一些描述信息。
|
|
|
.数据项的取值范围和取值的含义。指数据元素可能取什么值或每一个值代表的意思。
|
|
|
数据项的取值可分为离散型和连续型两类。如人的年龄是连续型的,取值范围可定义为0~150岁。而“婚姻状况”取值范围是“未婚、已婚、离异、丧偶”,是离散型的。
|
|
|
一个数据项是离散的,还是连续的,视具体需要而定。例如在一般情况下,我们用岁数表示一个人的年龄,是连续的。但有时,我们只要用“幼年、少年、青年、壮年、老年”表示,或者区分为成年、未成年即可,这时年龄便是离散型的。
|
|
|
.数据项的长度。指出该数据项由几个数字或字母组成。如学号,按某校的编法由7个数字组成,其长度就是7个字节。
|
|
|
|
下表就是数据项条目的一个例子。数据字典中对“职工姓名”数据项的描述。
|
|
|
|
|
②数据结构数据结构描述某些数据项之间的关系。一个数据结构可以由若干个数据项组成;也可以由若干个数据结构组成,还可以由若干个数据项和数据结构组成。在数据字典中对其定义包括:名称;编号;简述;数据结构的组成。例如下表所示订货单就是由三个数据结构组成的数据结构,表中用DS表示数据结构,用I表示数据项。
|
|
|
|
|
如果是一个简单的数据结构,只要列出它所包含的数据项。如果是一个嵌套的数据结构(即数据结构中包含数据结构),则需列出它所包含的数据结构的名称,因为这些被包含的数据结构在数据字典的其他部分已有定义,见下表。
|
|
|
|
|
③数据流数据流由一个或一组固定的数据项组成。定义数据流时,不仅要说明数据流的名称、组成等,还应指明它的来源、去向和数据流量等。在数据字典中数据流的属性包括:
|
|
|
|
|
|
.数据流的来源。数据流可以来自某个外部实体、数据存储或某个处理。
|
|
|
.数据流的去向。某些数据流的去处可能不止一个,若有多个去处,则都需要进行说明。
|
|
|
.数据流的组成。指数据流所包含的数据结构。一个数据流可包含一个或多个数据结构。若只含一个数据结构,应注意名称的统一,以免产生二义性。
|
|
|
.数据流的流通量。指单位时间(每日,每小时等)里的数据传输次数。可以估计平均数或最高、最低流量各是多少。
|
|
|
|
|
|
|
④处理逻辑的定义处理逻辑的定义仅对数据流程图中最底层的处理逻辑加以说明。在数据字典中对其定义包括:处理逻辑名称;编号;简述;输入;处理过程;输出;处理频率,如下表所示。
|
|
|
|
|
⑤数据存储数据存储在数据字典中只描述数据的逻辑存储结构,而不涉及它的物理组织。在数据字典中对其定义包括:数据存储的编号;名称;简述;组成;关键字;相关的处理。下表给出了一个数据存储定义的例子。
|
|
|
|
|
⑥外部实体定义外部实体是数据的来源和去向。因此,在数据字典中关于外部实体的条目,主要说明外部实体产生的数据流和传给该外部实体的数据流,以及该外部实体的数量。外部实体的数量对于估计系统的业务量有参考作用,尤其是关系密切的主要外部实体。在数据字典中对外部实体的定义包括:外部实体编号;外部实体名称;简述;输入的数据流;输出的数据流。下表给出了一个外部实体定义的例子。
|
|
|
|
|
|
数据字典实际上是“关于系统数据的数据库”。在整个系统开发过程以及系统运行后的维护阶段,数据字典都是必不可少的工具。数据字典是所有人员工作的依据、统一的标准。它可以确保数据在系统中的完整性和一致性。具体地讲,数据字典有以下作用:
|
|
|
①按各种要求列表。可以根据数据字典,把所有数据元素、数据结构、数据流、数据存储、处理逻辑、外部实体,按一定的顺序全部列出,保证系统设计时不会遗漏。
|
|
|
如果系统分析员要对某个数据存储的结构进行深入分析,需要了解有关的细节,了解数据结构的组成乃至每个数据元素的属性,数据字典也可提供相应的内容。
|
|
|
②相互参照,便于系统修改。根据初步的数据流图,建立相应的数据字典。在系统分析过程中,常会发现原来的数据流图及各种数据定义中有错误或遗漏,需要修改或补充。有了数据字典,这种修改就变得容易多了。
|
|
|
例如,在某个库存管理系统中,“商品库存”这个数据存储的结构是:商品编号、商品名、规格、当前库存量。一般来讲,考虑能否满足用户订货,这些数据项就够了。但如果要求库存数量不能少于“安全库存量”,则这些数据项是不够的。这时,在这个结构中就要增加“安全库存量”这个数据项。以前,只要“顾客订货量小于或等于当前库存量”,就认为可以满足用户订货;现在则只有“顾客订货量小于或等于当前库存量且当前库存量大于或等于安全库存量”时才能满足顾客订货。有了数据字典,这个修改就容易了。因为在该数据存储的条目中,记录了有关的数据流,由此可以找到因数据存储的改动而可能影响到的处理逻辑,不至于遗漏而造成不一致。
|
|
|
③由描述内容检索名称。对于一个稍微复杂的系统,数据字典的量是相当大的,有时候系统分析员可能没有把握断定某个数据项在数据字典中是否已经定义,或者记不清楚其确切名字,这时可以通过内容查找其名称,就像根据书的内容查询图书的名字一样。
|
|
|
④一致性检验和完整性检验。根据各类条目的规定格式,可以检验一下一些问题。
|
|
|
|
.是否存在没有指明数据存储或所属数据流的数据元素。
|
|
|
|
|
|
数据字典的内容是随着数据流图自顶向下,逐层扩展而不断充实的。数据流图的修改与完善,将导致数据字典的修改,这样才能保证数据字典的一致性和完整性。数据字典的编写可以有两种方式:手工编写和计算机辅助编写。
|
|
|
手工编写的主要工具是笔和卡片,当然可以辅以计算机文字处理手段。这时计算机只是作为手工书写工具来使用,没有处理数据字典的结构、内容和格式的功能。由于数据字典各条目的定义、说明和分解细化主要靠人的知识、经验和判断,手工编写具有较大的灵活性与适应性,也就是说,可以随着系统分析工作的深入和对用户信息需求的了解的细化而不断充实、修正数据字典的内容。但手工编写效率不高、编辑困难、容易出现疏漏与错误,对数据字典的检验、维护与查询、检索、统计、分析都不方便。
|
|
|
计算机辅助编写数据字典时,计算机以输入的方式接受数据字典各类成分的定义和说明的原始数据,根据规范要求提供编辑、索引、完整性、一致性检查的功能。具有统计、报告、查询功能,可以定义在某些加工中使用、但数据流图上未注明的数据元素。这类计算机辅助工具称为计算机辅助系统工程(Computer-Aided Systems Engineering)工具,或称计算机辅助软件工程(Computer-Aided Software Engineering,CASE)工具。这些CASE工具提供DFD和DD的编制功能,具有图形处理、数据管理和文字编辑的能力,有的还能在系统设计与系统实施阶段提供辅助。
|
|
|
对于计算机辅助编写数据字典来说,最重要的是建立便于输入、查询与维护的数据库,称之为数据字典库。因此,除了采用商品化的CASE工具软件辅助编写数据字典外,也可采用通用的开发工具和数据库管理系统来创建数据字典库及相应的编辑、查询与检验程序。
|
|
|
但在开发初期,对于规模不太大的系统,手工编写更方便实惠。
|
|
|
|
.对数据流图上各种成分的定义必须明确、唯一、易于理解。命令、编号与数据流图一致,必要时可增加编码,以方便查询、检索、维护和统计报表。
|
|
|
.符合一致性和完整性的要求,对数据流图上的成分定义与说明没有遗漏。
|
|
|
|
.数据流图中同类成分的数据字典条目中,无同名异义或异名同义者。
|
|
|
|
数据字典的建立,对于系统分析人员、用户或是系统设计人员均有很大好处,他们可以从不同的角度分别从数据字典中得到有关的信息,便于认识整个系统并随时查询系统中的部分信息。随着系统开发工作的不断深入,数据字典所带来的效益也将越来越明显。
|
|
|
为了保证数据的一致性,数据字典必须由专人(数据管理员)管理。其职责就是维护和管理数据字典,保证数据字典内容的完整一致。任何人(包括系统分析员、系统设计员、程序员)要修改数据字典的内容,都必须通过数据管理员。数据管理员要把数据字典的最新版本及时通知有关人员。
|
|
|