数据管理设计

数据管理部分设计的目的是确定在数据管理系统中存储和检索数据的基本结构,其原则是要隔离数据管理方案的影响,不管该方案是普通文件、关系数据库、面向对象数据库或者是其它方式的。

目前,主要有三种主要的数据管理方法,即文件、关系和面向对象。

1)普通文件管理:普通文件管理提供基本的文件处理和分类能力;

2)关系型数据库管理系统(RDBMS):关系型数据库管理系统建立在关系理论的基础上,采用多个表来管理数据,每个表的结构遵循一系列“范式”进行规范化,以减少数据冗余。

3)面向对象的数据库管理系统:面向对象的数据库是一种正在成熟的技术,它通过增加抽象数据类型和继承特性以及一些用来创建和操作类和对象服务,实现对象的持续存储。

不论在分析阶段采用何种方法,已经实现是采用OOPL还是非OOP,都可以选择上述任意的一种方案实现数据的管理。

在地理信息系统软件中,需要管理的数据主要包括:空间几何体数据、时间数据,结构化的非空间属性数据以及非结构化的描述数据。例如,对于地籍管理系统中的地块,

  • 空间几何体数据:地块界点的坐标;

  • 时间数据:地块存在的时段;

  • 非空间属性数据:地块的权属,地价等等;

  • 非结构化的描述数据:描述地块所需要的图像、声音数据等等。

    为了实现对这些数据的管理,通常的方案包括:

全部采用文件管理

将所有的数据都存放于一个或者多个文件中,包括结构化的属性数据。采用文件管理数据的优点是灵活,即每个软件厂商可以任意定义自己的文件格式,管理各种数据,这一点在存储需要加密的数据以及非结构化的、不定长的几何体坐标记录时是有帮助的。文件管理的缺点也是显而易见的,就是需要由开发者实现属性数据的更新、查询、检索等操作,而这些,都可以利用关系数据库完成,换言之,利用文件管理增加了属性数据管理的开发量,并且也不利于数据共享。目前,许多GIS软件采用文本格式文件进行数据存储,其目的是为了实现数据的转入和转出,与其它应用系统交换数据。

文件结合关系数据库管理

这是目前大多数GIS软件所采用的数据管理方案。考虑到空间数据是非结构化的、不定长的,而且施加于空间数据的操作需要GIS软件实现,这样就可以利用文件存储空间数据,而借助于已有的关系数据库管理系统(RDBMS)管理属性数据。采用这种管理方式:

1)空间数据:通过文件进行管理;

2)时间数据:是结构化的,可以利用数据库进行管理;

3)非空间属性数据:利用数据库进行管理;

4)非结构化的描述数据:由于描述数据,不论是文本、图像,还是声音、录象,一般都对应于一个文件,这样可以简单地在关系数据库中记录其文件路径,其优点是关系数据库数据量小,缺点是文件路径常常会因为文件的删除、移动操作而变得不可靠。如果关系数据库支持二进制数据块字段,也可以利用它来管理文本、图像甚至声音、录象文件。

由于空间几何体坐标数据和属性数据是分开存储管理的,需要定义它们之间的对应关系。通常的解决方案是在文件中,每个地物都有一个唯一标识码(地物ID),而在关系数据表结构中,也有一个标识码属性,这样每条记录可以通过该标识码确定与对应地物的连接关系(图16-11)。

采用该管理方式的缺点在于经常进行根据地物ID的查找(既包括从给定地地物查找其对应地记录,又包括根据给定地记录检索相应的地物),使查询、模型运算等一些操作的速度变慢。

(a)通过文件管理空间数据 (b)通过关系数据库管理属性数据

../../_images/img_114.png

图16-11:同时使用文件和关系数据库管理GIS数据,

其中利用地物ID建立记录之间的连接关系

全部采用关系数据库管理

在这种管理方式中,不定长的空间几何体坐标数据以二进制数据块的形式被关系数据库管理,换言之,坐标数据被集成到RDBMS中,形成空间数据库,其结构如图16-12。

../../_images/img_25.png

图16-12:集成化的GIS数据管理

可以认为一个地物对应于数据表中的一条记录,这样它带来的最直接的好处是避免了对“连接关系”的查找。目前,关系数据库不论是理论还是工具,都已经成熟,它们提供了一致的访问接口(SQL)以操作分布的海量数据,并且支持多用户并发访问,安全性控制和一致性检查。这些正是构造企业级的地理信息系统所需要的,此外,通用的访问接口也便于实现数据共享。

采用全关系GIS数据管理,由于几何体坐标数据不定长,会造成存储效率低下,此外,现有的SQL并不支持空间数据检索,需要软件厂商自行开发空间数据访问接口,如果要支持空间数据共享,则要对SQL进行扩展。

采用面向对象数据库(OO-DBMS)管理

如果应用对象数据库管理GIS数据,则可以扩充对象数据库中的数据类型以支持空间数据,包括点、线、多边形等几何体,并且允许定义对于这些几何体的基本操作,包括计算距离、检测空间关系,甚至稍微复杂的运算,如缓冲区计算、叠加复合模型等,也可以由对象数据库管理系统“无缝”地支持。

这样,通过对象数据库管理系统,提供了对于各种数据的一致的访问接口以及部分空间模型服务,不仅实现了数据共享,而且空间模型服务也可以共享,使GIS软件开发可以将重点放在数据表现以及复杂的专业模型上(图16-13)。

不过,目前对象数据库管理系统远未成熟,许多的技术问题仍需要进一步的研究。例如,由于支持用户自定义功能,可能会引发对系统的恶意入侵。查询优化也是对象数据库所面临的一个难题,假定要进行查询操作,得到所有有铁路通过并且人口大于10万的县,很明显,得到人口大于10万的县所需要的计算时间要远远小于得到所有铁路通过的县的时间,系统必须了解这一点,在执行查询时,先得到人口大于10万的县,然后再在该集合中依据空间关系进行进一步的查找——而不考虑用户的实际输入次序。该处理过程称为查询优化(Optimize),它使得优化后的计算时间减少。对于这种简单的情况,即结构化查询和空间运算的消耗时间,容易比较判断,但是如果查询语句中包括多个空间运算函数,那么其优化将变得十分困难。

../../_images/img_33.png

图16-13:采用OO-DBMS进行GIS数据管理