当前位置:课程学习>>第三章 矢量数据模型>>电子教案>>知识点四


知识点四:面向对象数据模型


一、 基本含义

目前非空间数据最主要的数据模型是层次模型、网状模型和关系模型,任何一种模型都无法反映现实世界的所有方面,对于复杂的事物和现象更是如此。因而不可能设计出一种通用的数据结构和数据模型来适应所有的情况,往往是在描述一类问题时体现了优越性,而在描述另一类问题时却是低效的。 为了有效地描述复杂的事物或现象,需要在更高层次上综合利用和管理多种数据结构和数据模型,并用面向对象的方法进行统一的抽象,这就是面向对象数据模型的含义。其具体实现就是面向对象的数据结构。

二、复杂对象及其特点

面向对象的地理数据模型的核心是对复杂对象的模拟和操纵。所谓复杂对象是指具有复杂结构和操作的对象。复杂对象可以由多种关系聚合抽象而成,或由不同类型的对象构成,或具有复杂的嵌套关系等。 例如,在GIS中的一个复杂地理实体(如学校)可能含有矢量数据、栅格数据、属性数据,甚至多媒体数据,而且可以认为是由其他较简单的实体(如道路、教学楼、操场等)组成,因此,可以作为一个复杂对象。GIS的地理实体所具有的矢量数据也可以认为是一个复杂对象,因为它包含了几何数据和属性数据,而几何数据又是由点、线、面等简单对象组成的。

因此,复杂对象的特点可归结为:

(1)一个复杂对象由多个成员对象构成,每个成员对象又可参与其他对象的构成。

(2)具有多种数据结构,如矢量、栅格、关系表等。

(3)一个复杂对象的不同部分可由不同的数据模型所支持,也就是说,可以分布于不同的数据库中。

三、面向对象地理数据模型的特点

(1)可充分利用现有数据模型的优点。面向对象的数据模型是一种抽象的模型,允许设计者在基本功能上选择最为适用的技术。如可以把矢量和栅格数据结构统一为一种高层次的实体结构,这种结构可以具有矢量结构和栅格结构的特点,但实际的操作仍然是矢量数据用矢量运算,栅格数据用栅格算法。

(2)具有可扩充性。由于对象是相对独立的,因此可以很自然和容易地增加新的对象,并且对不同类型的对象具有统一的管理机制。

(3)可以模拟和操纵复杂对象。传统的数据模型是面向简单对象的,无法直接模拟和操纵复杂实体,而面向对象的数据模型具备对复杂对象进行模拟和操纵的能力。

四、GIS中面向对象的数据模型

对于传统的数据模型,其数据结构是与之分离的。而对于面向对象的数据模型,其数据模型和数据结构是一致的,数据模型的具体实现就是数据结构。 在GIS的面向对象的数据结构中,通常可以把空间数据抽象为点、线、面三种简单的地物类型作为三种简单对象:

(1)点状地物。如水井、灯塔、车站等。具有标识号、编码、定位点坐标等数据项,并且有显示、增加、删除、修改等操作。当点状地物是有向地物时,需要两对定位点坐标。

(2)线状地物。如道路、河流等。线状地物由一条或多条弧段组成,弧段还涉及两端的结点。具有标识号、编码、组成线状地物的弧段等数据项,具有显示、增加、删除、修改、计算长度等操作。

(3)面状地物。如湖泊、街区等。由一条或多条弧段构成。除了具有标识号、编码、 弧段串等数据项外,还常常含有面的内点坐标、面的面积,甚至面状地物的外接矩形的坐标等。除了具有增加、删除、修改、显示等操作外,还应具有计算面积的操作。

点、线、面这三种简单地物类型涉及到了孤立点、节点、结点、弧段等数据类型,并且还应该与注记有紧密的联系。 一个地理实体可以由这三种简单对象之一构成。复杂的地理实体可以由多种简单对象中构成,甚至可以由其他复杂对象构成。每个地理实体都可以通过其标识号和其属性数据联系起来。若干个地理实体可以作为一个图层,若干个图层可以组成一个工作区。在GIS中可以开设多个工作区。

地理对象关系模型的建模方法一般有三部分,在“用户层”以面向对象思想来组织数据;在“计算机层”以关系数据库来组织数据;在“中间层”增加一个转换机制,将用户语言“翻译”成计算机语言。

此外,在GIS中建立面向对象的数据模型时,对象的确定还没有统一的标准。但是,对象的确定应符合人们对客观世界的理解,并且要完整地表达各种地理对象及它们之间的相互关系。

进入知识点五