0124169 沈梦圆
现实世界的模拟再现
-------------------------关于ER图 对象联系图 类图的比较
一 总述
定义模型是为了更好的抽象出现实的世界,从而能够实现相关的计算机的处理。在数据库技术中,概念建模是按照“ER图——对象联系图——类图“的轨迹发展的。 其中,后两者是面向对象数据建模的重要组成部分。
下面将从三者各自的定义,特点, 以及相互间的比较等方面来认识这三种概念建模技术。
基本定义以及特点
*******************************************************************************
二 ER图
1 ER图是一种实体联系图,是建立在ER模型的基础上的。这个模型直接从现实世界抽象出实体类型以及实体之间的联系。属于平面关系模型。
2 一般在ER图中,有四种基本的成分
(1) 矩形框 代表实体类型
(2) 菱形框 代表联系类型
(3) 椭圆形框 代表实体类型和联系类型的属性
(4) 直线 连接联系类型和所涉及到的实体类型,
一个简单的ER图:
M
N P
上图大致表示了一个project (项目工程),和part(零件)以及supplier(零件供应商)之间的实体联系图
3 从上图也可以看出ER图的显著的特点:
优点:接近人的思维,容易理解
与计算机无关,用户容易接受。
缺点:只能说明实体间语义上的联系,不能进一步的说明详细的数据结构。
平面化,不能表示嵌套的关系模型
三 对象联系图
1 使用类型构造图的思想,在实体联系图的基础上,扩充而成 对象联系图。已经脱离了平面关系模型的范畴。是面向对象数据模型中数据结构的一种重要的图例表示方法
2 相应的,对象联系的基本成分比ER图要更为复杂:它包括:
(1)椭圆 代表对象类型(即实体类型,同ER图中的矩形框)
(2)小圆圈 代表属性值是基本数据类型
(3)单箭头 表示属性值是单值
(4)双箭头 表示属性值是多值
(5)双线箭头 表示对象类型之间的超类和子类关系
(6)双向箭头 表示两个属性之间值为逆联系
(7)椭圆之间的边代表对象之间的嵌套或者引用。
一个简单的对象联系图
Editor unc
cname
uname
Textname edit city
上图表示了university(大学)和cousertext( 有关课程的建材)两个对象之间的联系
3 同样从图可以看出对象联系图的优点在于对数据之间联系的完整揭示(由多种箭头可以看出)。
优点: 完整的揭示了数据之间的联系
清楚体现了查询的层次
不仅包括了任何形式的层次联系,而且在实现时不会有冗余现象
四 类图
1 类图基于20世纪90年代中期产生的“统一建模语言 ”UML。 这是个使用于各类系统建模的标准模型语言,具有一定的普遍性。 UML通过提供不同类型的图,表达系统多方面的透视。这些图包括使用事件图,状态图 ,组件图,以及类图等等。它们都属于UML的静态建模机制。
类图描述系统中类的静态结构。不仅定义系统中的类,表示类之间的联系如关联、依赖、聚合等,也包括类的内部结构(类的属性和操作)。类图描述的是一种静态关系,在系统的整个生命周期都是有效的。
类图技术是面对对象方法的核心。
2 类图的基本成分
(1)类 对应ER图中的实体类型(实体集),对象联系图中的对象类型
上面部分给出类的名称;
中间部分给出该类的单个对象的属性;
下面部分给出一些可以应用到这些对象的操作
(2)关联 对应于ER图中的联系类型
包括内容:关联元数 关联角色(与关联相关的类) 重复度(类似ER图中的实体基数)
一个简单的类图:
1…1 Edit 0…*
上图同样表示了university(大学)和cousertext( 有关课程的建材)两个对象之间的联系
一个复杂的类图:
一个关联类:
3 由上可以大致看出类图的一些优点
优点: 结构性较强,特别适用于数据分析相比于ER图和对象连接图,
提供了更多更复杂的操作,适于行计算机处理
与数据模型不同,它不仅显示了信息的结构,同时还描述了系统的行为
可视性较强
三者的比较
*******************************************************************************五 基本的区别和联系
对上图一些比较项目的解释:
1 是否平面关系模型
** 在ER图中,属性的类型一般只局限于基本的数据类型,不能表现出嵌套和引用递
归等关系。 若要实现一个实体类型内的属性是另一个实体类型的关系时,只有通过在
这两实体之间建立联系来实现。这种联系有两个缺点:
(1) 没有方向性
(2) 从本质上来说, 这两个实体仍然处于同一层次,即,仍然是
平面化的关系模型
。
** 对象联系图允许对组成对象(也就是实体的)属性进行多种的分类选择,可以是
基本的属性,也可以是元组类型,关系类型,甚至“引用类型”,后者有能力支持对象
之间的嵌套或者引用(而且避免了无穷嵌套的问题,可以表达出递归的结构)超越了 “平
面文件”的范围,而且具有正逆两个方向的查询关系指向,即,由方向性
** 在类图中,这种超越平面的关系可以通过设立关联来实现。同样具有方向性。
2 是否表现了系统的行为(我们自己称呼为非完全静态)
针对三者的构架的出发点。虽然说三者都是静态的,但是也有一定程度上的区别。
** ER图认识问题的出发点是从信息系统主体角度出发的,目的是直接得到现实世
界从信息角度分解的结果。着重于如何直接用数据关系来转述现实世界实物之间的关系。 因为ER模型是一个直接的数据关系模型,所以,从ER图看来,一切都是静态的,动态的东西也要静态化来处理,就像用线性化方法处理非线性问题。
** 而对象联系图以及UML图认识问题的出发点是现实世界存在的活的事物,
的是先从本质上理解现实世界事物运动变化发展的规律,再考虑如何在计算机中模拟
出这种本质规律的机制。
他们之所以被称为静态模型,是因为其反映了事物本身和事物之间的相互关系
的相对稳定性,这种稳定性是我们通过对事物运动变化过程离散采样,然后进行分析发现的相对不变的部分。目的并不是得到这个相对稳定的对象和对象关系模型,而是根据这部分的认识,再重新拟合出新的现实世界过程模型。
六 相同功能的不同实现以及延展
1 概化/特化
类图以及对象联系图都支持数据的概化/特化,在ER模型中,类似的概念也可以由子类实体/超类实体体现
在这一点上,类图提供了比其余两者更多的相关的操作。
(1)首先,我们可以在紧靠路径的地方设立鉴别器以指出概化的基础
(2)其次 在类图中可以实现“抽象类”,“具体类”的划分。
在实际的操作过程中,很多的时候我们只是需要为一些用到的类别定义他们的超类以期达到统一的目的,这里的“抽象类”就提供了一种手段,在使用的过程中,我们在定义一些没有其他的使用价值,这是在概念上需要存在的类的时候,不仅可以灵活的运动,也可以及时地识别它们。
(3)最后 子类的语义约束“overlapping” “ disjoint” “complete” “imcomplete ” 限定了子类与子类,子类与超类的关系。
2 在表示实体(对象)之间的联系上
七一些独有的操作
由于类图是出现较晚较完善的一种模型,相应的在类图中提供了一些独有的操作。这是以类图独特的封装结构性较强的特点为基础的
1 类图支持对关联的模拟类,即关联类 ,包含了关联自己的属性,甚至,还可以和其他的有关类再构成关联。
2 类图支持聚合操作。
对象联系图也支持概化/特化,这是一个能表示既承袭联系的概念,简单的说。这是一个“is a “的联系。
与此不同,聚合是一种形式更强的关联联系,表示的是成分对象和聚合对象之间“is part of “ 的联系。聚合(Aggregation)是一种特殊形式的关联。聚集表示类之间的关系是整体与部分的关系。一辆轿车包含四个车轮、一个方向盘、一个发动机和一个底盘,这是聚集的一个例子。在需求分析中,"包含"、"组成"、"分为……部分"等经常设计成聚集关系。聚集可以进一步划分成共享聚集(Shared Aggregation)和组成。
*******************************************************************************
总结
ER图,对象联系图,类图, 是一个循序渐进的发展过程。以前,由于在技术标准上尚未找到对对象和对象关系信息的持久存储问题的答案,所以需要用关系型数据库来保存这些信息,于是出现几个模型混用的局面。
如今,XML已经成为分布式的对象和对象关系信息的持久存储和交换的标准,但平台工具层面尚未有成熟的面对对象数据库得到广泛应用,因此,这个蹩脚的技术问题还会困扰我们一段时间。
以上讨论的三种建模方式各有自己的优缺点,在组成的要素,特点以及提供的功能结构上各不相同。但相同的,无论选择哪一种建模方式, 在建模过程忠,我们注意要把握住两点原则:
1.所有的事必须要有对象来完成;
2.所有的对象必须做适当的事。
面向对象建模的意思不是对一个静态的事物建立它的结构模型(那更象ER模型的作用),而是对一个连续运转的过程建立的模型,因为支持这个过程运转的实体全部都是对象。正因为对象是用来支持一个运动的过程的,对象就必须要有自己的行为特征和表象特征,这就是对象的方法和属性。不同对象的行为连接起来运转,就造就了过程的实现。
模型只是对实物的抽象化或离散化。
我们必须清楚地认识到,这些所有的建模方式只是技术手段,而真正重要的是思想。
- -----------------------------------0124169 沈梦圆
本文来源:https://www.2haoxitong.net/k/doc/7dee65d76429647d27284b73f242336c1fb93013.html
文档为doc格式