阅读:3761回复:3
空间数据库管理系统的概念与发展趋势
龚健雅教授 武汉大学测绘遥感信息工程国家重点实验室
摘要 空间数据库管理系统是GIS的核心,每一次空间数据库管理系统的技术变革都带来GIS软件的革命。本文首先阐述空间数据库管理系统的一些基本概念及发展历程。最后结合新一代GIS软件GeoStar介绍了矢量、影像、DEM和属性数据一体化管理的数据模型及实现方法。 关键词 空间数据库 面向对象 数据模型 矢栅一体化 一、引言 所谓空间数据是指与空间位置和空间关系相联系的数据。归纳起来它具有以下几个基本特征: 1. 空间特征 每个空间对象都具有空间坐标,即空间对象隐含了空间分布特征。这意味着在空间数据组织方面,要考虑它的空间分布特征。除了通用性数据库管理系统或文件系统关键字的索引和辅关键字索引以外,一般需要建立空间索引。 2. 非结构化特征 在当前通用的关系数据库管理系统中,数据记录一般是结构化的。即它满足关系数据模型的第一范式要求,每一条记录是定长的,数据项表达的只能是原子数据,不允许嵌套记录。而空间数据则不能满足这种结构化要求。若将一条记录表达一个空间对象,它的数据项可能是变长的,例如,一条弧段的坐标,其长度是不可限定的,它可能是两对坐标,也可能是十万对坐标;其二,一个对象可能包含另外的一个或多个对象,例如,一个多边形,它可能含有多条弧段。若一条记录表示一条弧段,在这种情况下,一条多边形的记录就可能嵌套多条弧段的记录,所以它不满足关系数据模型的范式要求,这也就是为什么空间图形数据难以直接采用通用的关系数据管理系统的主要原因。 3. 空间关系特征 空间数据除了前面所述的空间坐标隐含了空间分布关系外。空间数据中记录的拓扑信息表达了多种空间关系。这种拓扑数据结构一方面方便了空间数据的查询和空间分析,另一方面也给空间数据的一致性和完整性维护增加了复杂性。特别是有些几何对象,没有直接记录空间坐标的信息,如拓扑的面状目标,仅记录组成它的弧段的标识,因而进行查找、显示和分析操作时都要操纵和检索多个数据文件方能得以实现。 4. 分类编码特征 一般而言,每一个空间对象都有一个分类编码,而这种分类编码往往属于国家标准,或行业标准,或地区标准,每一种地物的类型在某个GIS中的属性项个数是相同的。因而在许多情况下,一种地物类型对应于一个属性数据表文件。当然,如果几种地物类型的属性项相同,也可以多种地物类型共用一个属性数据表文件。 5. 海量数据特征 空间数据量是巨大的,通常称海量数据。之所以称为海量数据,是指它的数据量比一般的通用数据库要大得多。一个城市地理信息系统的数据量可能达几十GB,如果考虑影像数据的存贮,可能达几百个GB。这样的数据量在城市管理的其他数据库中是很少见的。正因为空间数据量大,所以需要在二维空间上划分块或者图幅,在垂直方向上划分层来进行组织。 二、空间数据库管理系统模式 由于空间数据的复杂性和特殊性,一般的商用数据库管理系统难以满足要求。因而,围绕空间数据管理方法,出现了几种不同的模式。 (一) 文件与关系数据库混合管理系统 由于空间数据具有以上几个特征,市场上通用的关系数据库管理系统难以满足要求。因而,大部分GIS软件采用混合管理的模式。即用文件系统管理几何图形数据,用商用关系数据库管理系统管理属性数据,它们之间的联系通过目标标识或者内部连接码进行连接。如图1所示。 图1 GIS中图形数据与属性数据的连接 <IMG src="http://www.3scaigou.com/new/pic/jingpin/fzqs1.jpg"> 在这种管理模式中,几何图形数据与属性数据除它们的oid作为连接关键字段以外,几乎是两者独立地组织、管理与检索。就几何图形而言,由于GIS系统采用高级语言编程,可以直接操纵数据文件,所以图形用户界面与图形文件处理是一体的,中间没有裂缝。但对属性数据来说,则因系统和历史发展而异。早期系统由于属性数据必须通过关系数据库管理系统,图形处理的用户界面和属性的用户界面是分开的,它们只是通过一个内部码连接,如图2所示。导致这种连接方式的主要原因是早期的数据库管理系统不提供编程的高级语言如Fortran或C的接口,只能采用数据库操纵语言。这样通常要同时启动两个系统(GIS图形系统和关系数据库管理系统),甚至两个系统来回切换,使用起来很不方便。 图2 图形数据与属性数据的内部连接方式 <IMG src="http://www.3scaigou.com/new/pic/jingpin/fzqs2.jpg"> 最近几年,随着数据库技术的发展,越来越多的数据库管理系统提供高级编程语言C和Fortran等接口,使得地理信息系统可以在C语言的环境下,直接操纵属性数据,并通过C语言的对话框和列表框显示属性数据,或通过对话框输入SQL语句,并将该语句通过C语言与数据库的接口,查询属性数据库,并在GIS的用户界面下,显示查询结果。这种工作模式,并不需要启动一个完整的数据库管理系统,用户甚至不知道何时调用了关系数据库管理系统,图形数据和属性数据的查询与维护完全在一个界面之下。 在ODBC(开放性数据库连接协议)推出之前,每个数据库厂商提供一套自己的与高级语言的接口程序,这样,GIS软件商就要针对每个数据库开发一套与GIS的接口程序,所以往往在数据库的使用上受到限制。在推出了ODBC之后,GIS软件商只要开发GIS与ODBC的接口软件,就可以将属性数据与任何一个支持ODBC协议的关系数据库管理系统连接。 无论是通过C还是ODBC与关系数据库连接,GIS用户都是在一个界面下处理图形和属性数据,它比前面分开的界面要方便得多。这种模式称为混合处理模式,如图3所示。 图3 图形与属性结合的混合处理模式 <IMG src="http://www.3scaigou.com/new/pic/jingpin/fzqs3.jpg"> 采用文件与关系数据库管理系统的混合管理模式,还不能说建立了真正意义上的空间数据库管理系统,因为文件管理系统的功能较弱,特别是在数据的安全性、一致性、完整性、并发控制以及数据损坏后的恢复方面缺少基本的功能。多用户操作的并发控制比起商用数据库管理系统来要逊色得多,因而GIS软件商一直在寻找采用商用数据库管理系统来同时管理图形和属性数据,它存在以下几种方式。 (二) 全关系型空间数据库管理系统 全关系型空间数据库管理系统是指图形和属性数据都用现有的关系数据库管理系统管理。关系数据库管理系统的软件厂商不作任何扩展,由GIS软件商在此基础上进行开发,使之不仅能管理结构化的属性数据,而且能管理非结构化的图形数据。 用关系数据库管理系统管理图形数据有两种模式,一种是基于关系模型的方式,图形数据按照关系数据模型组织。这种组织方式由于涉及一系列关系连接运算,相当费时,例如为了显示一个多边形,需要找出组成多边形的采样点坐标。它要涉及到四个关系表,作多次连接投影运算,这一查询的语句如下(参考 龚健雅,2001)。 Selet X,Y From P,E,N,C Where P·P#=E·P# and E·E#=N·E# and (N·BN=C·N# and N·EN=C·N#) 对于这样简单的实例,需要作如此复杂的关系连接运算,非常费时。由此可见关系模型在处理空间目标方面的效率不高。 关系数据库管理系统管理图形数据的另一种方式是将图形数据的变长部分处理成Binary二进制块Block字段。目前大部分关系数据库管理系统都提供了二进制块的字段域,以适应管理多媒体数据或可变长文本字符。GIS利用这种功能,通常把图形的坐标数据,当作一个二进制块,交由关系数据库管理系统进行存贮和管理。这种存贮方式,虽然省去了前面所述的大量关系连接操作,但是二进制块的读写效率要比定长的属性字段慢得多,特别是涉牵对象的嵌套,速度更慢。 (三) 对象--关系数据库管理系统 由于直接采用通用的关系数据库管理系统的效率不高。而非结构化的空间数据又十分重要,所以许多数据库管理系统的软件商纷纷在关系数据库管理系统中进行扩展,使之能直接存贮和管理非结构化的空间数据,如Ingres,Informix和Oracle等都推出了空间数据管理的专用模块,定义了操纵点、线、面、圆、长方形等空间对象的API函数。这些函数,将各种空间对象的数据结构进行了预先的定义,用户使用时必须满足它的数据结构要求,用户不能根据GIS要求(即使是GIS软件商)再定义。例如,这种函数涉及的空间对象一般不带拓扑关系,多边形的数据是直接跟随边界的空间坐标,那么GIS用户就不能将设计的拓扑数据结构采用这种对象--关系模型进行存贮。 这种扩展的空间对象管理模块主要解决了空间数据的变长记录的管理,由于由数据库软件商进行扩展,效率要比前面所述的二进制块的管理高得多。但是它仍然没有解决对象的嵌套问题,空间数据结构也不能由用户任意定义,使用上仍然受到一定限制。 (四) 面向对象空间数据库管理系统 面向对象模型最适应于空间数据的表达和管理,它不仅支持变长记录,而且支持对象的嵌套、信息的继承与聚集。面向对象的空间数据库管理系统允许用户定义对象和对象的数据结构以及它的操作。这样,我们可以将空间对象根据GIS的需要,定义出合适的数据结构和一组操作。这种空间数据结构可以是不带拓扑关系的面条数据结构,也可以是拓扑数据结构,当采用拓扑数据结构时,往往涉及对象的嵌套、对象的连接和对象与信息聚集。 当前已经推出了若干个面向对象数据库管理系统如O2,Object store otorn等,也出现一些基于面向对象的数据库管理系统的地理信息系统,如GDE等。但由于面向对象数据库管理系统还不够成熟,价格又昂贵,目前在GIS领域还不太通用。相反基于对象一关系的空间数据库管理系统将可能成为GIS空间数据管理的主流。 三、面向对象矢栅一体化空间数据库管理系统 以上所述空间数据库管理系统主要针对图形矢量空间数据的管理而采取的方案。当前除图形矢量数据以外,还存在大量影像数据和DEM数据,如何将矢量数据、影像数据、DEM数据和属性数据进行统一管理,已成为空间数据库的一个重要研究方向。一种实现方案是采用面向对象矢栅一体化空间数据模型。下面具体介绍这一模型及其实现方法。 面向对象矢栅一体化数据模型是面向对象技术与空间数据库技术相结合的产物。面向对象技术已成为现代计算机技术的主流技术。在众多领域,面向对象技术已成为新一代软件体系结构的基石。面向对象数据模型和面向对象的空间数据管理一直是地理信息系统领域所追求的目标。自八十年代末、九十年代初,人们就相当重视面向对象技术在GIS领域的应用(Gong,1990),软件技术也在不断发生变革,较早推出的面向对象GIS软件System 9,使面向对象方法在GIS中的应用起了较大推动作用,之后的Small Word和最近的ARC/INFO 8.0,已使面向对象GIS到了普及应用阶段。武汉测绘科技大学(新武汉大学)开发的地理信息系统软件GeoStar从一开始设计就采用面向对象数据模型和面向对象技术(Gong,1994)。中国的地球空间数据交换格式也是以面向对象逻辑模型为主要设计思想(Gong,1998)。 在面向对象数据模型中,其核心是对象(Object),对象是客观世界中的实体在问题空间的抽象。空间对象是地面物体或者说地理现象的抽象。空间对象有两个明显的特征:一个是几何特征,它有大小、形态和位置;另一个是物理特征,即地物要素的属性特征,它是道路,还是河流或房屋。就物理特征来说,一般将空间对象进行编码,国家亦有空间要素的分类编码标准。从几何特征而言,空间对象在二维GIS中可以抽象为零维对象、一维对象和二维对象(Gong,1996)。 实际上,我们将零维对象均抽象称为点对象,一维对象称为线对象,二维对象抽象为面对象。为了直观地表达空间对象及周围环境的状态和性质,一般需要注记,亦可称为注记对象。 图4所示为GeoStar中面向对象集成化的数据模型。在这一数据模型中,有四类空间实体对象:点对象、线对象、面对象、注记对象。它们可以看成是所有空间地物的超类。每个对象又根据它们的物理(属性)特征划分成地物类型。一个或多个地物类组成一个地物层。地物层是逻辑上的,一个地物类可能跨越几个地物层,这样就大大方便了数据处理。例如,一条通行的河流可以在水系层,也可以在交通层,这样,它不需要象在Coverage模型中那样,需要从一个层拷贝到另一个层进行处理。这里的地物类是核心。 在地物层之上是工作区,一个工作区是一个工作范围,它可以包含该范围内的所有地物层,也可以是几个地物层。多个工作区可以相互叠加在一起。在横向方向,若干个工作区组成一个工程。工程是所研究区域或一项GIS工程所涉及的范围,如一个城市,一个省,也可能是一个国家。一个工程是一个空间数据库。 为了将影像和DEM与矢量化的空间对象集成在一起管理,定义影像和格网DEM作为两个层。这两个层的操作和管理与地物层相似。但它的存贮方式不同。影像层和DEM层可以置于工作区中,也可以置于工程中。当置于工作区时,它们可以是单幅图的影像或DEM。但是在工程中,它们需预先建立影像数据库和DEM数据库,此时做到矢量数据库、影像数据库和DEM数据库的集成化管理。 图4 面向对象集成化的数据模型 <IMG src="http://www.3scaigou.com/new/pic/jingpin/fzqs4.jpg"> 四、面向对象矢栅一体化空间数据库管理系统的实现 影像、矢量、DEM集成化空间数据库实际管理时仍然划分为三个子库,如图5所示。三个数据库可以分别建库。亦即采用三种类型数据库管理系统。在建立了各种类型的数据库之后,可以分别进行空间数据的查询、分析与制图。另外,为了与其它两种类型的数据集成管理,各自提供一套动态链接库函数,使之能在矢量数据库管理系统中调用影像数据库和DEM数据库。同样在DEM数据库管理模块中也可能通过动态链接库调用矢量数据库和影像数据库,进行深层次、多数据源的空间查询、分析与制图。 图5 集成化空间数据库系统 <IMG src="http://www.3scaigou.com/new/pic/jingpin/fzqs5.jpg"> 对于矢量数据管理而言,直接采用面向对象技术。为此,我们开发了一个面向对象空间数据管理的引擎,负责空间对象的操作与管理。如图6所示。 图6 面向对象空间数据管理 <IMG src="http://www.3scaigou.com/new/pic/jingpin/fzqs6.jpg"> 空间对象管理主要由对象存储管理器和对象管理器组成。对象存储管理器主要负责对空间各类对象存取,建立空间索引;实现对持久对象的存储,以及记录空间操作的事物日志,并且在必要时对空间对象进行恢复。 对象管理器主要负责空间对象的生成,分配对象和工作区的唯一标识,实现对空间对象的调度;完成各种基本的空间查询;维护空间对象的一致性;实现在网络环境下的多用户控制;并实现对地物类、层、工作区、工程等内容的管理。 影像数据库管理的核心是将影像分块和建立影像金字塔。由于一幅影像数据量太大,难以满足实时调度的要求,所以需将分幅的影像进一步分块存放。例如512*512作为一个子块。通过索引记录块的指针,使得在影像漫游时,根据空间位置,索引到指针,直接指向并调用数据块。另一个问题,当比例尺缩小时,需要看到更抽象的影像,如果直接从底层调数据后再抽取,速度太慢。所以需要建立影像金字塔,根据不同的显示比例,调用不同金字塔层次上的数据。影像数据库的数据结构如图7所示。 图7 多级比例影像数据库数据结构 <IMG src="http://www.3scaigou.com/new/pic/jingpin/fzqs7.jpg"> DEM建库的目的就是要将所有相关的数据有效地组织起来,并根据其地理分布建立统一的空间索引,进而可以快速调度数据库中任意范围的数据,达到对整个地形的无缝漫游。同样,采用金字塔数据结构,根据显示范围的大小可以灵活方便的自动调入不同层次的数据。比如,既可能一览全貌,也可以看到局部地方的微小细节。 通过"工程--工作区--行列"结构,便可唯一地确定DEM数据库范围内任意空间位置的高程。为了提高对整体数据的浏览效率,DEM数据库采用金字塔层次结构和根据显示范围的大小来自动调入不同层次数据的机制。金字塔层次结构的DEM数据库设计如图8所示。 图8 DEM数据库结构 <IMG src="http://www.3scaigou.com/new/pic/jingpin/fzqs81.jpg"> <IMG src="http://www.3scaigou.com/new/pic/jingpin/fzqs82.jpg"> 以面向对象集成化空间数据库管理系统为核心,武汉测绘科技大学(新武汉大学)开发了一个功能强大的地理信息系统软件。该软件系统包括一系列可选的功能部件(动态挂接选件和独立运行模块)与二次开发控件,它包含了地理信息系统、遥感图象处理和数字摄影测量以及多比例、多数据源空间数据库管理系统的各种功能。软件的体系结构如图9所示。软件的物理连接关系如图10所示。 图9 GeoStar 软件体系结构 <IMG src="http://www.3scaigou.com/new/pic/jingpin/fzqs9.jpg"> 图10 GeoStar各模块之间的关系 <IMG src="http://www.3scaigou.com/new/pic/jingpin/fzqs10.jpg"> 面向对象集成化的空间数据库管理系统是一种高效、直观和适应性强的数据库管理系统,该系统作为GeoStar的核心,已成功用于管理全国1:100万和1:25万的基础地理信息。一个含有影像数据、矢量数据和DEM数据的省级基础地理信息系统的示范工程最近在广东省建成,该系统包含了覆盖全省的1:25万TM遥感影像数据、DEM数据和矢量数据,覆盖珠江三角洲的1:25万SPOT与TM融合的影像数据以及覆盖珠江三角洲的1:1万的航空数字正射影像、DEM和矢量数据,形成了一个多比例尺多数据源的数据库。该示范工程拥有80多个GB字节的数据量,系统可以根据用户所选定的比例尺快速检索并提取到相应的各种类型数据,逐级放大,分别得到1:25万、1:5万、1:1万的影像。并可以将矢量、影像和DEM数据进行集成化管理。 五、结论 本文介绍了空间数据库管理系统的发展历史,当前,矢量与属性数据的管理已可满足要求。新一代空间数据库管理系统要求能够管理图形数据、影像数据和DEM数据。 本文介绍的"三库一体"思想在GeoStar的系统设计与开发中得到了充分体现,经过有关示范工程建设,其为建设国家空间数据基础设施和实现"数字地球"长远战略目标提供了一个切实可行的初步方案。当然,为了适应网络技术、通讯技术、数据库技术和虚拟现实技术等高新科技的日新月异,GeoStar本身也在不断发展和完善之中。 Concepts and Development of Spatial Database Management System Jianya GONG National Lab for Information Engineering in Surveying, Mapping and Remote Sensing Wuhan University Spatial database management system is the most important module in GIS software. This paper discusses the concepts and development in spatial database management system. Then it introduces a data model for managing vector data, image data, DEM data and attribute data, and its implementation in GeoStar. |
|
|
1楼#
发布于:2004-09-14 11:29
<img src="images/post/smile/dvbbs/em01.gif" /><img src="images/post/smile/dvbbs/em01.gif" />
|
|
2楼#
发布于:2005-07-23 19:59
不错!
|
|
3楼#
发布于:2007-01-16 10:43
<P>好</P>
<P>谢</P> |
|