【全球多分辨率地形数据库的设计和实现】 地形数据库

全球多分辨率地形数据库的设计和实现

全球多分辨率地形数据库的设计和实现 传统的地形可视化系统对地形数据的管理基本上都是基于文件系统,这在 数据量较小时可以提供较快的数据存取。然而,随着数字地球(DE:Digital Earth)和 全球信息网格(GIG:Global Information Grid)概念的相继提出,具有多分辨率、海量 数据的大规模虚拟地形场景使得文件系统在数据的存取和管理上存在很大的局 限性。由于无法预先将整个场景的数据全部装载至内存中,文件系统只能将大型 场景分割成若干小场景,导致索引速度大幅降低,相互之间也难以实现查询等空间 操作[1]。另外,文件系统也无法解决数据安全、并发操作、网络共享等问题。而 空间数据库恰好能弥补这些不足,目前,空间数据库在一些大型三维GIS系统中已 经开始应用,通过利用空间数据库的对象建模、数据共享、分布计算以及空间查 询等优点,可以实现三维场景数据的动态加载、远程存取、高逼真度实时空间漫 游等特性,足以替代文件系统在传统地形可视化系统中的地位。因此,全球虚拟地 形场景要求通过空间数据库完成海量地形数据的存储管理,实现地形数据的动态 调度和实时渲染。

2 全球多分辨率地形数据库的设计 在文献[2]中提出了一种基于海量数据库的DEM动态可视化方法,通过 Oracle 8i数据库完成海量DEM数据的存储、管理和实时调度。基本思路是先利用 等间隔划分方法对海量DEM数据进行空间划分,形成一个金字塔结构,然后将金 字塔结构中一层DEM数据以一个数据表存储到Oracle数据库中,并以二进制大对 象(BLOB: Binary Large Object)作为DEM数据存储的数据类型。BLOB是一种非结 构性的数据,它可以进行任意的裁减与添加等操作,在存储空间方面,可以在一条 记录中处理高达4GB的数据。当原始DEM数据在数据库中存储时,它首先被分解 为块,组织成二进制的数据流,然后根据数据库原点和块的大小创建其索引。DEM 数据表包括层数据管理表与层数据表两种,层数据管理表包含对数据库中DEM数 据的总体描述信息,而层数据表存储DEM实体数据。实时调度时,采用多线程技术 实现前后台两个数据页缓冲区之间的交换,其中Oracle数据库负责为后台缓冲区 提供实时数据。该方法充分利用了Oracle数据库的优势和普通个人计算机的硬件 渲染能力,实现了海量DEM数据的存储、管理、动态装载和渐进描绘。这种方法 实际上代表了目前基于海量数据的地形可视化与空间数据库的典型结合模式,也 是今后海量数据存储管理的主要发展方向。

2.1 需求分析地形数据的存储单元,主要包括两类:文件型和数据库型。文件系统存储方 式,一般适用于小型应用系统。与文件型存储单元相比,数据库在检索速度、管理、 并发控制能力方面有着明显的优势,特别是现代数据库采用了缓存、聚类等技术, 使索引速度提高了几十倍,在多用户并发访问环境下,数据库的优势会更加明显。

全球多分辨率地形数据库需要实现的功能包括:全球多分辨率地形数据的存储与 管理、全球多分辨率地形可视化数据的快速调度以及基于网络环境的客户端/服 务器模式的数据库访问。

2.2 语义描述 地形数据的调度是按照一定的顺序规则进行查询,因而地形数据信息的存 储是有规则的。本文中,先将地形数据按照金字塔模型存储在文件中,然后由文件 导入数据库。金字塔是一种多分辨率层次(mufti-resolution hierarchy)模型,即采用 倍率方法构建,形成多个分辨率层次。

数据库的结构与金字塔模型是相对应的,每一层对应于数据库的一个表,每 一条记录对应于每一个数据块,数据块存储的位置与所在层的位置相对应。这种 结构使文件和数据库保持一致,包括层的编排、块的编排、块的索引等,使存储与 管理更加灵活。

2.3 逻辑结构设计(E-R关系图) 字段名 数据类型 行号 列号 数据 Integer integer BLOB 例如:0 0 二进制数据 采用数据库存储数据,本文通过大二进制存储类型存储地形数据,包括 DEM数据和纹理数据。Oracle9i中以BLOB字段类型存储二进制大对象,包括三种 形式:声像数据、二进制数据和大文本数据。最常见的应用是存储图形、声音等 对象,此外大型的二进制对象、OLE对象也可以通过BLOB类型存入数据库,如果文 本对象过大,超出了文本类型的规定长度,则必须用BLOB字段进行存储(本文的地 形块数据就属于此类)。在Sql server中,它提供了两种特殊数据类型 text和image 用于定义BLOB数据。SQL Server的基本存储单元是页,每页2KB。一条记录必须 存放在一页内,不能跨页存储,因此SQL Server中的每条记录的最大尺寸为1962个 字节。对于一般数据类型的字段,其值直接存储在分配的数据页中,而对于text和 image类型数据,值是存放在另分配的数据页中的,内容通过数据链串在一起。数据 库记录的text和image类型数据字段内放的是数据链地址指针,这种存储机制使 text和image类型数据可达2GB。因此,在经常使用的编程环境中如不能直接支持 BLOB字段,需要调用相应的函数完成BLOB的使用。

3 全球多分辨率地形数据入库模式的设计 基于数据库的多分辨率地形数据的调度,首先是要在数据库中存储数据。

本文按照金字塔模型生成的数据文件,包括DEM数据文件和纹理数据文件,通过 数据库接口将数据文件中的每个数据块依次导入到数据库中相对应的字段,并生 成相应的记录。

以SQL Server为例,采用ADO接口访问并操作数据库。ADO(ActiveX Date Object)是Microsoft数据库应用程序开发接口,是建立在OLE DB之上的高层数据 库访问技术。ADO技术基于COM(Component Object Modal),具有COM组建的诸多 优点,可以用来构造可服用应用框架,被多种语言支持,能够访问关系数据库、非关 系数据库及所有的文件系统。另外,ADO还支持各种客户/服务器模块与基于Web 的应用程序,具有远程数据服务RDS(Remote Data Service)的特性,是远程数据存取 的发展方向。