空间数据库的第四章讲.ppt
《空间数据库的第四章讲.ppt》由会员分享,可在线阅读,更多相关《空间数据库的第四章讲.ppt(76页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、面向对象空间数据模型面向对象空间数据模型 Back一、面向对象的一、面向对象的概念概念与与模型模型二、面向对象的空间要素二、面向对象的空间要素模型模型三、面向对象的三、面向对象的 几何对象模型几何对象模型四、空间数据库的纯关系四、空间数据库的纯关系实现实现 五、空间数据库的对象关系五、空间数据库的对象关系实现实现 面向对象的概念(核心概念)面向对象的概念(核心概念)一、核心概念一、核心概念(一)对象(一)对象(Object)现实世界中的各类现象抽象表示成具有不同特征的对象。对象是具有现实世界中的各类现象抽象表示成具有不同特征的对象。对象是具有状态和行为特征的实体,对象之间相互区分、相互联系。对
2、象的标识、状态和行为特征的实体,对象之间相互区分、相互联系。对象的标识、属性和方法是它的三个关键成分。属性和方法是它的三个关键成分。1、对象标识:为每个对象在全系统范围内定义唯一标识(、对象标识:为每个对象在全系统范围内定义唯一标识(OID-Object Identifier),在其生命周期中保持不变,是确定对象存取的唯一,在其生命周期中保持不变,是确定对象存取的唯一方法。方法。2、对象属性:对象的状态通过属性变量定义,由属性值描述。属性、对象属性:对象的状态通过属性变量定义,由属性值描述。属性变量定义属性的型,包括属性名称、数据类型、取值范围和语义完整性变量定义属性的型,包括属性名称、数据类
3、型、取值范围和语义完整性约束。每个对象具有一到多个属性,所有属性值共同描述其状态。约束。每个对象具有一到多个属性,所有属性值共同描述其状态。3、对象方法:表示对象状态的属性值由一组函数来操作和维护,这、对象方法:表示对象状态的属性值由一组函数来操作和维护,这些函数称为方法。属性的型是事先定义的,属性值由方法来获取和改变。些函数称为方法。属性的型是事先定义的,属性值由方法来获取和改变。面向对象的概念面向对象的概念(核心概念)(核心概念)(二)消息(二)消息(Message)对象的属性只能通过对象自己的方法来获取和改变。消息是对对象的属性只能通过对象自己的方法来获取和改变。消息是对象间交互的手段,
4、一个对象要获取或改变另外一个对象的属性,只象间交互的手段,一个对象要获取或改变另外一个对象的属性,只能通过消息引用被访问对象提供给外界的方法来实现。能通过消息引用被访问对象提供给外界的方法来实现。(三)协议(三)协议(Protocol)协议是一个对象所能接受的所有消息构成的集合,是对象的对协议是一个对象所能接受的所有消息构成的集合,是对象的对外接口,是被访问对象提供给其他对象使用的所有方法的集合。外接口,是被访问对象提供给其他对象使用的所有方法的集合。(四)封装(四)封装(EncapsuIation)和消息传递)和消息传递 对象、消息和协议打包在一起叫封装。将属性和方法封装在对对象、消息和协议
5、打包在一起叫封装。将属性和方法封装在对象中,向对象发送消息,通过对象所指定的公共接口来存取、维护象中,向对象发送消息,通过对象所指定的公共接口来存取、维护属性,这是访问对象属性的唯一方法。封装的意义在于对象的访问属性,这是访问对象属性的唯一方法。封装的意义在于对象的访问只能按对象提供给外界的协议接口进行,只能通过协议中提供的方只能按对象提供给外界的协议接口进行,只能通过协议中提供的方法向对象发送消息。法向对象发送消息。面向对象的概念面向对象的概念(核心概念)(核心概念)(五)类和实例(五)类和实例(CIass、Instance)类是对具有共同特征的一组对象的抽象,具有相同的属性类型、消息接类是
6、对具有共同特征的一组对象的抽象,具有相同的属性类型、消息接口和方法定义的所有对象构成一个类。类中的一个具体对象称为其所属类的口和方法定义的所有对象构成一个类。类中的一个具体对象称为其所属类的一个实例,每个实例具有各自不同的状态(属性值)。类有三种主要类型:一个实例,每个实例具有各自不同的状态(属性值)。类有三种主要类型:1、抽象类、抽象类(AbstractClass):不能创建对象,只能作为父类。:不能创建对象,只能作为父类。2、伴随类(、伴随类(CoClass):可创建类。可直接创建新对象或实例化。:可创建类。可直接创建新对象或实例化。3、类、类(Class):可实例化类。不能直接创建新对象
7、,但在其他类的属性:可实例化类。不能直接创建新对象,但在其他类的属性中可创建它的对象,可以被另一个类的对象实例化,可以被其他类引用,是中可创建它的对象,可以被另一个类的对象实例化,可以被其他类引用,是一种元件类或成份类。一种元件类或成份类。图4-1 类与联系 面向对象的概念面向对象的概念(核心概念)(核心概念)(六)类的描述(六)类的描述 类的定义称为类的描述(对象的型或模式),包括协议描类的定义称为类的描述(对象的型或模式),包括协议描述和实现描述两个方面。协议描述定义了该类实例的消息接口述和实现描述两个方面。协议描述定义了该类实例的消息接口(协议中所有消息),实现描述包括属性变量的定义及所
8、有方(协议中所有消息),实现描述包括属性变量的定义及所有方法的实现方式描述。法的实现方式描述。(七)继承与类等级(七)继承与类等级(Inheritance、CIass Hierarchy)类等级结构表达了超类类等级结构表达了超类(或父类、基类或父类、基类)与子类间的继承关与子类间的继承关系,类等级的继承性使得子类能自动地继承其超类的全部语义系,类等级的继承性使得子类能自动地继承其超类的全部语义特性(属性、方法、约束)。多层类的继承具有传递性,下层特性(属性、方法、约束)。多层类的继承具有传递性,下层子类可继承其上部各层超类的全部语义特性,即父类的所有属子类可继承其上部各层超类的全部语义特性,即
9、父类的所有属性和方法可以被它的所有子类传递地继承。子类还可以附加新性和方法可以被它的所有子类传递地继承。子类还可以附加新的属性和方法,一个实例是其所有超类的一个逻辑上的实例。的属性和方法,一个实例是其所有超类的一个逻辑上的实例。面向对象的概念面向对象的概念(核心概念)(核心概念)(八)功能重载和多态性(八)功能重载和多态性(0verLoading、PoIymphism)子类对超类方法的覆盖功能就是重载与多态的体现。子子类对超类方法的覆盖功能就是重载与多态的体现。子类定义的新方法与继承父类的旧方法可具有相同的名称、类定义的新方法与继承父类的旧方法可具有相同的名称、形式参数和返回值,也可以同名但具
10、有不同的形式。系统形式参数和返回值,也可以同名但具有不同的形式。系统调用时根据不同的描述信息,选择合适的方法运行。通常调用时根据不同的描述信息,选择合适的方法运行。通常把同一个类中有多个同名方法的现象称为重载或多态,消把同一个类中有多个同名方法的现象称为重载或多态,消息传递的实现是以重载和多态为支撑。息传递的实现是以重载和多态为支撑。(九)类图(九)类图 类图是一种框架类图是一种框架(Frame)、模板(、模板(Template)或模式或模式(Schema),描述同类对象的特征及多个类之间的联系。,描述同类对象的特征及多个类之间的联系。(十)实例图(十)实例图 实例(对象)图是类图的具体实现,
11、给定一张类图必对实例(对象)图是类图的具体实现,给定一张类图必对应实例图的一个无限集合。应实例图的一个无限集合。面向对象的概念面向对象的概念(核心概念)(核心概念)(十一)链接与联系(十一)链接与联系(Llnk、Association)链接与联系是建立对象之间及类之间关系的一种手段。两类之间的直链接与联系是建立对象之间及类之间关系的一种手段。两类之间的直线表示联系,两对象之间的直线表示链接。联系主要有下列三种:线表示联系,两对象之间的直线表示链接。联系主要有下列三种:1、实例化(、实例化(Instantiation):一个类中有一个方法可创建另一个类):一个类中有一个方法可创建另一个类的对象。
12、的对象。2、聚集或聚合(、聚集或聚合(Aggregation 和和 Composition):聚集表示):聚集表示“部分部分与整体与整体”的关系,由元件的关系,由元件(Components)对象构造复杂组合对象构造复杂组合(Assembly)对象。对象。主类控制着成分类的生命周期。主类控制着成分类的生命周期。3、联合(、联合(Association):除去类等级关系和类组成关系以外,还有):除去类等级关系和类组成关系以外,还有一些类之间的对应关系称为联合。如:材料与产品的关系,学生与课程的一些类之间的对应关系称为联合。如:材料与产品的关系,学生与课程的关系等。关系等。(十二)一般化和特殊化(十
13、二)一般化和特殊化(Generalization、Specification)一般化指从一组相似的对象中找出共性,子类的共性归入父类,产生一般化指从一组相似的对象中找出共性,子类的共性归入父类,产生祖先类与后代类之间的类等级和类结构关系。特殊化是在一般类共性的基祖先类与后代类之间的类等级和类结构关系。特殊化是在一般类共性的基础上扩展特性构成新的具体类,子类可继承父类的性质,可对父类的属性础上扩展特性构成新的具体类,子类可继承父类的性质,可对父类的属性和方法进行更新,也可添加自身特定的属性及方法。和方法进行更新,也可添加自身特定的属性及方法。面向对象的概念(扩充概念)面向对象的概念(扩充概念)二
14、、扩充概念二、扩充概念复合对象与类复合等级复合对象与类复合等级 如果对象的一个属性的定义域不是基本类如果对象的一个属性的定义域不是基本类(整数、字符串等整数、字符串等),而是另一个非基本类(一个类等级结构),对应的属性值为这个非而是另一个非基本类(一个类等级结构),对应的属性值为这个非基本类的类等级结构中任意一个类的一个实例,属性取值为该对象基本类的类等级结构中任意一个类的一个实例,属性取值为该对象的标识符(一个对象引用其他对象),这个对象称为的标识符(一个对象引用其他对象),这个对象称为复合对象复合对象。复合对象是构成一个整体与部分等级的非匀质对象集合,它将复合对象是构成一个整体与部分等级的
15、非匀质对象集合,它将“整体与部分整体与部分”的关系补充到一个对象与其引用的其他对象之间的的关系补充到一个对象与其引用的其他对象之间的聚集关系中。聚集关系中。面向对象表达方式中,空间要素的主题属性在一个基本类面向对象表达方式中,空间要素的主题属性在一个基本类(整整数或字符串数或字符串)的范围内取值,而空间属性的定义域则为一个非基本的范围内取值,而空间属性的定义域则为一个非基本类,空间属性取值为非基本类的类等级中某个对象(几何对象)的类,空间属性取值为非基本类的类等级中某个对象(几何对象)的主关键字或对象标识,称为空间要素对一个几何对象的引用。主关键字或对象标识,称为空间要素对一个几何对象的引用。
16、对象的引用建立了一个对象和引用它的另一个对象之间的对象的引用建立了一个对象和引用它的另一个对象之间的“整整体与部分体与部分”关系,通过属性对其他类的引用构成嵌套关系模型,称关系,通过属性对其他类的引用构成嵌套关系模型,称为为类复合等级类复合等级(a class composition hierachy)。Back面向对象数据模型面向对象数据模型一、对象与封装性(一、对象与封装性(encapsulation)每个概念实体模型化为一个对象,一个对象由描每个概念实体模型化为一个对象,一个对象由描述该对象状态的一组属性数据和表达其行为的一组方述该对象状态的一组属性数据和表达其行为的一组方法组成,是属性
17、数据和行为的统一体。法组成,是属性数据和行为的统一体。一个对象一个对象object可定义成一个三元组:可定义成一个三元组:object=(ID,S,M)其中,其中,ID为对象标识,为对象标识,M为方法集,为方法集,S为对象的属为对象的属性数据集合,它可以是一个属性值,也可以是另外一性数据集合,它可以是一个属性值,也可以是另外一组对象的集合,明显地表现出对象的递归。组对象的集合,明显地表现出对象的递归。面向对象数据模型面向对象数据模型二、分类(二、分类(classification)类是同类对象的集合,类将具有相同属性和方类是同类对象的集合,类将具有相同属性和方法的对象组合在一起。法的对象组合在
18、一起。属于同一类的所有对象具有相同的属性定义属于同一类的所有对象具有相同的属性定义(数据类型和取值范围)和方法定义(函数体)。(数据类型和取值范围)和方法定义(函数体)。用一个三元组来描述类:用一个三元组来描述类:class=(CID,CS,CM)其中,其中,CID为类标识,为类标识,CS为类的状态描述,为类的状态描述,CM为该类的方法。为该类的方法。显然有:显然有:S CS和和M CM 当当object class 面向对象数据模型面向对象数据模型三、概括(三、概括(generalization)将多个类中的公共属性和方法抽象出来形成一种更一般的超类。将多个类中的公共属性和方法抽象出来形成一
19、种更一般的超类。设有两个类:设有两个类:class1=(CID1,CS1,CM1)=(CID1,CSA,CSB,CMA,CMB)class2=(CID2,CS2,CM2)=(CID2,CSA,CSC,CMA,CMC)class1和和class2中都带有相同的属性子集中都带有相同的属性子集CSA和方法子集和方法子集CMA。并且:并且:CSA CS1和和CSA CS2 以及以及CMA CM1和和CMA CM2。将共同属性和方法提取出来形成一种超类,将共同属性和方法提取出来形成一种超类,SID为超类的标识符。为超类的标识符。Superclass=(SID,CSA,CMA)定义超类后定义超类后clas
20、s1和和class2称为称为Superclass的子类,分别表示为:的子类,分别表示为:class1=(CID1,CSB,CMB)class2=(CID2,CSC,CMC)面向对象数据模型面向对象数据模型 超类与子类之间的继承与抽象关系构成一种类等级结构,空间数超类与子类之间的继承与抽象关系构成一种类等级结构,空间数据库中限定每个子类只能有一个父类,但可以有多个子类。子类可从据库中限定每个子类只能有一个父类,但可以有多个子类。子类可从父类继承属性和方法,也可定义自身特有的属性和方法。父类继承属性和方法,也可定义自身特有的属性和方法。图图4-2为一个简单的层次模型,表示了路类、公路类、路段类之间
21、为一个简单的层次模型,表示了路类、公路类、路段类之间的类等级关系。公路类是路类的子类,路段类是公路类的子类。公路的类等级关系。公路类是路类的子类,路段类是公路类的子类。公路类继承了路类的属性,并增加了等级、路面、宽度等属性。路段类除类继承了路类的属性,并增加了等级、路面、宽度等属性。路段类除了继承公路类的属性外,又新定义了起点、终点等自己的属性。了继承公路类的属性外,又新定义了起点、终点等自己的属性。图图4-2 空间类的类等级结构空间类的类等级结构 面向对象数据模型面向对象数据模型四、聚集(四、聚集(aggregation)聚集将几个不同特征的对象组合成一个更高水平的复合对象,每个聚集将几个不
22、同特征的对象组合成一个更高水平的复合对象,每个不同特征的对象是该复合对象的一部分,它们有自己的属性数据和方法,不同特征的对象是该复合对象的一部分,它们有自己的属性数据和方法,这些属性数据和方法不能为复合对象所公用,但复合对象可以从中派生这些属性数据和方法不能为复合对象所公用,但复合对象可以从中派生得到一些信息。例如,弧段聚集成线状地物或面状地物,简单地物组成得到一些信息。例如,弧段聚集成线状地物或面状地物,简单地物组成复杂地物。复杂地物。设有两种不同特征的元件对象:设有两种不同特征的元件对象:object1=(ID1,S1,M1)object2=(ID2,S2,M2)用它们组成一个新的复合对象
23、:用它们组成一个新的复合对象:object3=(ID3,S3,Object1(Su),),Object2(Sv)M3)其中其中Su S1,Sv S2,从式中可见,复合对象,从式中可见,复合对象object3拥有自拥有自己的属性值和操作,它仅从分子对象中提取部分属性值,且一般不继承己的属性值和操作,它仅从分子对象中提取部分属性值,且一般不继承子对象的方法。子对象的方法。面向对象数据模型面向对象数据模型 一个空间类(非基本类)的实例可以作为元件类实例,聚合成另一一个空间类(非基本类)的实例可以作为元件类实例,聚合成另一个不同类型空间类的实例。聚合与引用关系表达了类与类之间的横向构个不同类型空间类的
24、实例。聚合与引用关系表达了类与类之间的横向构成关系,构成了空间数据库的类复合等级结构。一个复杂的空间对象由成关系,构成了空间数据库的类复合等级结构。一个复杂的空间对象由多个其他的空间对象组成,如交通网络由交叉路口、服务设施、道路等多个其他的空间对象组成,如交通网络由交叉路口、服务设施、道路等组成。图组成。图4-3为复合引用与弱引用举例:为复合引用与弱引用举例:图图4-3 空间类的类复合等级结构空间类的类复合等级结构 面向对象数据模型面向对象数据模型五、联合(五、联合(association)类等级和类复合等级关系是空间类之间的两个最主要关系,除此类等级和类复合等级关系是空间类之间的两个最主要关
25、系,除此之外实例间还存在一些其他联系,如共存时间段、联合关系等。之外实例间还存在一些其他联系,如共存时间段、联合关系等。在定义对象时,将同一类对象中的几个具有相同属性值的对象组在定义对象时,将同一类对象中的几个具有相同属性值的对象组合起来,为了避免重复,设立一个更高水平的对象表示那些相同的属合起来,为了避免重复,设立一个更高水平的对象表示那些相同的属性值。性值。假设有两个对象具有一部分相同的属性值:假设有两个对象具有一部分相同的属性值:object1=(ID1,SA,SB,M)object1=(ID2,SA,SC,M)可设立新对象可设立新对象object包含包含object1和和object2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 空间 数据库 第四
限制150内