1.4.2 数据抽象方法
常用的数据抽象方法有三种:分类、聚集和概括。
1. 分类
分类是指把现实世界中具有共性的个体抽象为一种实体型。例如,校园卡管理中,无论是张伟、周萍,还是其他个体都是学生,具有学号、姓名、性别、学院等共同属性,可以抽象为“学生”实体型,而张伟、周萍等个体为该实体型的实体值,和实体型之间是“is member of”的关系,如图1-22所示。
2. 聚集
聚集是将实体值之间的共性属性抽象为实体的属性,属性描述了实体的组成部分。属性和实体型之间是“is part of”的关系。例如,学号、姓名、性别、学院等都可以抽象为“学生”实体的属性,如图1-22所示。
图1-22 由实体值抽象得到实体型及其属性
3. 概括
如果实体之间存在子集联系,可以概括为子类和超类。子类和超类之间是“is subset of”的关系,子类继承超类所有的联系和属性,从而简化实体的设计。
E-R模型中分别用矩形和双竖边矩形表示超类和子类,用直线加小圆圈的形式表示超类-子类的关系。例如,研究生、本科生都是学生,都具有学生的基本属性,但是研究生有本科生没有的科研要求(研究方向)、本科生有研究生没有的军训和生产实习,研究方向,军训及生产实习分别是研究生和本科生的特有属性。如果抽象为学生、研究生、本科生三种实体型,一则实体型数量多,二则实体型之间存在较多的冗余属性。使用概括进行抽象后,把研究生、本科生抽象为学生的子类,继承学生超类的学号、姓名、性别、学院等基本属性,同时具有自己的特殊属性,如图1-23所示。