知识卡片
数据抽象的三种基本方法:分类/聚集/概括
内容
把现实事物抽象成概念模型时,用到的抽象手段并非只有一种,而是三种 处理不同语义关系的方法各司其职。分类抽象的是”对象和它所属类型”之间 的成员关系:把一组具有共同特征和行为的对象归为一类(如”郭紫涵”是 “学生”这一类的一个成员),对应到E-R模型里就是实体集本身——实体集 是”型”,具体的实体是”值”。聚集抽象的是”整体和它的组成部分”之间的 关系:把若干属性组合起来构成一个完整的实体型(如学号、姓名、性别等 属性聚集起来构成”学生”这个实体),这是”由部分拼出整体”的方向,跟 分类”从个体归纳出共性”的方向正好相反。概括抽象的是”类型之间的子集” 关系:识别出一个更大的类别(超类)和它的某些特殊子集(子类),子类 继承超类的全部特征,同时可以有自己独有的属性(如”学生”是超类, “班长”“学习委员”是学生的子类,都继承学生的属性,但班长、学习委员 还各自有额外的职责属性)。这三种抽象方法跟面向对象编程里的”类的实例 化”“组合”“继承”是同一组思维模式在不同建模语境下的体现,理解了其中 一边就能快速迁移到另一边。
参考来源
- 位置:《数据库原理(微课版)》第6章《数据库设计》6.3.2节"数据抽象"
(源文件:_epub-src/index_split_004.html)
- 结论依据:原文明确"分类……分类抽象了对象值和型之间的'成员'的语义
……聚集可简单理解为定义某一类型的组成部分。它抽象了对象内部类型和
对象内部'组成部分'的语义……概括定义了类型之间的一种子集联系。它
抽象了类型之间'所属'的语义……子类继承超类中定义的所有抽象",因此
可以推出三种抽象方法分别对应成员、组成、子集三种不同语义关系。
- 原始内容:分类抽象了对象值和型之间的"成员"的语义……聚集……抽象了
对象内部类型和对象内部"组成部分"的语义……概括定义了类型之间的一种
子集联系……子类继承超类中定义的所有抽象。