第四章 空间数据库
第一节 数据库概述
数据库技术是60年代初开始发展起来的一门数据管理自动化的综合性新技术。数据库的应用领域相当广泛,从一般事务处理,到各种专门化数据的存储与管理,都可以建立不同类型的数据库。建立数据库不仅仅是为了保存数据,扩展人的记忆,而主要是为了帮助人们去管理和控制与这些数据相关联的事物。地理信息系统中的数据库就是一种专门化的数据库,由于这类数据库具有明显的空间特征,所以有人把它称为空间数据库,空间数据库的理论与方法是地理信息系统的核心问题。
数据库的定义
数据库就是为了一定的目的,在计算机系统中以特定的结构组织、存储和应用的相关联的数据集合。
计算机对数据的管理经过了三个阶段—最早的程序管理阶段,后来的文件管理阶段,现在的数据库管理阶段。其中,数据库是数据管理的高级阶段,它与传统的数据管理相比有许多明显的差别,其中主要的有两点:一是数据独立于应用程序而集中管理,实现了数据共享,减少了数据冗余,提高了数据的效益;二是在数据间建立了联系,从而使数据库能反映出现实世界中信息的联系。
地理信息系统的数据库(以下称为空间数据库)是某区域内关于一定地理要素特征的数据集合。空间数据库与一般数据库相比,具有以下特点:
(1) 数据量特别大,地理系统是一个复杂的综合体,要用数据来描述各种地理要素,尤其是要素的空间位置,其数据量往往大得惊人。即使是一个很小区域的数据库也是如此。
(2) 不仅有地理要素的属性数据(与一般数据库中的数据性质相似),还有大量的空间数据,即描述地理要素空间分布位置的数据,并且这两种数据之间具有不可分割的联系。
(3) 数据应用的面相当广,如地理研究、环境保护、土地利用与规划、资源开发、生态环境、市政管理、道路建设等等。
上述特点,尤其是第二点,决定了在建立空间数据库时,一方面应该遵循和应用通用数据库的原理和方法,另一方面又必须采取一些特殊的技术和方法来解决其它数据库所没有的管理空间数据的问题。
二、数据库的主要特征
数据库方法与文件管理方法相比,具有更强的数据管理能力。数据库具有以下主要特征:
数据集中控制特征
在文件管理方法中,文件是分散的,每个用户或每种处理都有各自的文件,不同的用户或处理的文件一般是没有联系的,因而就不能为多用户共享,也不能按照统一的方法来控制、维护和管理。数据库很好地克服了这一缺点,数据库集中控制和管理有关数据,以保证不同用户和应用可以共享数据。数据集中并不是把若干文件“拼凑”在一起,而是要把数据“集成”。因此,数据库的内容和结构必须合理,才能满足众多用户的要求。
数据冗余度小的特征
冗余是指数据的重复存储。在文件方式中,数据冗余太。冗余数据的存在有两个缺点:一是增加了存储空间;二是易出现数据不一致。设计数据库的主要任务之一是识别冗余数据,并确定是否能够消除。在目前情况下,即使数据库方法也不能完全消除冗余数据。有时,为了提高数据处理效率,也应该有一定程度的数据冗余。但是,在数据库中应该严格控制数据的冗余度。在有冗余的情况下,数据更新、修改时,必须保证数据库内容的一致性。
3、数据独立性特征
数据独立是数据库的关键性要求。数据独立是指数据库中的数据与应用程序相互独立,即应用程序不因数据性质的改变而改变;数据的性质也不因应用程序的改变而改变。数据独立分为两级:物理级和逻辑级。物理独立是指数据的物理结构变化不影响数据的逻辑结构;逻辑独立意味着数据库的逻辑结构的改变不影响应用程序。但是,逻辑结构的改变必然影响到数据的物理结构。目前,数据逻辑独立还没有能完全实观。
4、复杂的数据模型 数据模型能够表示现实世界中各种各样的数据组织以及数据间的 联系。复杂的数据模型是实现数据集中控制、减少数据冗余的前提和保证。采用数据模型是数据库方法与文件方式的一个本质差别。
数据库常用的数据模型有三种:层次模型,网络模型和关系模型。因此,根据使用的模型,可以把数据库分成:层次型数据库,网络型数据库和关系型数据库。
5、数据保护特征
数据保护对数据库来说是至关重要的,一旦数据库中的数据遭到破坏,就会影响数据库的功能,甚至使整个数据库失去作用、数据保护主要包括四个方面的内容:安全性控制、完整性控制、并发控制、故障的发现和恢复。
三、数据库的系统结构
数据库是一个复杂的系统。数据库的基本结构可以分成三个层次:物理级、概念级和用户级。
1、物理级:数据库最内的一层。它是物理设备上实际存储的数据集合(物理数据库)。它是由物理模式(也称内部模式)描述的。
2、概念级:数据库的逻辑表示,包括每个数据的逻辑定义以及数据间的逻辑联系。它是由概念模式定义的,这一级也被称为概念模型。
用户级:用户所使用的数据库,是一个或几个特定用户所使用的数据集合(外部模型),是概念模型的逻辑子集。它由外部模式定义。
四、数据组织方式
数据是现实世界中信息的裁体,是信息的具体表达形式。为了表达有意义的信息内容,数据必须按照一定的方式进行组织和存储。数据库中的数据组织一般可以分为四级:数据项、记录、文件和数据库。
1、数据项:是可以定义数据的最小单位,也叫元素、基本项、字段等。数据项与现实世界实体的属性相对应,数据项有一定的取值范围,称为域。域以外的任何值对该数据项都是无意义的。如表示月份的数据项的域是1—12,13就是无意义的值。每个数据项都有一个名称,称为数据项目。数据项的值可以是数值的、字母的、汉字的等形式。数据项的物理特点在于它具有确定的物理长度,一般用字节数表示。
几个数据项可以组合,构成组合数据项。如“日期”可以由日、月、年三个数据项组合而成。组合数据项也有自己的名字,可以作为一个整体看待。
2、记录:由若干相关联的数据项组成。记录是应用程序输入—输出的逻辑单位。对大多数据库系统,记录是处理和存储信息的基本单位。记录是关于一个实体的数据总和,构成该记录的数据项表示实体的若干属性。
记录有“型”和“值”的区别。“型”是同类记录的框架,它定义记录,“值”是记录反映实体的内容。
为了唯一标识每个记录,就必须有记录标识符,也叫关键字。记录标识符一般由记录中的第一个数据项担任,唯一标识记录的关键字称主关键字,其它标识记录的关键字称为辅关键字。
3、文件:文件是一给定类型的(逻辑)记录的全部具体值的集合。文件用文件名称标识。文件根据记录的组织方式和存取方法可以分为:顺序文件、索引文件、直接文件和倒排文件等等。
4、数据库:是比文件更大的数据组织。数据库是具有特定联系的数据的集合,也可以看成是具有特定联系的多种类型的记录的集合。数据库的内部构造是文件的集合,这些文件之间存在某种联系,不能孤立存在。
五、数据间的逻辑联系
数据间的逻辑联系主要是指记录与记录之间的联系。记录是表示现实世界中的实体的。实体之间存在着一种或多种联系,这样的联系必然要反映到记录之间的联系上来。数据之间的逻辑联系主要有三种:
1、一对一的联系:简记为1:1,如图4-1所示,这是一种比较简单的一种联系方式,是指在集合A中存在一个元素ai,则在集合B中就有一个且仅有一个bj与之联系。在1:1的联系中,一个集合中的元素可以标识另一个集合中的元素。例如,地理名称与对应的空间位置之间的关系就是一种一对一的联系.
2、一对多的联系(1:N):现实生活中以一对多的联系较多常见。如图4-2所示,这种联系可以表达为:在集合A中存在一个ai,则在集合B中存在一个子集B′=(bj1, bj2…bjn)与之联系。通常,B′是B的一个子集。行政区划就具有一对多的联系,一个省对应有多个市,一个市有多个县,一个县又有多个乡。
3、多对多的联系(M:N):这是现实中最复杂的联系(如图4-3所示),即对于集合A中的一个元素ai。在集合B就存在一个子集B′=(bj1, bj2…bjn)与之相联系。反过来,对于B集合中的一个元素Bj在集合A中就有一个集合A′=(ai1,ai2,ai3…ain)与之相联系。M:N的联系,在数据库中往往不能直接表示出来,而必须经过某种变换,使其分解成两个1:N的联系来处理。地理实体中的多对多联系是很多的,例如土壤类型与种植的作物之间有多对多联系。同一种土壤类型可以种不同的作物,同一种作物又可种植在不同的土壤类型上。
第二节 传统数据库系统的数据模型
数据模型是数据库系统中关于数据和联系的逻辑组织的形式表示。每一个具体的数据库都是由一个相应的数据模型来定义。每一种数据模型都以不同的数据抽象与表示能力来反映客观事物,有其不同的处理数据联系的方式。数据模型的主要任务就是研究记录类型之间的联系。
目前,数据库领域采用的数据模型有层次模型、网状模型和关系模型,其中应用最广泛的是关系模型。
层次模型
层次模型是数据处理中发展较早、技木上也比较成熟的一种数据模型。它的特点是将数据组织成有向有序的树结构。层次模型由处于不同层次的各个结点组成。除根结点外,其余各结点有且仅有一个上一层结点作为其“双亲”,而位于其下的较低一层的若干个结点作为其“子女”。结构中结点代表数据记录,连线描述位于不同结点数据间的从属关系(限定为一对多的关系)。对于图4-4所示的地图M用层次模型表示为如图4-5所示的层次结构。
层次模型反映了现实世界中实体间的层次关系,层次结构是众多空间对象的自然表达形式,并在一定程度上支持数据的重构。但其应用时存在以下问题:
1、由于层次结构的严格限制,对任何对象的查询必须始于其所在层次结构的根,使得低层次对象的处理效率较低,并难以进行反向查询。数据的更新涉及许多指针,插入和删除操作也比较复杂。母结点的删除意味着其下属所有子结点均被删除,必须慎用删除操作。
2、层次命令具有过程式性质,它要求用户了解数据的物理结构,并在数据操纵命令中显式地给出存取途径。
3、模拟多对多联系时导致物理存贮上的冗余。
4、数据独立性较差。
二、网状模型
网络数据模型是数据模型的另一种重要结构,它反映着显示世界中实体间更为复杂的联系,其基本特征是,结点数据间没有明确的从属关系,一个结点可与其它多个结点建立联系。如图4-6所示的四个城市的交通联系,不仅是双向的而且是多对多的。如图4-7所示,学生甲、乙、丙、丁、选修课程,其中的联系也属于网络模型。
网络模型用连接指令或指针来确定数据间的显式连接关系,是具有多对多类型的数据组织方式,网络模型将数据组织成有向图结构。结构中结点代表数据记录,连线描述不同结点数据间的关系。
有向图(Digraph)的形式化定义为:
Digraph=(Vertex,(Relation))
其中Vertex为图中数据元素(顶点)的有限非空集合;Relation是两个顶点(Vertex)之间的关系的集合。
有向图结构比层次结构具有更大的灵活性和更强的数据建模能力。网络模型的优点是可以描述现实生活中极为常见的多对多的关系,其数据存贮效率高于层次模型,但其结构的复杂性限制了它在空间数据库中的应用。
网络模型在一定程度上支持数据的重构,具有一定的数据独立性和共享特性,并且运行效率较高。但它应用时存在以下问题:
1、网状结构的复杂,增加了用户查询和定位的困难。它要求用户熟悉数据的逻辑结构,知道自身所处的位置。
2、网状数据操作命令具有过程式性质。
3、不直接支持对于层次结构的表达。
三、关系模型
在层次与网络模型中,实体间的联系主要是通过指针来实现的,即把有联系的实体用指针连接起来。而关系模型则采用完全不同的方法。
关系模型是根据数学概念建立的,它把数据的逻辑结构归结为满足一定条件的二维表形式。此处,实体本身的信息以及实体之间的联系均表现为二维表,这种表就称为关系。一个实体由若干个关系组成,而关系表的集合就构成为关系模型。
关系模型不是人为地设置指针,而是由数据本身自然地建立它们之间的联系,并且用关系代数和关系运算来操纵数据,这就是关系模型的本质。
在生活中表示实体间联系的最自然的途径就是二维表格。表格是同类实体的各种属性的集合,在数学上把这种二维表格叫做关系。二维表的表头,即表格的格式是关系内容的框架,这种框架叫做模式,关系由许多同类的实体所组成,每个实体对应于表中的一行,叫做一个元组。表中的每一列表示同一属性,叫做域。
对于图4-4的地图,用关系数据模型则表示为图4-8所示。
关系数据模型是应用最广泛的一种数据模型,它具有以下优点:
1、能够以简单、灵活的方式表达现实世界中各种实体及其相互间关系,使用与维护也很方便 。关系模型通过规范化的关系为用护提供一种简单的用户逻辑结构。所谓规范化,实质上就是使概念单一化,一个关系只描述一个概念,如果多于一个概念,就要将其分开来。
2、关系模型具有严密的数学基础和操作代数基础——如关系代数、关系演算等,可将关系分开,或将两个关系合并,使数据的操纵具有高度的灵活性;
3、在关系数据模型中,数据间的关系具有对称性,因此,关系之间的寻找在正反两个方向上难度程度是一样的,而在其它模型如层次模型中从根结点出发寻找叶子的过程容易解决,相反的过程则很困难。
目前,绝大多数数据库系统采用关系模型。但它的应用也存在着如下问题:
1、实现效率不够高。由于概念模式和存贮模式的相互独立性,按照给定的关系模式重新构造数据的操作相当费时。另外,实现关系之间联系需要执行系统开销较大的联接操作。
2、描述对象语义的能力较弱。现实世界中包含的数据种类和数量繁多,许多对象本身具有复杂的结构和涵义,为了用规范化的关系描述这些对象,则需对对象进行不自然的分解,从而在存贮模式、查询途径及其操作等方面均显得语义不甚合理。
3、不直接支持层次结构,因此不直接支持对于概括、分类和聚合的模拟,即不适合于管理复杂对象的要求,它不允许嵌套元组和嵌套关系存在。
4、模型的可扩充性较差。新关系模式的定义与原有的关系模式相互独立,并未借助已有的模式支持系统的扩充。关系模型只支持元组的集合这一种数据结构,并要求元组的属性值为不可再分的简单数据(如整数、实数和字符串等),它不支持抽象数据类型,因而不具备管理多种类型数据对象的能力。
5、模拟和操纵复杂对象的能力较弱。关系模型表示复杂关系时比其它数据模型困难,因为它无法用递归和嵌套的方式来描述复杂关系的层次和网状结构,只能借助于关系的规范化分解来实现。过多的不自然分解必然导致模拟和操纵的困难和复杂化。
第三节 GIS中空间数据库的组织方式
GIS中的数据大多数都是地理数据,它与通常意义上的数据相比,具有自己的特点:地理数据类型多样,各类型实体之间关系复杂,数据量很大,而且每个线状或面状地物的字节长度都不是等长的等等。地理数据的这些特点决定了利用目前流行的数据库系统直接管理地理空间数据,存在着明显的不足,GIS必须发展自己的数据库-空间数据库。
空间数据库是作为一种应用技术而诞生和发展起来的,其目的是为了使用户能够方便灵活地查询出所需的地理空间数据,同时能够进行有关地理空间数据的插入、删除、更新等操作,为此建立了如实体、关系、数据独立性、完整性、数据操纵、资源共享等一系列基本概念。以地理空间数据存储和操作为对象的空间数据库,把被管理的数据从一维推向了二维、三维甚至更高维。由于传统数据库系统(如关系数据库系统)的数据模拟主要针对简单对象,因而无法有效地支持以复杂对象(如图形、影像等)为主体的工程应用。空间数据库系统必须具备对地理对象(大多为具有复杂结构和内涵的复杂对象)进行模拟和推理的功能。一方面可将空间数据库技术视为传统数据库技术的扩充;另一方面,空间数据库突破了传统数据库理论(如将规范关系推向非规范关系),其实质性发展必然导致理论上的创新。
空间数据库是一种应用于地理空间数据处理与信息分析领域的具有工程性质的数据库,它所管理的对象主要是地理空间数据(包括空间数据和非空间数据)。传统数据库系统管理地理空间数据有以下几个方面的局限性:
(1)传统数据库系统管理的是不连续的、相关性较小的数字和字符;而地理信息数据是连续的,并且具有很强的空间相关性。
(2)传统数据库系统管理的实体类型较少,并且实体类型之间通常只有简单、固定的空间关系;而地理空间数据的实体类型繁多,实体类型之间存在着复杂的空间关系,并且还能产生新的关系(如拓扑关系)。
(3)传统数据库系统存贮的数据通常为等长记录的数据;而地理空间数据通常由于不同空间目标的坐标串长度不定,具有变长记录,并且数据项也可能很大,很复杂。
(4)传统数据库系统只操纵和查询文字和数字信息;而空间数据库中需要有大量的空间数据操作和查询,如相邻、连通、包含、叠加等。
目前,大多数商品化的GIS软件都不是采取传统的某一种单一的数据模型,也不是抛弃传统的数据模型,而是采用建立在关系数据库管理系统(RDBMS)基础上的综合的数据模型,归纳起来,主要有以下三种:
混合结构模型(Hybrid Model)
它的基本思想是用两个子系统分别存储和检索空间数据与属性数据,其中属性数据存储在常规的RDBMS中,几何数据存储在空间数据管理系统中,两个子系统之间使用一种标识符联系起来。图4-9为其原理框图。在检索目标时必须同时询问两个子系统,然后将它们的回答结合起来。
由于这种混合结构模型的一部分是建立在标准RDBMS之上,故存储和检索数据比较有效、可靠。但因为使用两个存储子系统,它们有各自的规则,查询操作难以优化,存储在RDBMS外面的数据有时会丢失数据项的语义;此外,数据完整性的约束条件有可能遭破坏,例如在几何空间数据存储子系统中目标实体仍然存在,但在RDBMS中却已被删除。
属这种模型的GIS软件有ARC/INFO、MGE、SICARD、GENEMAP等。
二、扩展结构模型(Extended Model)
混合结构模型的缺陷是因为两个存储子系统具有各自的职责,互相很难保证数据存储、操作的统一。扩展结构模型采用同一DBMS存储空间数据和属性数据。其做法是在标准的关系数据库上增加空间数据管理层,即利用该层将地理结构查询语言(GeoSQL)转化成标准的SQL查询,借助索引数据的辅助关系实施空间索引操作。这种模型的优点是省去了空间数据库和属性数据库之间的繁琐联结,空间数据存取速度较快,但由于是间接存取,在效率上总是低于DBMS中所用的直接操作过程,且查询过程复杂。图4—10为其原理框图。
这种模型的代表性GIS软件有SYSTEM 9,SMALL WORLD等。
三、统一模数据型(Integrated Model)
这种综合数据模型不是基于标准的RDBMS,而是在开放型DBMS基础上扩充空间数据表达功能。如图4-11所示,空间扩展完全包含在DBMS中,用户可以使用自己的基本抽象数据类型(ADT)来扩充DBMS。在核心DBMS中进行数据类型的直接操作很方便、有效,并且用户还可以开发自己的空间存取算法。该模型的缺点是,用户必须在DBMS环境中实施自己的数据类型,对有些应用将相当复杂。