当前位置:第七章<<第三节  概念结构设计

7.3.3数据抽象

抽象是对实际的人、物、事和概念进行人为处理,抽取所关心的共同特性,忽略非本质的细节,并把这些特性用各种概念精确地加以描述。概念结构是对现实世界的一种抽象。一般有三种抽象:

一、分类(Classification)

定义某一类概念作为现实世界中一组对象的类型。抽象了对象值和型之间的“is member of”的语义。在E-R模型中,实体型就是这种抽象。如在学校管理系统中,张英是学生(如图7.9所示),表示张英是学生中的一员,具有学生们共同的特性和行为。

7.9 分类

二、聚集(Aggregation)

定义某一类型的组成成分,抽象了对象内部类型和成分之间“is part of”的语义。在E-R模型中若干属性组成的实体型,就是这种抽象(图7.10)。

7.10 聚集

三、概括(Generalization)

定义类型之间的一种子集联系,它抽象了类型之间的“is subset of”的语义。它反映了继承性。例如,学生是一个实体型,本科生、研究生也是实体型,但均是学生的子集。通常把学生称为超类,本科生、研究生称为学生的子类。

7.11 概括

7.3.4局部视图设计

概念设计的第一步就是利用上面介绍的抽象机制对需求分析阶段收集到的数据进行分类、组织(聚集),形成实体、实体的属性,标识实体的码,确定实体之间的联系类型,设计分E-R图。

设计分E-R图的步骤主要分为两步,第一步是选择局部应用,第二步是逐一设计分E-R图。

一、选择局部应用

在多层的数据流图中选择一个适当层次的数据流图,作为设计分E-R图的出发点。通常以中层数据流图作为设计分E-R图的依据。这是因为高层数据流图只能反映系统的概貌,而低层数据流图又过细,中层数据流图能较好地反映系统中各局部应用的子系统组成。

二、逐一设计分E-R图

首先将各局部应用涉及的数据分别从数据字典中抽取出来,参照数据流图,标定各局部应用中的实体、实体的属性、标识实体的码,确定实体之间的联系及其类型(1:1,1:n,m:n)。

事实上,在现实世界中具体的应用环境常常对实体与属性已经作了大体的自然的划分。在数据字典中,“数据结构”、“数据流”和“数据存储”都是若干属性有意义的聚合,就体现了这种划分。可以先从这些内容出发定义E-R图,然后再进行必要的调整。

现实世界中一组具有某些共同特性和行为的对象就可以抽象为一个实体。对象和实体之间是“is member of"的关系。对象类型的组成成分可以抽象为实体的属性。组成成分与对象类型之间是“is part of"的关系。

例如,在学校环境中,可把张三、李四等对象抽象为学生实体。学号、姓名、专业、年级等可以抽象为学生实体的属性。其中学号为标识学生实体的码。

同时实体与属性是相对而言的。同一事物,在一种应用环境中作为“属性”,在另一种应用环境中就必须作为“实体”。为了简化E-R图的处置,现实世界中的事物凡能够作为属性对待的,应尽量作为属性。当然,实体与属性之间并没有形式上的可以截然划分的界限,但应遵循两条准则:

1)属性不能再具有需要描述的性质。即属性必须是不可分的数据项,不能再由另一些属性组成。

2)属性不能与其他实体具有联系。联系只发生在实体之间。

凡满足上述两条准则的事物,一般均可以作为属性对待。

例如,职工作为一个实体,职工号、姓名、年龄是职工的属性,职称如果没有与工资、福利挂钩的话,根据准则(1)可以作为职工的属性;但如果不同的职称有不同的工资、住房标准和附加福利,则职称作为一个实体看待就更恰当。如图7.12所示。

1 2 3 4 5 6