当前位置:课程学习>>第四章>>知识讲解>>文本学习>>知识点四

第二章  数据字典


数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。 任何字典最主要的用途都是供人查阅对不了解的条目的解释,数据字典的作用也正是在软件分析和设计的过程中给人提供关于数据的描述信息。 数据流图和数据字典共同构成系统的逻辑模型,没有数据字典数据流图就不严格,然而没有数据流图数据字典也难于发挥作用。只有数据流图和对数据流图中每个元素的精确定义放在一起,才能共同构成系统的规格说明。

知识点一:数据字典的内容


一般说来,数据字典应该由对下列4类元素的定义组成:

(1)数据流 (2)数据流分量(即数据元素) (3)数据存储 (4)处理

但是,对数据处理的定义用其他工具(如IPO图或PDL)描述更方便,因此本书中数据字典将主要由对数据的定义组成,这样做可以使数据字典的内容更单纯,形式更统一。

除了数据定义之外,数据字典中还应该包含关于数据的一些其他信息。典型的情况是,在数据字典中记录数据元素的下列信息:一般信息(名字,别名,描述等等),定义(数据类型,长度,结构等等),使用特点(值的范围,使用频率,使用方式——输入、输出、本地,条件值等等),控制信息(来源,用户,使用它的程序,改变权,使用权等等)和分组信息(父结构,从属结构,物理位置——记录、文件和数据库等等)。

数据元素的别名就是该元素的其他等价的名字,出现别名主要有下述3个原因:

(1)对于同样的数据,不同的用户使用了不同的名字;

(2)一个分析员在不同时期对同一个数据使用了不同的名字;

(3)两个分析员分别分析同一个数据流时,使用了不同的名字。

知识点二:定义数据的方法


定义绝大多数复杂事物的方法,都是用被定义的事物的成分的某种组合表示这个事物,这些组成成分又由更低层的成分的组合来定义。从这个意义上说,定义就是自顶向下的分解,所以数据字典中的定义就是对数据自顶向下的分解。那么,应该把数据分解到什么程度呢?一般说来,当分解到不需要进一步定义,每个和工程有关的人也都清楚其含义的元素时,这种分解过程就完成了。

由数据元素组成数据的方式只有下述三种基本类型:

(1)顺序 即以确定次序连接两个或多个分量;

(2)选择 即从两个或多个可能的元素中选取一个;

(3)重复 即把指定的分量重复零次或多次。

因此,可以使用上述3种关系算符定义数据字典中的任何条目。为了说明重复次数,重复算符通常和重复次数的上下限同时使用(当上下限相同时表示重复次数固定)。当重复的上下限分别为l和0时,可以用重复算符表示某个分量是可选的(可有可无的)。但是,“可选”是由数据元素组成数据时一种常见的方式,把它单独列为一种算符可以使数据字典更清晰一些。因此,增加了下述的第4种关系算符:

(4)可选 即一个分量是可有可无的(重复零次或一次)。

虽然可以使用自然语言描述由数据元素组成数据的关系,但是为了更加清晰简洁,建议采用下列符号:

= 意思是等价于(或定义为);

+ 意思是和(即,连接两个分量);

[ ] 意思是或(即,从方括弧内列出的若干个分量中选择一个),通常用“|”号隔开供选择的分量;

{ } 意思是重复(即,重复花括弧内的分量);

( ) 意思是可选(即,圆括弧里的分量可有可无)。

常常使用上限和下限进一步注释表示重复的花括弧。一种注释方法是在开括弧的左边用上角标和下角标分别表明重复的上限和下限;另一种注释方法是在开括弧左侧标明重复的下限,在闭括弧的右侧标明重复的上限。例如

a和1{A}5 含义相同。

下面举例说明上述定义数据的符号的使用方法:某程序设计语言规定,用户说明的标识符是长度不超过8个字符的字符串,其中第一个字符必须是字母字符,随后的字符既可以是字母字符也可以是数字字符。使用上面讲过的符号,我们可以像下面那样定义标识符:

标识符=字母字符+字母数字串

字母数字串=0|字母或数字|7

字母或数字=[字母字符|数字字符]

由于和项目有关的人都知道字母字符和数字字符的含义,因此,关于标识符的定义分解到这种程度就可以结束了。

知识点三:数据字典的用途


数据字典最重要的用途是作为分析阶段的工具。在数据字典中建立的一组严密一致的定义很有助于改进分析员和用户之间的通信,因此将消除许多可能的误解。对数据的这一系列严密一致的定义也有助于改进在不同的开发人员或不同的开发小组之间的通信。如果要求所有开发人员都根据公共的数据字典描述数据和设计模块,则能避免许多麻烦的接口问题。

数据字典中包含的梅个数据元素的控制信息是很有价值的。因为列出了使用一个给定的数据元素的所有程序(或模块),所以很容易估计改变一个数据将产生的影响,并且能对所有受影响的程序或模块作出相应的改变。

最后,数据字典是开发数据库的第一步,而且是很有价值的一步。

知识点四: 数据字典的实现


目前,数据字典几乎总是作为CASE“结构化分析与设计上具”的一部分实现的。在开发大型软件系统的过程中,数据字典的规模和复杂程度迅速增加,人工维护数据字典几乎是不可能的。

如果在开发小型软件系统时暂时没有数据字典处理程序,建议采用卡片形式书写数据字典,每张卡片上保存描述一个数据的信息。这样做更新和修改起来比较方便,而且能单独处理描述每个数据的信息。每张卡片上主要应该包含下述这样一些信息:

名字、别名、描述、定义、位置。

当开发过程进展到能够知道数据元素的控制信息和使用特点时,再把这些信息记录在卡片的背面。

请同学们继续学习