❶ 什么是地理空间
GIS是世界上独一无二的一种数据库――空间数据库(Geodatabase)。它是一个“用于地理的信息系统”。从根本上说,GIS是基于一种使用地理术语来描述世界的结构化数据库。
这里我们来回顾一些在空间数据库中重要的基本原理。
· 地理表现形式
作为GIS空间数据库设计工作的一部分,用户要指定要素该如何合理的表现。例如,地块通常用多边形来表达,街道在地图中是中心线(centerline)的形式,水井表现为点等等。这些要素会组成要素类,每个要素类都有共同的地理表现形式。
每个GIS数据集都提供了对世界某一方面的空间表达,包括:
· 基于矢量的要素(点、线和多边形)的有序集合
诸如数字高程模型和影像的栅格数据集
网络
地形和其它地表
测量数据集
其他类型数据,诸如地址、地名和制图信息
描述性的属性
除了地理表现形式以外,地理数据集还包括传统的描述地理对象的属性表。许多表和空间对象之间可以通过它们所共有的字段(也常称为“关键字”)相互关联。就像它们在传统数据库应用中一样,这些以表的形式存在的信息集和信息关系在GIS数据模型中扮演着非常关键的角色。
空间关系:拓扑和网络
空间关系,比如拓扑和网络,也是一个GIS数据库的重要部分。使用拓扑是为了管理要素间的共同边界、定义和维护数据的一致性法则,以及支持拓扑查询和漫游(比如,确定要素的邻接性和连接性)。拓扑也用于支持复杂的编辑,和从非结构化的几何图形来构建要素(例如,用线来构建多边形)。
地理要素共享几何形状。可以使用节点、边、面的关系来描述要素的几何形状
在这个网络示例中,街道要素代表连接它们的端点(称为“连接”)的边。
转向模型可用于控制从一边到另一边的通行能力
· 专题图层与数据集
GIS将空间数据组织成一系列的专题图层和表格。由于GIS中的空间数据集具有地理参考,因此它们具有现实世界的位置信息并互相叠加。
GIS集成了多种类型的空间数据
在一个GIS中,同类型的地理对象集合被组织成图层,例如地块、水井、建筑物、正射影像以及基于栅格的数字高程模型(DEM)。明确定义的地理数据集对于一个实用的地理信息系统是相当重要的,同时专题信息集合使用层来组织,这样的思想也是GIS数据集一个关键的思想。
数据集可以用于表达:
原始量测值(例如卫星影像)
经过解译的信息 l 通过空间分析和建模处理而得来的数据
通过层之间共同的地理位置,我们可以很容易地得到多个层之间的空间关系。
GIS使用普通的对象类来管理这些简单的图层,同时凭借一套功能丰富的工具获取数据层之间的关键联系。
GIS会使用通常是来自不同组织机构,并且具有各种表现方式的大量数据集。因此对于GIS数据集很重要的是:
· 使用简单并易于理解
· 易于同其他的地理数据集结合使用
· 能够被有效地编辑与校验
· 能够形成具有内容详实,使用和目标描述明确的清晰文档
任何的GIS数据库或者用基于文件的数据组织方式都遵循这些共同的原则与概念。每个GIS都需要有一个机制依据这些原则来描述地理数据,并且通过一套综合的工具来使用和管理此信息。
❷ 地理三维模型是什么
地理三维模型是空间分析,而空间分析的基础是空间数据模型。
GIS的概念数据模型分为3类:对象模型(ob-ject model)、网络模型( network model)和场模型(field model)。
比如基于平面图的点、线、面数据模型和基于连续铺盖的栅格数据模型,分别为对象模型和场模型,描述道路网络、地下管线等需要网络模型;定义了一种基于对象的模型和一种基于域的模型。
分别对应对象模型和场模型;OGC(open GIS consortium)的简单对象模型规范定义了点、线、面和表面模型,其中表面模型可以用来表达实体,也可以表达地形等2. 5维的连续表面。
但是随着三维GIS技术的发展,已有的对象模型和场模型在地学表达上并不充足,这些空间数据模型都缺乏对三维空间中连续、非匀质的场数据的表达能力。
随着三维GIS技术的发展以及三维GIS在建筑信息模型(building informationmodeling,BIM)+GIS、数字化孪生、透明城市、智慧城市、城市设计等领域的广泛应用 。
GIS对现实世界的表达全面扩展到空/天、地表和地下,并从室外走进室内,空间数据模型的二三维一体化是三维GIS发展的必经之路。
早期基于平面图的空间数据模型已经不能满足对三维属性场的表示,比如电磁场:三维空间中5G信号的分布。
空气的属性场:污染、温度、湿度场的表达;地质的属性场更多更复杂,如密度、孔隙度、杨氏模量、泊松比等。
对于三维场数据的表达,在理论研究方面,基于TEN (tetrahedron network)的数据模型,对其数据结构进行了简要描述;基于八叉树和TEN的混合数据结构。
用于平衡数据量和数据表达精度之间的矛盾;基于体元的三维场数据表达方法;构建了泛在知识数据表示模型(mubiquitousknowledgeable data representation model,UKR)。
用来表达复杂的三维空间事物,包括对场数据的表达。
❸ 地理信息系统的数据模型包括那些相互联系的方面试举例说明
1.引言
经过几十年的发展,今天的GIS系统已经具备了较强的数据存贮、管理和输入输出功能,但目前大多数的GIS仍然是以数据为中心的,在完整表达客观地理世界、进行高层次的空间分析和直接提出决策方案的能力方面还远远不够,导致这种情况的根本原因在于现有GIS的数据模型不能准确地表达客观地理世界。为此,作者为现有GIS软件总结了两种典型的数据模型[1]:拓扑关系数据模型和面向实体的数据模型,并分析了它们各自的优缺点,指出应该在整体论的基础上为地理空间建立一个能够直接反映人们认知的整体数据模型。
2.面向对象的整体数据模型
GIS本质上是对客观地理世界的近似模拟,其理想状态应该是尽可能准确地反映地理世界,同时做到数据量最小,又便于人们从中获取所需要的信息和规律。要达到这种理想状态,我们需要做好两步工作:1)准确理解地理空间;2)为地理空间建立面向对象的整体数据模型---一个基于地理空间整体论、完全以面向对象方式组织的GIS数据模型。
地理空间的理解可以简单概括为[1]:地理空间是一个目标组合排列集,每个目标或说对象都具有位置、属性和时间信息,及与其它对象的拓扑关系、语义关系等。基于这一认识,我们可以得到,表达地理空间的整体GIS数据模型有如下特征:
■ 将地理空间按照人的思维方式理解为基于目标的空间和定义在地球表层目标集上的关系。除了要研究对象的几何位置及拓扑关系外,还要重视研究对象间的语义关系。
■ 整体数据模型虽然要求我们将客观世界作为整体看待,但在执行具体的数据组织时也需要对众多的地理实体进行分层。分层是基本的和必要的,但由于为一种目的进行的分层很难满足另外的需求,因此重要的不是提供一种通用的分层,而是对方便地加入、删除对象等维护层的操作予以足够的支持。复合图层含有不按对象维数分层的含义,能够很好地体现客观 世界的整体特征,为不同层中的关联对象或用户感兴趣的不同类型对象提供了一个集中存贮与交互的独立空间,整体数据模型尤其应该增强复合图层的功能,使用户能够自由地加入、删除、修改、查询任意类型(点、线、面和复杂实体)的地理实体,同时能够进行强大的空间分析;
■ 虽然传统的GIS数据模型常将基于对象的模型用矢量结构表达,而将基于场的模型用栅格结构表达[2][3],其实可将对象和连续场这两种看似对立的模型统一在面向对象的整体数据模型中,因为面向对象的方法作为一种框架不仅可以描述基于对象的模型,也可以描述基于场的模型[3][4]。
■ 空间对象是处在三维空间中的,并具有多尺度特征。
■ 整个数据模型完全以面向对象的方式组织。
由上可见,在整体数据模型中,地理空间被表达为一个具有相互关系的对象集。每个对象不仅具有自己的几何信息、属性信息和时间信息,而且与其它对象之间具有拓扑关系和语义关系。所有这些信息在整体数据模型中都处于同等重要的地位,其中起着连接作用的是对象本身。根据对象的形状特点,同时为了方便计算机实现与管理,我们可以将地理空间中的对象分为5种基本对象:点、线、面、注记和复杂对象。其中,前面四种对象比较简单,统称为简单对象,这里只介绍第5种对象---复杂对象。
复杂对象是由简单对象组合派生的,可以划分为如下两种类型:
1)单纯型复杂对象
多个同样类型的对象合并成为一个单纯型复杂对象。·复杂点:点群,由多个点状对象构成的集合,整个集合是一个对象,如聚集在一起的多个水文站等;•复杂线:线群,由多个线状对象构成的集合,整个集合是一个对象,如一线状水系,一径流网络等;·复杂面:面群,由多个面状对象构成的集合,整个集合是一个对象,如一湖泊群,一海洋群岛等。
2)混合型复杂对象
点、线、面共存的复杂对象。混合型复杂对象的混合种类包括:点与线混合,点与面混合、线与面混合及点、线、面同时存在的混合,多个不同类型对象合并成一个就构成了混合型复杂对象,因此混合型复杂对象不属于点、线、面中的某一基本类型,在属性上也就不具备这些基本类型对象的一些特有信息,如线对象的长度,面对象的面积和周长等,这在数据库表结构的设计中要予以必要的考虑。
单纯型复杂对象可以在相应类型的简单对象集中存贮和在相应图层中显示,也可以在复合对象集中存贮和在复合图层中显示;混合型复杂对象只能在复合对象集中存贮和在复合图层中显示,它们不适合存入简单对象集,也不宜在点、线、面简单图层中显示,因为它们的加入会破坏简单对象集和简单图层的专题特性,也不便于管理。
上面介绍的这5种对象在地理空间中都是以三维形态存在的,但由于三维GIS建设的成本较高,在技术实现上也有相当的难度,而目前二维GIS能够满足大部分实际需求,因此我们在表达三维客观地理世界、实现整体GIS数据模型时以开发二维GIS为主,而在某些需要查看具体三维细节的地方提供机制以表现其三维结构,例如可以另开辟一个小的三维地图窗口来表现对象的三维形状、结构和拓扑关系等。
时间问题[5]-[8]、语义关系和拓扑关系[9]-[11]一直是GIS界长期研究的热点,虽然它们在整体数据模型里面占有很重要的位置,但是本文的重点在于确定整个数据模型和系统的总体组织,对它们的具体讨论将在以后逐步展开。
3 系统数据组织
3.1 对象集
对象集是指由众多对象构成的集合。划分对象集的目的在于存储和管理对象的方便,它可以是由同种几何类型的对象构成的集合,也可以是由不同类型对象组成的集合。在整体GIS数据模型中,有如下三类对象集:
■ 简单对象集:包括简单点对象集、线对象集、面对象集和注记对象集四类;点对象集是由简单点对象或单纯型复杂点对象组成的集合,线对象集是由简单线对象或单纯型复杂线对象组成的集合,面对象集是由简单面对象或单纯型复杂面对象组成的集合。简单对象集也可称为专题对象集。
■ 复合对象集:由简单点、线、面对象、注记对象、单纯型复杂对象或混合型复杂对象等不同类型对象组成的集合。在这种对象集合中,可以包含任意类型的对象元素;
■ 场:场是由有机关联的对象构成的集合,其中的元素在几何上不再相互独立,而是紧密相关,这一点与以上两种对象集不同。如TIN、GRID、影像和网络等。场中的元素对象一般较多,场本身就是一个对象集,因此我们在概念上不再另设场对象和场对象集。
由上可见,对象类型与对象集类型并不是完全一一对应的,例如:单纯型复杂线对象与简单线对象一样分别存贮与显示在简单线对象集和简单线图层中,不必要专门的单纯型复杂线对象集和单纯型复杂线图层来存贮和显示。
除了点、线、面三种单纯型复杂对象外,其它各种对象(点、线、面简单对象、注记对象和混合型复杂对象)与对象集类型都是一一对应的。另外,场是一种对象集,不过由于其中的元素并不是场对象(没有场对象概念),因而场与场中的元素也不存在一一对应的关系,但在实现时开发者完全可以设计一个场类来管理各种各样的场。
值得指出的是,整体GIS数据模型认为人们感知的客观世界是一个由众多类型不同的地理实体组成的整体世界,而不是人为分割的、僵化的对象层,但由于分层能够为GIS管理和显示地理对象提供极大的方便,因此我们在基本分层(在本文中是对象集)的基础上,特别提出并强调复合对象集的概念,以此来表达和实现整体GIS数据模型的整体思想。复合对象集打破了GIS中传统分层的框架,为不同对象集中的关联对象或用户感兴趣的不同类型对象提供了一个集中存贮与交互的独立空间,但同时也为系统开发和管理带来了一定难度。比如,单纯型对象集的显示、修改、存贮、管理、分析和输出都可采用统一的方法进行,而复合对象集的这些操作则必须在内部进行分别处理(按对象类型)。虽然如此,但单纯型对象集与复合对象集都是为了满足不同的用户需求而设计的,二者在对象组织、系统实现和空间分析上各有优缺点,一个功能强大的GIS应该同时支持它们。
3.2 图层
对象集加上自己特有的显示属性即是图层,因此对象集类型与图层类型是一一对应的。由于对象集包括点、线、面、注记对象集、复合对象集和场6种基本类型,因此图层也有相应的点、线、面、注记图层、复合图层和场图层6种基本类型。对象集用来存贮对象的空间与属性数据,而图层则用来设置对象集的显示风格并控制对象集的显示范围、显示比例和操作特性(如可显示、可选择、可编辑和可捕捉等),二者各司其职又相互联系。在对应关系上,一个图层只对应一个对象集,而一个对象集却可显示在不同的地图窗口中对应多个图层,因此对象集与图层之间的关系是一对多的关系。
表1 各种对象的存贮与显示对比表
Tab.1 Contrast of store and display of all kinds of objects
对象类型
存贮的对象集
显示的图层
点与单纯型复杂点
简单点对象集表
简单点图层
线与单纯型复杂线
简单线对象集表
简单线图层
面与单纯型复杂面
简单面对象集表
简单面图层
混合型复杂对象
复合对象集表
复合图层
场
多个非同类简单对象集表
场图层
注记对象
注记对象集表
注记图层
3.3 数据库
我们这里所说的数据库是指广义的数据库,其定义为“存贮对象的集合”。物理上不管是以文件形式还是以商业数据库形式存在,只要存贮有对象,我们都称为数据库。就综合性能而言,一般是文件系统在小量数据方面有自己的长处,而商业数据库则对大量数据的支持有着文件系统无法替代的优势。
3.4 地图或地图窗口
对象集是用来存贮地理对象的,图层是用来控制对象的显示的,两者都不等同于地图或地图窗口。我们的地图或地图窗口是一种框架,是显示对象的实际载体,也是控制图层并对之进行操作和分析的主体。
3.5 工作空间
工作空间是为系统管理方便而设计的,相当于一个大的仓库,里面存贮有数据的基本信息,如数据库的名字与尺寸、地图和其它资源(如点、线、面型符号)。系统运行时可调入数据库对之进行管理控制。
4 数据存储与访问
4.1 存储结构
4.1.1 简单对象集对应的表结构
如前文所述,对象集包括点、线、面、注记对象集、复合对象集和场6种基本类型,因此在数据库中应该设计与之对应的6种表。对于文件系统而言,表的概念可以扩展为结构,也就是说用6种结构来存贮这些对象集的各个元素。其中,结构的成员与表的字段是一一对应的,为了操作方便,我们还可以定义一个专门的类来管理这个结构。对于商业数据库而言,表就是关系数据库系统中的普通表,不必进一步考虑。
不同的对象类型对应不同的表,但所有对象集都可采取形如表2的结构,当然不同类型的对象集在空间坐标串的组织及属性字段名字上会有不同。由于点对象与单纯型复杂点对象除了空间坐标串组织方式稍有不同外(不过都是用同样的方法打包成外部不可见的二进制块,可视为相同),其余字段都相同,因此它们可以共存于一个表,也可以一起显示在同一图层中,在各方面的处理上几乎没有什么差别。线对象与单纯型复杂线对象、面对象与单纯型复杂面对象的关系与此类似,也可同存于一个表和在同一图层中显示。当然,简单对象与单纯型复杂对象的空间坐标串的组成结构不同,单纯型复杂对象应该有能够识别多个同类型简单子对象的格式或标记。对于混合型复杂对象,必须用单独的混合型复杂对象表存贮,表结构中除了没有简单对象公有的长度、面积等字段外,其它字段均可根据需要进行设置,结构形式仍同于表2。
表2 简单点、线、面对象及单纯型复杂点、线、面对象表
Tab.2 Data structure of all kinds of objects
对象ID
用户ID
空间信息
语义关系1…
属性1…
属性n
…
…
…
…
…
…,三维结构与时间表存在的标志
由上可见,我们并未如拓扑关系模型那样在面对象表的空间坐标字段里用一系列弧段标识号来表示面对象的组成,而是直接用其坐标串。虽然这样在多边形的公共边上会有重复存储现象出现,但在计算机存储设备日益增大的今天,这已经不再是主要问题,相反这种坐标存储方式使面对象表不再依赖线对象表,其中的元素也变成为相对独立、完整的对象,同时也将提高系统访问数据的速度。这种方式是面向实体的数据模型和面向对象整体数据模型在内部实现机制上的一个特色,是一种以空间换时间的存储方式。
4.1.2 三维结构与时间属性的表结构
目前的GIS仍然以二维GIS为主,但有时又需要查看少数对象的三维结构与时间特性,因此我们在整体GIS的数据库中为这部分对象单独设计了“三维结构与时间表”。为了讨论方便,我们把上面的表2称为主表,而把这个表称为副表(表3)。副表中并不存储整个对象集的全部对象,而是只存储部分具有三维结构与时间特性的对象。至于哪些对象能有三维结构与时间属性存贮在副表中,则要看它们在主表中最后一个属性字段里的标志值。如果标志值为真,则有,否则在三维结构与时间属性表中就没有这些对象。
有时候对一部分对象我们只关心其三维结构或只关心其时间属性,这部分对象的取值不能简单地设为真或假,此时要修改标志变量的值域将之设置为4值域,即V={0, 1, 2, 3},其中0表示既没有三维结构又没有时间属性,1表示有三维结构但没有时间属性,2表示没有三维结构却有时间属性,3表示两者都有。如果整个对象集中存在值为1或2的对象,那么该表就要拆分成两部分以分别存储它们的三维结构与时间属性,当然这些对象的其它信息仍然存储于主表中。
表3 三维结构与时间表
Tab.3 3D data structure and time attribute of all kinds of objects
对象ID
三维结构
时间属性1
时间属性2
时间属性n
…
…
…
…
…
4.1.3 复合对象集对应的表结构
复合对象集是整体GIS数据模型中一个很重要的概念,对于复合对象集,我们可以用两种方式存贮它。1)物理方式,即在物理上将对象的所有信息都集中存放于一个表中。由于不同类型对象的字段不尽相同,因而必然会造成一些字段的空间浪费,例如点对象的长度和面积字段在现实世界中没有实际意义,所占空间自然就是浪费。显然,复合对象集中对象的类型越多,造成的空间浪费就越大。不过,如果复合对象集中包含的对象类型只是简单点与单纯型复杂点,或简单线与单纯型复杂线,或简单面与单纯型复杂面,那么就不会存在字段不一致导致的空间浪费问题。2)逻辑方式,即复合对象集中只存贮对象的系统ID号,而实际的信息仍存在于简单点、线、面对象和单纯型点、线、面复杂对象表---主表中。只是当读取复合对象集中对象的信息时,要打开并访问相应类型的主表,需要耗费一定的系统时间。到底采用何种方式合适,要视具体情况而定。作者的建议是,当复合对象集中对象类型较少时,采用物理方式较为合适。反之,采用逻辑方式则更为合理。作为一个好的GIS系统,应该对这两种存贮方式都进行强有力的支持。
4.1.4 场对应的表结构
面向对象的整体GIS数据模型不仅在概念上将地理对象作为一个个独立的实体看待,而且在内部存储上也是将它们独立存储,各对象表之间并不存在拓扑依赖关系,这一点与基于拓扑关系的数据模型有很大的不同。那么,面向对象的整体GIS数据模型如何处理对象间的拓扑关系呢?我们知道,拓扑模型存贮对象间拓扑关系的一个很重要的目的是为了实现数据共享(同时也降低了访问速度),整体GIS放弃了这一点,它在对象的单个表中为每个对象都存贮了完整的坐标信息。拓扑关系在GIS中并不是最基本的信息,当在特殊情况下需要时我们可以将它们临时构建出来,生成的拓扑关系存放于新的对象集中,形成专门的具有拓扑关系的对象集,这种对象集就是场(这里特指矢量场)。场表的字段设置基本上采用了拓扑关系数据模型的表结构,面与线之间的坐标存储具有依赖关系。
其实,拓扑关系数据模型中预先存储的拓扑关系和整体GIS数据模型中临时构建的拓扑关系都是最基本的点、线、面邻接关系,并未涉及到相交、相离、覆盖等更多的拓扑关系,邻接关系也是拓扑关系中最常用的一种,因此我们只讨论点、线、面间的邻接拓扑关系,其它关系可根据空间查询和分析运算得到。
1)网络场
网络场是包含并强调点、线拓扑关系的最典型代表,网络场对应的对象表有两个:以弧段为主的弧段---结点表(表中含坐标串字段)与以结点为主的结点---弧段表(表中可含结点坐标字段,也可不含)。其中结点---弧段表中可存贮弧段标识号,也可不存(如果不存,可在弧段---结点表中查得结点的弧段),但结点表一定要存在,因为结点有属性要保存。网络场的两个表包含了点与线之间的邻接拓扑关系,我们可以通过它们查得任意结点的邻接弧段和结点,可以查得任意弧段的起止结点。弧段的位置信息一般存于弧段---结点表的空间坐标串字段中,端点的坐标可存于该字段中,也可在结点---弧段表中设一坐标字段存贮。
2)TIN场
TIN场由两类表即可存贮:三角形表和点表。三角形的坐标存于点表的坐标字段中,三角形表本身不存储坐标信息,而只存三角形顶点序号,这些序号的排列有严格的顺序,不能随意颠倒。
3)点-线-面场
有了多边形---弧段、弧段与结点和多边形、结点---弧段三个表,我们就可以得到任意多边形、任意弧段和任意结点的拓扑邻接关系[1]。其中弧段与结点和多边形表是枢纽,为弧段默认设置了空间坐标串字段、从结点、到结点、左多边形和右多边形5个字段。含有这种点、线、面之间拓扑关系的典型场有城市街区图、地籍管理中的宗地等。
其它场如GRID模型、影像数据是栅格数据管理的范围,数据结构相对简单,本文不作讨论。
4.1.5 数据库选择
在数据库类型选择上,有三种模式可供参考:
■ 全文件方式,即空间数据和属性数据都存贮在文件系统中;
■ 文件数据库混合方式,即空间数据存贮在文件系统中,而属性数据存贮在商业数据库中;
■ 全数据库方式,即空间数据与属性数据都存贮在商业数据库中,两种数据可以存放于同一个表也可分别存放于两个表中。
4.2 访问机制
上一小节讨论了地理对象的存贮方式,作为一个大的空间数据库,仅有这些表是不够的。6种基本对象集表只是给我们提供了装载对象的空间,其中的商业数据库表虽然也给我们提供了访问接口(文件系统中表的接口则需要我们自己开发),但究竟如何进行有效的调度访问则还需要进一步设计和组织。
4.2.1 空间索引
我们知道,由于每个表具有相对固定的字段结构,因此一个表只适合存贮类型相同的对象,在整体GIS数据模型里,一个表通常对应一个对象集。一个数据库中往往有多个表,为了管理表的方便,可以用一个统一的表---总表来管理所有对象集对应的表,总表使我们在不必访问数据库各表的情况下就能得到它们的基本信息(如对象集的范围、对象集的索引表等)。一个数据库中只存在一个总表。
在解决了统一管理对象集表的问题后,进一步,为了快速访问各表中的地理对象,我们可以为每个表建立空间索引和属性索引。属性索引可以直接利用关键字在数据库中建立,而空间索引则需要采用一定的算法来实现,常用的方法有R树索引、网格索引和四叉树索引等。为每个对象分配的空间索引编号都存在该对象集的空间索引表中,即一个对象集表对应一个空间索引表。一个数据库中所有对象集表和相应的空间索引表都只对应一个总表。
表4 对象集表对应的空间索引表
Tab.4 Spatial index table of all kinds of object sets
索引块编号 索引块内的对象ID集合
…
….
4.2.2 对象存取
关系数据库以结构简单规范着称,访问存取操作技术也易为人们理解和掌握。当我们把地理对象存入数据库中以后,后面对这些对象的访问、修改也就容易了,在表中加、删记录也相当简单。采用的方法都是将给定的空间、属性条件组织成标准的SQL语句,输入查询算子里面执行即可。当然,对于空间条件的处理,需要自己写算法实现。总体来说,对数据库中对象的访问是以记录集为媒介的,不管是读出对象信息,还是修改、加入、删除记录(写进),都要通过记录集进行,因此必须首先进行查询(SQL查询和空间查询)得到带有所需字段的记录集。对于不支持这种规范化操作的文件型数据库,可以自己开发类似的访问引擎实现对象存取。图3表示了在数据库中进行对象存取的一种机制。
5 系统实现
相对于以前的GIS数据模型而言,整体模型更能真实地逼近客观世界,我们开发的商品化软件---SuperMap 系列软件很好地体现了整体GIS数据模型的思想,能够满足整体GIS的大部分需求,目前已经在国内外市场上得到了广泛应用。
图4展示的是SuperMap系列软件之一的通用桌面GIS系统---SuperMap Deskpro 3.0版本,该系统完全以面向地理实体的方式组织,不仅存贮有地理实体的位置与属性信息,而且能够方便地存取实体之间的拓扑关系和语义关系。在图层的组织方面,不仅符合用户对地理世界的直接感知模式(通过复合对象集实现),而且支持用户根据自己的需要对地理数据进行理性地思考、组织、存贮、管理与显示(简单对象集不仅能满足用户的专题需要,同时也能避免用户误操作对专题数据统一性的破坏)。在数据存贮与管理方面,既支持小数据量的文件型数据库,同时也支持市场上广为流行的大型商用数据库,如SQL Server和Oracle等,空间索引和查询的速度也满足海量数据用户的实际需求。作为桌面GIS系统,SuperMap Deskpro 3.0为用户提供了友好的图形界面,在操作上也为用户批量处理数据提供了很大的方便。SuperMap Deskpro 3.0参加国家科技部和国家遥感中心组织的2001年度国产地理信息系统软件测评后,作为优秀的桌面GIS产品获得了科技部的表彰推荐。
6 结语
用户感知到的地理世界是一个整体,而不是一个个数据层,而且是动态变化和处于三维空间中的。地理世界中的各种实体之间具有拓扑关系和语义关系。为了使做出来的GIS尽可能地符合用户对地理世界的认知,面向对向的整体GIS数据模型及其实现系统需具有如下特点:
1) 强调拓扑关系与语义关系;
2) 强调特定对象的三维结构与时间属性;
3) 重视在复合对象集与复合图层方面增强功能,例如增加任意类型的对象与对象集;
4) 面向对象与拓扑关系数据结构相结合、面向实体与面向场数据模型共存;
5) 客观世界是一个整体,本质上没有GIS的分层概念,但有时在GIS系统中也需要跨层研究对象之间的关系。对于这种跨层拓扑关系我们可以用三种方法揭示:①将各层显示在同一地图窗口中进行观察;②跨图层查询并将结果显示在同一地图窗口中,结果也可保存为地图或复合对象集;③利用整体数据模型中的网络场和点-线-面场有效地模拟跨层之间的拓扑关系。
6) 地理实体之间的语义关系可以通过对象的属性来标识。
❹ 空间数据库的组成部分
空间数据库指的是地理信息系统在计算机物理存储介质上存储的与应用相关的地理空间数据的总和,一般是以一系列特定结构的文件的形式组织在存储介质之上的。《空间数据库》范围及重点 1. 第一章:绪论 1) 空间数据库基本概念、组成部分、名称简写之间的联系与区别与联系; 答;利用当代的系统方法,在地理学、地图学原理的指导下,对地理空间进行科学的认识与抽象,将地理数据库化为计算机处理时所需的形式与结构,形成综合性的信息系统技术——空间数据库 或者SDBMS是海量SD的存储场所、提供SD处理与更新、交换与共享,实现空间分析与决策的综合系统。 组成:存储系统、管理系统、应用系统 是SDBS的简称 2) 目前空间数据库实现方案; 答:ORDBMS 3) GIS,RS与空间数据库之间的联系; 4) 常见的空间数据库产品 答:轻量级: MS的Access、FoxPro、 SUN的MySQL 中等:MS的SQL Server系列 重量级:Oracle的Oracle 不太熟悉的有: Sybase、Informix、DB2 、Ingress、 PostgreSQL(PG)等 5) 产生空间数据库的原因; 答:直接利用? SD特征 :空间特性 非结构化特征 空间关系特征 多尺度与多态性 海量数据特性 存在的问题:复杂图形功能:空间对象 复杂的空间关系 数据变长记录 6)空间数据库与普通关系数据库的主要区别。 答:关系数据库管理属性数据,空间数据采用文件库或图库形式;增加大二进制数据类型(BLOB),解决变长数据存储问题;将空间数据/属性数据全部存放在数据库中;但空间特性由程序处理 2. 第二章:空间数据库模型 1) 如何理解空间数据库模型; 2) 空间数据及空间关系; „ (1) 空间数据类型 几何图形数据 影像数据 属性数据 地形数据 元数据:对空间数据进行推理、分析和总结得到的关于数据的数据, 数据来源、数据权属、数据产生的时间 数据精度、数据分辨率、元数据比例尺 地理空间参考基准、数据转换方法… (2) 空间关系 指地理空间实体之间相互作用的关系: 拓扑关系:形状、大小随投影改变。在拓扑变换下不变的拓扑变量,如相邻、包含、相交等,
反映空间连续变化的不变性 方位关系:地理空间上的排列顺序,如前后、上下、左右和东、南、西、北等方位 度量关系:距离远近等 3) 空间数据库如何建模; DB设计三步骤 ‹ Conceptual Data Model:与应用有关的可用信息组织、数据类型、联系及约束、不考虑细节、E-R模型 Logic Data Model 层次、网状、关系,都归为关系,SQL的关系代数(relational algebra, RA) Physical Data Model:解决应用在计算机中具体实现的各种细节,计算机存储、数据结构等 4) 模型之间如何转换? 5) 可行的空间数据库建模方案。 面向对象的空间数据库模型GeoDatabase 3. 第三章:空间数据库存储与索引 1) 空间数据如何组织、存储的,采用什么技术或者方法; 为有效表达空间信息内容,空间数据必须按照一定的方式进行组织与存储:适合外存操作的数据结构、记录和文件的多种组织方式 SDB空间数据组织:数据项、记录、文件、数据库 SDB空间数据存储:二级存储器、缓冲区管理器、空间聚类(clustering)、空间索引 2) 空间近似与空间聚类; 目的:降低响应大查询的寻道时间和等待时间,在二级存储中空间上相邻的/查询上有关联的空间对象在物理上存放在一起, 内部聚类(internal clustering):加快单个对象的访问,一个对象都存放在一个磁盘块(页面);如超出则存放在连续扇区,本地聚类(local clustering):加快多个对象访问。一组空间相邻对象存放在一个页面 空间聚类比传统聚类技术复杂。多维空间对象无天然的顺序 磁盘:一维存取,高维:将高维映射到一维, 一一对应,保持距离(distance preserving):一一对应,容易;距离不变,近似,映射技术、Z序(z-order)、Hilbert曲线 3) 空间数据库性能提升的关键问题是什么?如何提升; 数据库索引,基于树:ISAM、B树、B 树等,基于Hash:静态、可扩展、线性等 4) 空间索引技术是什么?为什么产生?有哪些常见的空间索引;各有何特点及适用范围? 依据空间对象的位置和形状或者空间对象之间的空间关系,按一定顺序排列的一种数据结构,介于空间操作算法和空间对象之间,通过筛选,大量与特定空间操作无关的空间对象被排除,提高效率,空间数据库关键的技术 空间索引产生的原因:空间数据的特点:空间定位、空间关系、多维、多尺度、海量、复杂,传统数据库索引处理的一维的字符、数字,对多维处理采用组合字段 1、基于二叉树的索引技术:二分索引树结构主要用于索引多维数据点;对复杂空间目标(线、面、体等)的索引却必须采用近似索引方法和空间映射技术 2、 基于B树的索引技术 ‹B树的变体如R树系列,外包矩形;对大型数据库具有出色表现;需要解决:减少区域重叠,提高搜索效率 3、基于哈希的网格技术