电话威胁恐吓算违法吗:gis原理十

来源:百度文库 编辑:偶看新闻 时间:2024/04/30 01:59:27

§2.6 空间数据模型

    地理信息通过数据采集和编辑以后,送入到计算机的外存设备。对于海量的地理数据,再采用文件系统的方法来管理肯定不行了,必须采用数据库技术进行管理。因此,地理数据库成了GIS研究的重要课题。地理数据库是地理空间数据的集合,是一种与现实的地理世界保持一定相似性的实体模型。

    由于传统数据模型存储空间数据的局限性,使得它们并不适用于空间数据的有效管理,地理信息系统需要研究自己的空间数据模型。

一、数据库基础知识

    主要介绍数据库的概念、数据库的主要特征、数据库的系统结构、数据模型和数据库管理系统等相关基本知识。

二、传统数据模型

    介绍层次、网状和关系三种传统数据模型的基本概念和描述地理实体的方法。

三、传统模型存储空间数据的局限

    介绍层次、网状和关系三种传统数据模型在存储和管理空间数据时的局限性。

四、面向对象技术

    介绍面向对象的基本思想和基本概念,面向对象的特性,面向对象数据模型的核心技术和核心工具。

五、面向对象地理数据模型

    介绍面向对象地理数据模型的含义,面向对象的几何数据模型、属性数据模型和面向对象数据库系统的基本概念、特征以及面向对象数据库系统所具有的优势。

六、空间数据库管理系统

    目前对于空间数据库管理系统的研究和应用主要包括以下几种:基于文件管理的方式文件与关系数据库混合管理系统全关系型空间数据库管理系统对象--关系数据库管理系统面向对象空间数据库管理系统

一、数据库基础知识

    建立地理空间数据库是地理信息系统建立的首要任务。由于空间数据的空间特性,在建立空间数据库时,一方面应遵循和应用通用的数据库的原理和方法;另一方面又必须采取一些特殊的技术和方法来解决其他数据库所没有的问题。

1、数据库的概念

    数据库技术产生于60年代末期,是计算机领域中最重要的技术之一,是一种较理想的数据管理技术。所谓数据管理是指对数据的组织、存贮、检索和维护。用计算机进行数据管理大体经历了三个阶段:即人工管理阶段文件系统阶段数据库阶段

    由于文件系统存在着文件之间无联系、数据不完全独立于程序,只在文件级共享数据等缺陷,因而数据库就发展了起来。

    数据库可以看作是与现实世界有一定相似性的模型,是认识世界的基础,是集中、统一地存储和管理某个领域信息的系统,它根据数据间的自然联系而构成,数据较少冗余,且具有较高的数据独立性,能为多种应用服务。

    数据库作为一个复杂的系统,由数据集、物理存储介质和数据库软件三个基本部分构成。

数据库的三个基本构成部分

    作为一个复杂的系统,数据库由数据集、物理存储介质和数据库软件三个基本部分构成:

1)数据集,一个结构化的相关数据的集合体,包括数据本身和数据间的联系。数据集独立于应用程序而存在,是数据库的核心和管理对象。

2)物理存储介质,指计算机的外存储器和内存储器。前者存储数据;后者存储操作系统和数据库管理系统,并有一定数量的缓冲区,用于数据处理,以减少内外存交换次数,提高数据存取效率。

3)数据库软件,其核心是数据库管理系统(DBMS)。主要任务是对数据库进行管理和维护。具有对数据进行定义、描述、操作和维护等功能,接受并完成用户程序和终端命令对数据库的请求,负责数据库的安全。

2、数据库的主要特征

    数据库方法与文件系统方法相比,具有更强的数据管理能力。数据库具有如下主要特征:

1)数据集中控制,在文件管理方法中,文件是分散的,每个用户或每种处理都有各自的文件,这些文件之间一般是没有联系的,因此,不能按照统一的方法来控制、维护和管理。而数据库则很好地克服了这一缺点,可以集中控制、维护和管理有关数据。

2)数据独立,数据库中的数据独立于应用程序,包括数据的物理独立性和逻辑独立性,给数据库的使用、调整、优化和进一步扩充提供了方便,提高了数据库应用系统的稳定性。

3)数据共享,数据库中的数据可以供多个用户使用,每个用户只与库中的一部分数据发生联系;用户数据可以重叠,用户可以同时存取数据而互不影响,大大提高了数据库的使用效率。

4)减少数据冗余,数据库中的数据不是面向应用,而是面向系统。数据统一定义、组织和存储,集中管理,避免了不必要的数据冗余,也提高了数据的一致性。

5)数据结构化,整个数据库按一定的结构形式构成,数据在记录内部和记录类型之间相互关联,用户可通过不同的路径存取数据。

6)统一的数据保护功能,在多用户共享数据资源的情况下,对用户使用数据有严格的检查,对数据库规定密码或存取权限,拒绝非法用户进入数据库,以确保数据的安全性、一致性和并发控制。

3、数据库的系统结构

    数据库系统的结构,一般划分为三个层次,它们是概念模式、外模式和内模式(图2-6-1)。

数据库的三级模式

    数据库系统结构是由概念模式、外模式和内模式构成。

1)概念模式,亦称模式。是数据库的总框架。描述数据库中关于目标存储的逻辑结构和特性,基本操作和目标与目标及目标与操作的关系和依赖性,以及对数据的安全性、完整性等方面的定义。所有数据都按这一模式进行装配。概念模式由概念模式描述语言DDL来进行描述。

2)外模式,亦称子模式。是数据库用户的数据视图。它属于概念模式的一部分,描述用户数据的结构、类型、长度等。所有的应用程序都是根据外模式中对数据的描述而不是根据概念模式中对数据的描述而编写的。在一个外模式中可以编写多个应用程序,但一个应用程序只能对应一个外模式。根据应用的不同,一个概念模式可以对应多个外模式,外模式可以互相覆盖。外模式由外模式描述语言SDDL进行具体描述。

3)内模式亦称存储模式。是对数据库在物理存储器上具体实现的描述。它规定数据在存储介质上的物理组织方式、记录寻址技术,定义物理存储块的大小,溢出处理方法等。与概念模式相对应。内模式由数据存储描述语言DSDL进行描述。

    数据库系统的三级模式结构将数据库的全局逻辑结构用户的局部逻辑结构物理存储结构区分开来,给数据库的组织和使用带来了方便。不同的用户可以有各自的数据视图,所有用户的数据视图集中在一起统一组织,消除冗余数据,得到全局数据视图。用存储描述语言来定义和描述全局数据视图数据,并将数据存储在物理介质上。这中间进行了两次映象。一次是外模式与概念模式之间的映象,定义了它们之间的对应关系,保证了数据的逻辑独立性;另一次是概念模式与内模式之间的映象,定义了数据的逻辑结构和物理存储之间的对应关系,使全局逻辑数据独立于物理数据,保证了数据的物理独立性

    在数据库系统中,用户所看到的数据和计算机中存放的数据是两回事,当然是有联系的。用户所理解的是用户自己理解的实体、实体的属性和实体间的关系,即用户只看到数据库的外层

4、数据模型

    在数据库系统中,现实世界中的事物及联系是用数据模型来描述的,数据库中各种操作功能的实现是基于不同的数据模型的,因而数据库的核心问题是模型问题。数据模型是数据库中对数据的逻辑组织形式的描述。

    数据模型是对现实世界部分现象的抽象,它描述了数据的基本结构及其相互之间的关系和在数据上的各种操作,是数据库系统中关于数据内容和数据间联系的逻辑组织的形式表示,以抽象的形式描述和反映一个部门或系统的业务活动和信息流程。

    选择与建立数据模型的目的是用最佳的方式反映本部门的业务对象及信息流程和以最佳的方式为用户提供访问数据库的逻辑接口。数据模型的三要素:数据结构数据操作数据的约束条件

    数据模型大体可以分为两种类型:一种是独立于计算机之外的,如实体——关系模型、语义数据模型等,它们不涉及信息在计算机中如何表示,常称概念模型;另一种模型是直接面向计算机的,它们以记录为单位构造数据模型,如数据库中常用的层次模型、网状模型和关系模型等。(数据模型常用概念)

数据模型常用概念

1)实体(Entity):实体是指现实世界中客观存在的,并可相互区别的事物。实体可以指个体,也可以指总体,即个体的集合。

2)属性(Attribute):实体所具有的某一特性。

3)码(Key):唯一标识实体的属性集

4)域(Domain):属性的取值范围

5)实体型(Entity Type):具有相同属性的实体具有共同的特征和性质,用实体名和属性名集合表示

6)实体集(Entity Set):同型实体的集合

7)联系:一是实体内部的联系;二是实体型之间的联系(1:1 、1:n、 m:n)。

    数据模型是数据特征的抽象,它不是描述个别数据,而是描述数据的共性。严格地说,一个数据库的数据模型应能描述数据的静态、动态及相互制约特征,并反映现实世界中的实体之间的各种联系

数据的特征

1)静态特性。包括实体和实体具有的特性、实体间的联系等,通过构造基本数据结构类型来实现。

2)动态特性。即现实世界中的实体及实体间的不断发展变化,通过对数据库的检索、插入、删除和修改等操作来实现。

3)数据间的相互制约与依存关系。通过一组完整性规则来实现。

现实世界中的实体之间的各种联系

    数据模型反映了现实世界中的实体之间的各种联系。实体间的联系有两类:一类是实体内部属性间的联系;另一类是实体与实体之间的联系。

    实体与实体之间的联系是错综复杂的,可以分为以下三种:

1)一对一的联系,这是最简单的一种实体之间的联系,它表示两个实体集中的个体间存在的一对一的联系。记为1:1。

2)一对多的联系,这是实体间存在的较普遍的一种联系,表示一种实体集E1中的每个实体与另一实体集E2中的多个实体间存在的联系;反之,E2中的每个实体都至多与E1中的一个实体发生联系。记为1:m。

3)多对多的联系,这是实体间存在的更为普遍的一种联系,表示多个实体集之间的多对多的联系。其中,一个实体集中的任何一个实体与另一个实体集中的实体间存在一对多的联系;反之亦然。记为m:n。

5、数据库管理系统(DBMS)

    数据库管理系统(DBMS)是处理数据库数据存取和各种管理控制的软件。它是数据库系统的核心,应用程序对数据库的操作全部通过DBMS进行。数据库管理系统(DBMS)通常具有数据库定义、管理和维护功能

数据库管理系统具备的功能

1)数据库定义功能

    用数据库的数据描述语言DDL来定义概念模式、外模式和内模式,也就是说,具有给出数据库框架的功能。如定义数据库的逻辑结构、数据库的结构框架、定义数据项、建立记录类型、定义记录间的关系、指定安全控制要求等。

2)数据库管理功能

    指对数据进行更新、存取等的控制功能。通常提供有数据操作语言来作为用户和数据库之间的接口。常用的数据库管理功能如:从数据库中检索出满足条件的数据、向数据库中插入数据、删除数据、修改数据、进行控制操作(如并发控制)等。

3)数据库维护功能

    数据入库需要维护,通常包括如下工作:

a、改善系统的性能:及时掌握数据库的性能变化,性能下降时应进行干预,如对数据进行重新整理和组织。

b、受损后的复原:一方面应能防止各种伤害数据库的行为,另一方面当数据库受损后,应具有复原的手段。

二、传统数据模型

    传统数据模型是指层次模型、网状和关系这三种通用数据库模型。

1、层次模型

    层次模型是一种树结构模型,它把数据按自然的层次关系组织起来,以反映数据之间的隶属关系。层次模型是数据库技术中发展最早、技术上比较成熟的一种数据模型。它的特点是地理数据组织成有向有序的树结构,也叫树形结构。结构中的结点代表数据记录,连线描述位于不同结点数据间的从属关系(一对多的关系)。

    由树的定义知,一棵树有且仅有一个无双亲结点的称为的结点;其余结点有且仅有一个双亲结点,它们可分为m(m≥0)个互不相交的有限集,其中每一个集合本身又是一棵树,将其称为子树

    图2-6-2表示地理实体E及其空间要素,图2-6-3是图2-6-2所示空间关系所构成的层次模型。这是一棵有向有序树,结点表示不同层次的地理要素,连线描述地理要素之间的从属关系。结点从属于(构成)有向边,有向边从属于(构成)多边形,多边形从属于(构成)实体E。

2、网状数据模型

    网状模型将数据组织成有向图结构,图中的结点代表数据记录,连线描述不同结点数据间的联系。这种数据模型的基本特征是,结点数据之间没有明确的从属关系,一个结点可与其它多个结点建立联系,即结点之间的联系是任意的,任何两个结点之间都能发生联系,可表示多对多的关系。(层次、网状数据模型的区别和共同缺陷

层次、网状数据模型的区别和共同缺陷

    层次、网状数据模型的区别为:

    1)层次模型中从子女到双亲的联系是唯一的,而网状模型则可以不唯一;

    2)层次模型不允许有复合链,而网状模型则允许;

    层次数据模型和网状数据模型的缺陷

    1)要求应用程序员必须熟悉面向磁盘的优化技术和数据库的物理组织,对于每次特定的数据查询,必须编出十分复杂的查询应用程序。

    2)一旦有新类型的数据加入,将会导致数据库结构的变化,在这种情况下,通常应用程序需要重写。

    图2-6-2所示实体E及其空间要素的网状模型如图2-6-4所示。

    采用网状模型最典型的数据库系统是DBTG系统,它是1969年由一个美国标准化组织CODASYL委员会的数据库任务组提出的报告中首次推出的,这个报告是一个网状模型的数据描述语言和数据操纵语言规范化的文本,虽不是具体计算机的软件系统,但对网状数据库系统的研究和发展起了重要作用,现有的网状数据库系统大都是建立在DBTG模型上的。

3、关系数据模型

 

    关系模型是IBM公司的E·F·Codd提出来的。他从1970年起发表了多篇关于关系模型的论文,奠定了关系数据库的理论基础。由于关系数据库结构简单操作方便,有坚实的理论基础,所以发展很快,80年代以后推出的数据库管理系统几乎都是关系型的。涉及到的基础知识有:关系模型的逻辑数据结构表的操作符表的完整性规则视图、范式概念

表的操作符

    SQL(Structured Query Language)语言是1974年由Boyce和Chamberlin提出的,在IBM公司San Jose Research Laboratory研制的System R上实现了这种语言,1986年10月,美国国家标准局(ANSI)批准SQL作为关系数据库语言的国家标准,此后不久,国际标准化组织(ISO)也作出了同样的决定。

    SQL提供了表的操作符,它的功能包括查询(Query)、操纵(Manipulation)、定义(Defifition)和控制(Control)四个方面,是一个综合的、通用的、功能强大的关系数据库语言。

表的完整性规则

1)实体完整性:每个表有一个明确的主关键字,主关键字是一个或者多个属性的集合;

2)关联完整性:要求RDBMS保持其外来关键字与它相应的主关键字一致,外来关键字是一个表的主关键字但它又嵌入另一个表中。

视图和范式

1)视图(View):一个虚表,即视图所对应的数据并不是存储在视图中,而是存在导出它的一个或多个表中。

    2)范式:用来避免表修改操作的逻辑不一致性的一些规则集,范式有多种层次,高级范式可以对低级范式增加约束条件。在1971~1972年, Codd系统地提出了第一范式(1NF),第二范式(2NF),第三范式(3NF)的概念,1974年,他和Boyce又共同提出了BCNF,后来又有人提出了4NF和5NF。其中

a、1NF:如果一关系模式,它的每一个分量是不可分的数据项,则此关系模式为1NF;

b、2NF:若关系模式R∈1NF,且每个非主属性完全函数依赖于码,则R∈2NF;

c、3NF:若关系模式R(U,F)∈1NF,不存在非主属性对码的传递依赖,则R∈3NF;

d、BCNF:关系模式R(U,F)∈1NF,若X->Y,Y X时,X必含有码,则说R∈BCNF;

    第一范式的概念限制了系统对复杂对象的表示,从而使关系数据库对非传统的应用领域束手无策,为了使关系数据库适应现实的需求,有人提出用NF2(Non-First-Normal-Form)模型,这种模型允许关系作为属性值。但仅仅在理论上有些价值,而对于实用,若引入NF2,则不仅要修改数据模型,而且要较大地改动RDBMS中的其它许多部分,如存贮结构、存取方法等等,这在实现上很困难

    关系模型可以简单、灵活地表示各种实体及其关系,其数据描述具有较强的一致性和独立性。在关系数据库系统中,对数据的操作是通过关系代数实现的,具有严格的数学基础。

    图2-6-2所示地理实体E与空间要素用关系模型表示如图2-6-5所示。

    RDBMS在目前的现状是理论和技术都非常完善和成熟,商品化的产品大量涌向市场,基本上占据了目前的数据库市场中传统应用领域的全部和90%以上的非传统应用领域,典型的代表有:DB2、INGRES、Oracle、SyBase、Xbase、FoxPro、Rdb/VMS、Informix等等。目前关系模型仍在进一步发展

关系模型的进一步发展

    RDBMS的发展主要体现在以下方面:

1)非结构化大型对象(LOB-Large Object)的引进

    在关系模型中附加非结构化内容,用于存贮大量变长字符串和二进制数据,是DEC公司于1981年就引进的概念,只是当时并未流行。随着多媒体技术的推广和应用,需要对诸如文本数据、图像数据、静止的视频片断、全动感的视频信息、声音波形等等这类大量的非结构化数据进行存储和管理,于是在目前一些大型的RDBMS(如DB2、Oracle等)中,增加了大型对象这种数据类型。

2)分布式数据库

    70年代中期以来,由于计算机网络通信的迅速发展以及在地理上分散的公司、团体和组织对于数据库更为广泛的应用需求,在集中式数据库系统成熟技术的基础上产生和发展了分布式数据库系统,分布式数据库系统是数据库技术和网络技术两者相互渗透和有机结合的结果。目前,在该领域里,一些工作已经取得了显著的成果;许多基本问题已得到解决;一批原型系统已经研究成功并获得了许多经验;一些商品化的产品正在研制或已经推出。如Oracle、Informix、Sybase等等。

3)对象特性的融入

    为了迎接面向对象数据库在非传统应用领域对关系数据库提出的挑战,确保关系数据库在数据库领域的霸主地位,关系数据库巨头Oracle、Sybase、DB2、Informix都在积极努力,使自己的关系型产品增加一些面向对象的成分。目前已经有推向市场的这类产品存在,如Oracle8、DB2等。

c、用户管理:对用户应统一管理,分配使用权限,防止非法使用。

d、拓宽数据库用户的要求:根据用户要求,修改数据模式,根据新模式重新组织数据。

4)通讯功能

    应具有与操作系统的接口、与各种语言的接口、与其它数据库通讯等能力。

三、传统模型存储空间数据的局限

    已于前述,目前非空间数据最主要的数据模型是层次模型、网状模型和关系模型。这里,分别介绍它们用于GIS地理数据库的局限性。

1、层次模型用于GIS地理数据库的局限性

    层次模型反映了地理世界中实体之间的层次关系,在描述地理世界中自然的层次结构关系时简单、直观,易于理解,并在一定程度上支持数据的重构。它用于GIS地理数据库存在的主要问题是:

    1)很难描述复杂的地理实体之间的联系,描述多对多的关系时导致物理存储上的冗余;

    2)对任何对象的查询都必须从层次结构的根结点开始,低层次对象的查询效率很低,很难进行反向查询;

    3)数据独立性较差,数据更新涉及许多指针,插入和删除操作比较复杂,父结点的删除意味着其下层所有子结点均被删除;

    4)层次命令具有过程式性质,要求用户了解数据的物理结构,并在数据操纵命令中显式地给出数据的存取路径;

    5)基本不具备演绎功能和操作代数基础

2、网状模型用于GIS地理数据库的局限性

    网状模型是层次模型的一般形式,反映了地理世界中常见的多对多关系,在一定程度上支持数据的重构,具有一定的数据独立和数据共享特性,且运行效率较高。用于GIS地理数据库的主要问题如下:

    1)由于网状结构的复杂性,增加了用户查询的定位困难,要求用户熟悉数据的逻辑结构,知道自己所处的位置;

    2)网状数据操作命令具有过程式性质,存在与层次模型相同的问题;

    3)不直接支持对于层次结构的表达

    4)基本不具备演绎功能和操作代数基础

3、关系模型用于GIS地理数据库的局限性

    在GIS分析中,常常需要综合运用实体之间的空间关系和属性数据,这就要求GIS数据库能对实体的属性数据和空间数据进行综合管理。(图2-6-6)

    关系模型表示各种地理实体及其间的关系,方式简单、灵活,支持数据重构;具有严格的数学基础,并与一阶逻辑理论密切相关,具有一定的演绎功能;关系操作和关系演算具有非过程式特点。尽管如此,关系模型用于GIS地理数据库也还存在一些不足。主要问题是:

    1)无法用递归和嵌套的方式来描述复杂关系的层次和网状结构,模拟和操作复杂地理对象的能力较弱;

    2)用关系模型描述本身具有复杂结构和涵义的地理对象时,需对地理实体进行不自然的分解,导致存储模式、查询途径及操作等方面均显得语义不甚合理;

    3)由于概念模式和存储模式的相互独立性,及实现关系之间的联系需要执行系统开销较大的联接操作,运行效率不够高

    不难看出,关系模型的根本问题是不能有效地管理复杂地理对象。

四、面向对象数据模型

    面向对象的基本概念是在本世纪70年代萌发出来的,它的基本做法是把系统工程中的某个模块和构件视为问题空间的一个或一类对象。到了80年代,面向对象的方法得到很快发展,在系统工程、计算机、人工智能等领域获得了广泛应用。但是,在更高级的层次上和更广泛的领域内对面向对象的方法进行研究还是90年代的事。

(一)基本思想和基本概念

    面向对象的基本思想是通过对问题领域进行自然的分割,用更接近人类通常思维的方式建立问题领域的模型,并进行结构模拟和行为模拟,从而使设计出的软件能尽可能地直接表现出问题的求解过程。因此,面向对象的方法就是以接近人类通常思维方式的思想,将客观世界的一切实体模型化为对象。每一种对象都有各自的内部状态和运动规律,不同对象之间的相互联系和相互作用就构成了各种不同的系统。

    在面向对象的方法中,对象、类、方法和消息是基本的概念(图6-6-7)。

面向对象的基本概念

1、对象

    含有数据和操作方法的独立模块,可以认为是数据和行为的统一体。如一个城市、一棵树均可作为地理对象。对于一个对象,应具有如下特征:

1)具有一个唯一的标识,以表明其存在的独立性;

2)具有一组描述特征的属性,以表明其在某一时刻的状态;

3)具有一组表示行为的操作方法,用以改变对象的状态。

2、类

    共享同一属性和方法集的所有对象的集合构成类。从一组对象中抽象出公共的方法和属性,并将它们保存在一类中,是面向对象的核心内容。如河流均具有共性,如名称、长度、流域面积等,以及相同的操作方法,如查询、计算长度、求流域面积等,因而可抽象为河流类。被抽象的对象,称为实例,如长江、黄河等。

3、消息

    对对象进行操作的请求,是连接对象与外部世界的唯一通道。

4、方法

    对对象的所有操作,如对对象的数据进行操作的函数、指令、例程等。

(二)面向对象的特性

    面向对象方法具有抽象性、封装性、多态性等特性

面向对象的特性

     面向对象方法具有抽象性、封装性、多态性等特性。

1、抽象

    抽象是对现实世界的简明表示。形成对象的关键是抽象,对象是抽象思维的结果。抽象思维是通过概念、判断、推理来反映对象的本质,揭示对象内部联系的过程。任何一个对象都是通过抽象和概括而形成的。面向对象方法具有很强的抽象表达能力,正是因为这个缘故,可以将对象抽象成对象类,实现抽象的数据类型,允许用户定义数据类型。

2、封装

    是指将方法与数据放于一对象中,以使对数据的操作只可通过该对象本身的方法来进行。即一对象不能直接作用于另一对象的数据,对象间的通信只能通过消息来进行。对象是一个封装好的独立模块。封装是一种信息隐蔽技术,封装的目的在于将对象的使用者和对象的设计者分开,用户只能见到对象封装界面上的信息,对象内部对用户是隐蔽的。也就是说,对用户而言,只需了解这个模块是干什么的即功能是什么,至于怎么干即如何实现这些功能则是隐蔽在对象内部的。一个对象的内部状态不受外界的影响,其内部状态的改变也不影响其它对象的内部状态。封装本身即模块性,把定义模块和实现模块分开,就使得用面向对象技术开发或设计的软件的可维护性、可修改性大为改善。

3、多态

    多态是指同一消息被不同对象接收时,可解释为不同的含义。因此,可以发送更一般的消息,把实现的细节都留给接收消息的对象。即相同的操作可作用于多种类型的对象,并能获得不同的结果。

(三)面向对象数据模型的四种核心技术

1、分类:是把一组具有相同属性结构和操作方法的对象归纳或映射为一个公共类的过程。如城镇建筑可分为行政区、商业区、住宅区、文化区等若干个类。

2、概括:将相同特征和操作的类再抽象为一个更高层次、更具一般性的超类的过程。子类是超类的一个特例。一个类可能是超类的子类,也可是几个子类的超类。所以,概括可能有任意多层次。概括技术避免了说明和存储上的大量冗余。这需要一种能自动地从超类的属性和操作中获取子类对象的属性和操作的机制,即继承机制

3、聚集:聚集是把几个不同性质类的对象组合成一个更高级的复合对象的过程。

4、联合相似对象抽象组合为集合对象。其操作是成员对象的操作集合。

四种核心技术的进一步说明

面向对象模型的四种核心技术

1、分类

    类是具有相同属性结构和操作方法的对象的集合,属于同一类的对象具有相同的属性结构和操作方法。分类是把一组具有相同属性结构和操作方法的对象归纳或映射为一个公共类的过程。对象和类的关系是“实例”(instance-of)的关系。

    同一个类中的若干个对象,用于类中所有对象的操作都是相同的。属性结构即属性的表现形式相同,但它们具有不同的属性值。所以,在面向对象的数据库中,只需对每个类定义一组操作,供该类中的每个对象使用,而类中每一个对象的属性值要分别存储,因为每个对象的属性值是不完全相同的。例如,在面向对象的地理数据模型中,城镇建筑可分为行政区、商业区、住宅区、文化区等若干个类。以住宅区类而论,每栋住宅作为对象都有门牌号、地址、电话号码等相同的属性结构,但具体的门牌号、地址、电话号码等是各不相同的。当然,对它们的操作方法如查询等都是相同的。

2、概括

    概括是把几个类中某些具有部分公共特征的属性和操作方法抽象出来,形成一个更高层次、更具一般性的超类的过程。子类和超类用来表示概括的特征,表明它们之间的关系是“即是”(is—a)关系,子类是超类的一个特例。

    作为构成超类的子类还可以进一步分类,一个类可能是超类的子类,同时也可能是几个子类的超类。所以,概括可能有任意多层次。例如,建筑物是住宅的超类,住宅是建筑物的子类,但如果把住宅的概括延伸到城市住宅和农村住宅,则住宅又是城市住宅和农村住宅的超类。

    概括技术的采用避免了说明和存储上的大量冗余,因为住宅地址、门牌号、电话号码等是“住宅”类的实例(属性),同时也是它的超类“建筑物”的实例(属性)。当然,这需要一种能自动地从超类的属性和操作中获取子类对象的属性和操作的机制。

3、聚集

    聚集是将几个不同类的对象组合成一个更高级的复合对象的过程。术语“复合对象”用来描述更高层次的对象,“部分”或“成分”是复合对象的组成部分,“成分”与“复合对象”的关系是“部分”(parts—of)的关系,反之“复合对象”与“成分”的关系是“组成”的关系。例如,医院由医护人员、病人、门诊部、住院部、道路等聚集而成。

    每个不同属性的对象是复合对象的一个部分,它们有自己的属性数据和操作方法,这些是不能为复合对象所公用的,但复合对象可以从它们那里派生得到一些信息。复合对象有自己的属性值和操作,它只从具有不同属性的对象中提取部分属性值,且一般不继承子类对象的操作。这就是说,复合对象的操作与其成分的操作是不兼容的。

4、联合

    联合是将同一类对象中的几个具有部分相同属性值的对象组合起来,形成一个更高水平的集合对象的过程。术语“集合对象”描述由联合而构成的更高水平的对象,有联合关系的对象称为成员,“成员”与“集合对象”的关系是“成员”(member—of)的关系。

    在联合中,强调的是整个集合对象的特征,而忽略成员对象的具体细节。集合对象通过其成员对象产生集合数据结构,集合对象的操作由其成员对象的操作组成。例如,一个农场主有三个水塘,它们使用同样的养殖方法,养殖同样的水产品,由于农场主、养殖方法和养殖水产品等三个属性都相同,故可以联合成一个包含这三个属性的集合对象。

    联合与概括在概念上不同。概括是对类进行抽象概括;而联合是对属于同一类的对象进行抽象联合。联合有点类似于聚集,所以在许多文献中将联合的概念附在聚集的概念中,都使用传播工具提取对象的属性值。

(四)面向对象数据模型的核心工具

1、继承

    一类对象可继承另一类对象的特性和能力,子类继承父类的共性,继承不仅可以把父类的特征传给中间子类,还可以向下传给中间子类的子类。它服务于概括。继承机制减少代码冗余,减少相互间的接口和界面。

    继承有单重继承和多重继承之分。

单重继承和多重继承

1、单重继承

    指仅有一个直接父类的继承,要求每一个类最多只能有一个中间父类,这种限制意味着一个子类只能属于一个层次,而不能同时属于几个不同的层次。如图2-6-9所示,“住宅”是父类,“城市住宅”和“农村住宅”是其子类,父类“住宅”的属性(如“住宅名”)可以被它的两个子类继承,同样,给父类“住宅”定义的操作(如“进入住宅”)也适用于它的两个子类;但是,专为一个子类定义的操作如“地铁下站”,只适用于“城市住宅”。

    单重继承可以构成树形层次,最高父类在顶部,最特殊的子类在底部,每一类可看作一个结点,两个结点的“即是”关系可以用父类结点指向子类结点的矢量来表示,矢量的方向表示从上到下、从一般到特殊的特点。

     继承不仅可以把父类的特征传给中间子类,还可以向下传给中间子类的子类。图2-6-9中的三个层次的继承体系。“建筑物”的特征(如“户主”、“地址”等)可以传给中间子类“住宅”,也可以传给中间子类的子类“城市住宅”和“农村住宅”。

2、多重继承

    允许子类有多于一个的直接父类的继承。严格的层次结构是一种理想的模型,对现实的地理数据常常不适用。多重继承允许几个父类的属性和操作传给一个子类,这就不是层次结构。

    GIS中经常遇到多重继承问题。图2-6-10是两个不同的体系形成的多重继承的例子。一个体系为交通运输线,另一个体系为水系。运河具有人工交通运输线和河流等两个父类特性,通航河流也有自然交通运输线和河流等两个父类的特性。

2、传播

    传播是一种作用于聚集和联合的工具,用于描述复合对象或集合对象对成员对象的依赖性并获得成员对象的属性的过程。它通过一种强制性的手段将成员对象的属性信息传播给复合对象。

    复合对象的某些属性不需单独存储,可以从成员对象中提取或派生。成员对象的相关属性只能存储一次。这样,就可以保证数据的一致性,减少数据冗余。从成员对象中派生复合对象或集合对象的某些属性值,其公共操作有“求和”、“集合和”、“最大”、“最小”、“平均值”和“加权平均值”等。例如,一个国家最大城市的人口数是这个国家所有城市人口数的最大值,一个省的面积是这个省所有县的面积之和,等等。

    继承和传播在概念和使用上都是有差别的。

继承和传播的区别

    继承和传播在概念和使用上都是有差别的。这主要表现在:

1)继承是用概括(“即是”关系)体系来定义的,服务于概括,而传播是用聚集(“成分”关系)或联合(“成员”关系)体系来定义的,作用于联合和聚集;

2)继承是从上层到下层,应用于类,而传播是自下而上,直接作用于对象;

3)继承包括属性和操作,而传播一般仅涉及属性;

4)继承是一种信息隐含机制,只要说明子类与父类的关系,则父类的特征一般能自动传给它的子类,而传播是一种强制性工具,需要在复合对象中显式定义它的每个成员对象,并说明它需要传播哪些属性值。

五、面向对象地理数据模型

1、面向对象数据模型的含义

    为了有效地描述复杂的事物或现象,需要在更高层次上综合利用和管理多种数据结构和数据模型,并用面向对象的方法进行统一的抽象。这就是面向对象数据模型的含义,其具体实现就是面向对象的数据结构。

    面向对象模型最适合于空间数据的表达和管理,它不仅支持变长记录,且支持对象的嵌套,信息的继承和聚集。

    允许用户定义对象和对象的数据结构及它的操作。可以将空间对象根据GIS需要,定义合适的数据结构和一组操作。这种空间数据结构可以带和不带拓扑,当带拓扑时,涉及对象的嵌套、对象的连接和对象与信息聚集。(面向对象地理数据模型的特点

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

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

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

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

    面向对象的地理数据模型的核心是对复杂对象的模拟和操纵。

复杂对象及特点

 

    复杂对象指具有复杂结构和操作的对象。复杂对象可以由多种关系聚合抽象而成,或由不同类型的对象构成,或具有复杂的嵌套关系等。

    例如,在GIS中的一个复杂地理实体(如学校)可能含有矢量数据、栅格数据、属性数据,甚至多媒体数据,而且可以认为是由其它较简单的实体(如道路、教学楼、操场等)组成,因此,可以作为一个复杂对象。GIS的地理实体所具有的矢量数据也可以认为是一个复杂对象,因为它包含了几何数据和属性数据,而几何数据又是由点、线、面等简单对象组成的。

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

a)一个复杂对象由多个成员对象构成,每个成员对象又可参与其它对象的构成;

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

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

2、面向对象的几何数据模型

    从几何方面划分,GIS的各种地物对象为点、线、面状地物以及由它们混合组成的复杂地物。每一种几何地物又可能由一些更简单的几何图形元素构成。

    每个地物对象都可以通过其标识号和其属性数据联系起来。若干个地物对象(地理实体)可以作为一个图层,若干个图层可以组成一个工作区。在GIS中可以开设多个工作区。

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

    如图2-6-11,一个面状地物是由边界弧段和中间面域组成,弧段又涉及到节点和中间点坐标。或者说,节点的坐标传播给弧段,弧段聚集成线状地物或面状地物,简单地物聚集或联合组成复杂地物。(拓扑关系与面向对象模型

拓扑关系与面向对象模型(据吴信才)

    将每条弧段的两个端点(通过它们与另外的弧段公用)抽象出来,建立单独的节点对象类型,而在弧段的数据文件中,设立两个节点子对象标识号,即用“传播”的工具提取节点文件的信息。(图2-6-12)

    这一模型既解决了数据共享问题,又建立了弧段与节点的拓扑关系。同样,面状地物对弧段的聚集方式与数据共享和几何拓扑关系的建立也达到一致。

3、面向对象的属性数据模型(据吴信才)

    关系数据模型和RDBMS基本上适应于GIS中属性数据的表达与管理。若采用面向对象数据模型,语义将更加丰富,层次关系也更明了。可以说,面向对象数据模型是在包含RDBMS的功能基础上,增加面向对象数据模型的封装、继承和信息传播等功能。

    图2-6-13是以土地利用管理GIS为例的面向对象属性数据模型。

    GIS中的地物可根据国家分类标准或实际情况划分类型。如土地利用管理GIS中的地物可分为耕地、园地、林地、居民地、交通用地、水域等几大类。地物类型的每一大类又可以进一步分类,如居民点可分为城镇、农村居民点等子类。另外,根据需要还可将具有相同属性和操作的类型综合成一个超类,如工厂、农场、商店、饭店等属于产业,有收入、税收等属性,可将它们概括为一个更高水平的超类-产业类。由于产业可能不仅与建筑物有关,还可能包含其他类型如土地等,所以可将产业类设计成一个独立的类,通过行政管理数据库来管理。在整个系统中,可采用双重继承工具,当要查询饭店类的信息时,即要继承建筑物类的属性和操作,又要能够继承产业类的属性和操作。

    属性数据库管理中也需用到聚集的概念和传播的工具,如在饭店类中,可能不直接存储职工总人数,房间总数和床位总数等信息,它可能从该饭店的字对象职员和房间床位等数据库中派生得到。

4、面向对象数据库系统的基本概念及其特征

    关于“什么是面向对象数据库系统(OODBS-Object Oriented Data Base System)?” Francois Bancilho把OODB定义为:“一个面向对象的数据库系统应该满足两条准则:它应该是一个数据库管理系统,而且还是一个面向对象的系统。第一条准则是说它应该具备六个特征:永久性、外存管理、数据共享(并发)、数据可靠性(事务管理和恢复)、即席查询工具和模式修改。第二条准则是说它应具备八个特征:类/类型、封装性/数据抽象、继承性、多态性/滞后联编、计算完备性、对象标识、复杂对象和可扩充性。”(具体特征说明

面向对象数据库系统的特征

    1989年12月,在第一届演绎、面向对象数据库国际会议上,以Malcolm Atkinson , Francois Bancilhon , David Dewitt等人为代表的一批OODB专家发表了著名的“面向对象的数据库系统宣言”,提出了OODBS应该具备的主要性质和特征。这些特征分为三组:必备的(被称作面向对象的数据库系统所必须满足的特性)、可选的(为了使系统更完善可添加的而非必备的特性)和开放的(设计人员可以选择的特性)。

    其中必备的特征包括:

1)复杂对象:对简单对象运用各种构造符即可得到复杂对象。

2)对象标识:在带对象标识的模型中,对象独立于它的值而存在,由此就有了两个对象等价的概念:两个对象可能相同(它们是同一个对象),也可能相等(它们有同样的值)。

3)封装性:封装性的概念来自两个方面,一是需要明确区分操作的说明和实现;二是模块化的需要。封装提供了一种逻辑数据独立性的形式,能够在不改变使用类型的程序的情况下改变类型的实现。让操作可见而将数据和操作的实现隐藏在对象中,就可以获得适当的封装。

4)类型和类:对应了两大类面向对象的系统:支持类概念的系统和支持类型概念的系统。类型和类具有相同的说明方式,类型的实例是静态说明的,而类的说明是动态产生的,它们都对应了抽象数据类型。

5)类和类型的层次结构:类和类型的层次结构可以导致类和类型的继承机制,在面向对象的系统中,至少存在有四种继承:替代继承、包含继承、限制继承和特化继承。

6)复载、过载和滞后联编:按照类型的不同重新定义每个类型的操作的实现叫做复载(Overriding),用同一个名字来表示不同的实现叫做过载(Overloading),它们都是由于多态性(Polymorphism)导致了同一方法名对应不同的对象而产生的调用不同的程序体的现象。为了实现这种功能,系统不能在编译时就把操作名联编到程序上,而要等到运行时才进行解释,这个推迟的转换叫做滞后联编(Late Binding)或动态联编(Dynamic Binding)。

7)计算完备性:就是能够用数据库系统的数据操纵语言(DML)表达任何可计算的功能。一般情况下,计算完备性可以通过与现有程序设计语言的合理连接来实现。

8)可扩充性:是指用户在数据库系统带有的一组预先定义类型的基础上所具有的可定义新类型的手段,并且系统定义的类型和用户定义的类型在使用上没有区别。

9)持久性:持久性是指程序员保证他的数据在进程的执行中存在的能力。

10)辅存管理:辅存管理是数据库管理系统的一个经典特征。它通常有一组方法支持,包括索引管理、数据聚集、数据缓冲、存取路径选择及查询优化。

11)并发性:并发性是指数据库中的对象可被多个用户共享而不影响其一致性和完整性,并发性保证了同时在数据库上工作的多个用户之间的和谐共存。

12)恢复:恢复是指在硬件和软件发生故障时,数据库具有的能够使它返回到数据的某种相关状态的能力。

13)即席查询功能:就是数据库提供的一种高级的(即简明地表示重要的查询)、有效的(即查询的形式应该是进行过查询优化的)和与应用无关的(即它是独立于用户的特殊应用的)查询功能。

    可选的特性有:多重继承性、类型检查和类型推理、分布、设计事务处理和版本等五个方面。

    开放的特性是程序设计范例、表示系统、类型系统和一致性。

    此外, Rainer Unland在Francois Bancilho的基础上作了进一步的补充,Wan Kim对OODBS的定义与他们的定义基本类似。

面向对象数据库系统的特征

    1989年12月,在第一届演绎、面向对象数据库国际会议上,以Malcolm Atkinson , Francois Bancilhon , David Dewitt等人为代表的一批OODB专家发表了著名的“面向对象的数据库系统宣言”,提出了OODBS应该具备的主要性质和特征。这些特征分为三组:必备的(被称作面向对象的数据库系统所必须满足的特性)、可选的(为了使系统更完善可添加的而非必备的特性)和开放的(设计人员可以选择的特性)。

    其中必备的特征包括:

1)复杂对象:对简单对象运用各种构造符即可得到复杂对象。

2)对象标识:在带对象标识的模型中,对象独立于它的值而存在,由此就有了两个对象等价的概念:两个对象可能相同(它们是同一个对象),也可能相等(它们有同样的值)。

3)封装性:封装性的概念来自两个方面,一是需要明确区分操作的说明和实现;二是模块化的需要。封装提供了一种逻辑数据独立性的形式,能够在不改变使用类型的程序的情况下改变类型的实现。让操作可见而将数据和操作的实现隐藏在对象中,就可以获得适当的封装。

4)类型和类:对应了两大类面向对象的系统:支持类概念的系统和支持类型概念的系统。类型和类具有相同的说明方式,类型的实例是静态说明的,而类的说明是动态产生的,它们都对应了抽象数据类型。

5)类和类型的层次结构:类和类型的层次结构可以导致类和类型的继承机制,在面向对象的系统中,至少存在有四种继承:替代继承、包含继承、限制继承和特化继承。

6)复载、过载和滞后联编:按照类型的不同重新定义每个类型的操作的实现叫做复载(Overriding),用同一个名字来表示不同的实现叫做过载(Overloading),它们都是由于多态性(Polymorphism)导致了同一方法名对应不同的对象而产生的调用不同的程序体的现象。为了实现这种功能,系统不能在编译时就把操作名联编到程序上,而要等到运行时才进行解释,这个推迟的转换叫做滞后联编(Late Binding)或动态联编(Dynamic Binding)。

7)计算完备性:就是能够用数据库系统的数据操纵语言(DML)表达任何可计算的功能。一般情况下,计算完备性可以通过与现有程序设计语言的合理连接来实现。

8)可扩充性:是指用户在数据库系统带有的一组预先定义类型的基础上所具有的可定义新类型的手段,并且系统定义的类型和用户定义的类型在使用上没有区别。

9)持久性:持久性是指程序员保证他的数据在进程的执行中存在的能力。

10)辅存管理:辅存管理是数据库管理系统的一个经典特征。它通常有一组方法支持,包括索引管理、数据聚集、数据缓冲、存取路径选择及查询优化。

11)并发性:并发性是指数据库中的对象可被多个用户共享而不影响其一致性和完整性,并发性保证了同时在数据库上工作的多个用户之间的和谐共存。

12)恢复:恢复是指在硬件和软件发生故障时,数据库具有的能够使它返回到数据的某种相关状态的能力。

13)即席查询功能:就是数据库提供的一种高级的(即简明地表示重要的查询)、有效的(即查询的形式应该是进行过查询优化的)和与应用无关的(即它是独立于用户的特殊应用的)查询功能。

    可选的特性有:多重继承性、类型检查和类型推理、分布、设计事务处理和版本等五个方面。

    开放的特性是程序设计范例、表示系统、类型系统和一致性。

    从OODBS具有面向对象特性的角度出发,OODBS应该提供创建类的设施,用以组织对象、创建对象、把类组织成一个继承层次,使得子类能从超类中继承属性和方法,以及调用方法来访问特定的对象。

    从OODBS是一个数据库系统的角度考虑,它必须提供当今关系数据库系统(RDB)提供的那些标准数据库设施,包括检索对象的非过程性查询设施、自动查询优化和处理、动态模式改变(改变类定义和继承结构)、存取方法(如B+树索引、可扩充散列、排序等)的自动管理以提高查询处理性能、自动事务管理、并发控制、从系统故障中恢复、安全和授权。

5、面向对象数据库系统所具有的优势

    与传统的数据库相比,OODB在下列方面具有一定的优势:

1)缩小了语义差距

    传统数据库设计往往是在问题空间采用某种语义模型(例如E-R模型),而在求解空间采用关系模型,于是就必须在这两个空间的表示之间作一个转换,这样往往会丢失语义。OODB的优势在于在这两个空间中采用了相同/近似的模型,从而使它们之间的语义差距缩小了(图2-6-15)。

2)减轻了“阻抗失配”问题

    传统数据库应用往往表现为把数据库语句嵌入某种具有计算完备性的程序设计语言中,由于数据库语言和程序设计语言的类型系统和计算模型往往不同,所以这种结合是不自然的,这个现象被称为“阻抗失配”。在OODB中,把需要程序设计语言编写的操作都封装在对象的内部,从本质上讲,OODB的问题求解过程只需要表现为一个消息表达式的集合。

3)适应非传统应用的需要

    众所周知,OODB研究的目的就是为了适应诸如CAD、CAM、CASE、GIS等非传统领域的需要。OODB中,这种适应性主要表现在能够定义和操纵复杂对象,具备引用共享和并发共享机制以及灵活的事务模型(例如长事务模型、嵌套事务模型、切分事务模型),支持大量对象的存储和获取等等。

六、空间数据库管理系统

    地理信息系统管理空间数据的方式与一般数据库技术的发展紧密联系,最初采用基于文件管理的方式,目前有的系统采用文件与关系数据库混合管理模式,有的采用全关系型空间数据库管理模式,随着面向对象技术与数据库技术的结合,面向对象空间数据模型及实现系统已经提出,但由于面向对象数据库管理系统价格昂贵且技术还不成熟,目前在GIS领域不太通用。基于对象—关系的空间数据管理系统将可能成为GIS空间数据库发展的主流。

1、基于文件管理的方式

    各个地理信息系统应用程序对应各自的空间和属性数据文件,当两个GIS应用程序需要的数据有相同部分时,可以提出来作为公共数据文件(图2-6-16)。

    这种管理空间数据方式的缺点是:

1)程序依赖于数据文件的存储结构,数据文件修改时,应用程序也随之需要改变。

2)以文件形式共享,当多个程序共享一数据文件时,文件的修改,需得到所有应用的许可。不能达到真正的共享,即数据项、记录项的共享。

2、文件与关系数据库混合管理系统(据龚建雅)

    随着数据库技术的发展及商用DBMS的成熟,GIS也开始采用数据库技术来管理空间数据,但由于一般DBMS不适于存储和管理空间数据,目前大部分GIS软件采用混合管理模式,即文件系统管理几何图形数据,商用DBMS管理属性数据,它们之间的联系通过目标标识码进行连接(图2-6-17(a))。

    在这种管理模式中,几何图形数据与属性数据除它们的oid作为连接关键字以外,几乎是两者独立地组织、管理和检索。就几何图形而言,由于GIS系统采用高级语言编程,可以直接操纵数据文件,所以图形用户界面与图形文件处理是一体的,中间没有裂缝。但对属性数据来说,则因系统和历史发展而异,分为图形与属性结合的各自分开处理模式图2-6-17(b)和图形与属性结合的混合处理模式,图2-6-17(c)。

图形与属性结合的各自分开处理模式

    早期系统由于属性数据必须通过关系DBMS,图形处理的用户界面和属性的用户界面是分开的,它们只是通过一个内部码连接。导致这种连接方式的主要原因是早期的DBMS不提供编程的高级语言如C的接口,只能采用数据库操纵语言。这样通常要同时启动两个系统,甚至两个系统来回切换,不方便。

图形与属性结合的混合处理模式

    近几年,随着数据库技术的发展,越来越多的DBMS提供高级编程语言C或Fortran等接口,使得GIS可以在C语言的环境下,直接操纵属性数据,并通过C语言的对话框和列表框显示属性数据,或通过对话框输入SQL语句,并将该语句通过C语言与数据库的接口,查询属性数据库,并在GIS的用户界面下,显示查询结果。这种工作模式,并不需要启动一个完整的DBMS,用户甚至不知道何时调用了RDBMS,图形数据和属性数据的查询与维护完全在一个界面下。

    在ODBC(开放性数据库连接协议)推出前,每个数据库厂商提供一套自己的与高级语言的接口程序,GIS软件商要针对每个数据库开发一套与GIS的接口程序,所以在数据库的使用上受限制。在ODBC推出后,GIS软件商只需开发GIS与ODBC的接口软件,就可将属性数据与任何一个支持ODBC的RDBMS连接。这样用户可在一个界面下处理图形和属性数据。

3、全关系型空间数据库管理系统—分层模型

    将空间数据与属性数据统一用现有的RDBMS管理,但标准RDBMS又不能直接处理空间数据,GIS软件商在标准DBMS顶层开发一个能容纳、管理空间数据的功能,如图2-6-18(a)所示。

    用RDBMS管理图形数据有两种模式:

1)基于关系模型的方式,图形数据按关系数据模型组织。由于涉及一系列关系连接运算,费时。

2)将图形数据的变长部分处理成Binary Block字段,Binary Block即二进制块字段是为适用于多媒体或变长文本而开发的。这种方式省去大量关系连接操作,但Binary Block的读写效率比定长的属性字段慢得多,特别涉及对象的嵌套时,更慢。

4、对象--关系数据库管理系统

    由DBMS软件商在RDBMS中进行扩展,使之能直接存储和管理非结构化的空间数据(图2-6-18(b)),如Informix 和Oracle等都推出了空间数据管理的专用模块,定义了操纵点、线、面、圆等空间对象的API函数。

    这些函数将各种空间对象进行预先定义,用户使用时必须满足它的数据结构要求,用户不能根据GIS要求再定义。如,这种函数涉及的空间对象一般不带拓扑关系,多边形的数据是直接跟随边界的空间坐标,用户不能将设计的拓扑数据结构采用这种模型进行存储。

    这种扩展的空间对象管理模块主要解决空间数据的变长记录的管理,由于是由数据库软件商扩展的,效率比二进制块的管理高得多,但仍没有解决对象的嵌套问题,空间数据结构不能由用户定义,使用上受一定限制。

5、面向对象空间数据库管理系统(见第五点中的第5点)