基于Oracle spatial的地籍数据库设计

时间:2022-10-12 12:57:44

基于Oracle spatial的地籍数据库设计

摘要:本文以对象关系型数据库和时态GIS为基础,分析了常见的数据模型和空间数据库类型,理解和掌握了Oracle Spatial的对象――关系数据模型、组织空间数据的方法以及Oracle Spatial中表达空间要素的几何元素和几何对象列的结构,然后对地籍数据库中的宗地表的表结构和元数据表进行了设计和说明。

关键词:Oracle Spatial,MapInfo;地籍数据库;设计;说明

中图分类号:TP302文献标识码: A文章编号:1671-1297(2008)10-149-02

随着社会经济的快速发展,日常地籍数据的频繁更新,地籍数据纷繁复杂,包括地籍图、簿、册,各种档案甚至多媒体数据,要分析这些数据以及确定这些数据之间的相互关系,进一步描述这些数据的时空动态变化,更是非常困难。而近些年来出现的GIS为地籍更新过程中在空间数据与属性数据的无缝管理、大范围查询检索、空间数据完整性和一致性维护、海量数据管理、分布式数据处理与维护、事务处理、地籍制图和数据安全性控制等方面提供了技术支持。

地籍信息系统是土地信息系统的重要组成部分,地籍信息系统中,地籍数据具有显著的空间特征、丰富的属性、强烈的时态性。因此,采用一种有效的系统和数据分析方法进行地籍信息数据库的设计是很有必要的。

一、概述及其GIS平台的选取和分析

(一)概述

地籍是记载土地位置、界址、数量、质量、权属和用途等基本状况的图、簿、册。宗地是由界址线和界址点构成,是被权属界限所封闭的地块。地籍信息系统是土地信息系统的重要组成部分,属于地理信息系统范畴,是地理信息系统技术在地籍管理中的应用。地籍信息系统是一个在计算机和现代技术支持下,以“宗地”为核心实体,实现地籍信息的输入、储存、检索、处理、综合分析、辅助决策以及结果输出的信息系统。

地籍数据库是为存储、管理土地基本信息的数据库,即以宗地为基本单元用数字形式记录土地及其附着物的位置、权属、数量、质量和土地利用现状等几何和属性信息(即地籍信息)的数据库,能以最少重复(冗余)为多用途地籍服务,扩大地籍信息的应用范围,是数据库技术与地籍系统相结合的产物,是地籍信息系统的核心。Oracle Spatial是针对存储在Oracle8i中的空间元素(Oracle Feature)集合提供了一种SQL的模式来完成存储、输出、修改和查询的功能。Oracle支持两种表现空间元素的机制(或称作模型),一种关系式模型(Relafional),用多行记录和字段类型为NUMBER的一张表来表示一个空间实体;另一种是对象关系型(Object-Relational),这种模型使用一张数据库表,表中有一个类型为MDSYS.SDO_GEOMETRY的字段,用一行记录来存储一个空间数据实体。

(二)GIS平台的选取及分析

现在在国内市场占有率最高的当数ArcGIS和MapInfo两种。ArcGIS是一个大型的软件包,它提供对空间数据强大的处理功能,而且还内置Geodatabase地理数据库,侧重于空间分析功能。MapInfo主要是面向中小型的桌面制图用户,具有强大的空间数据编辑功能,而且针对Oracle Spatial管理下的空间数据有良好的读写能力。选择GIS平台要从平台功能的实用性、操作使用的方便性、性能价格比的优越性等各方面去考虑。因此,在一般应用中,我们选择MapInfo平台作为开发GIS应用软件的平台。

数据模型是对客观事物及其联系的数据描述,数据库设计的核心问题之一就是设计一个好的数据模型。数据模型设计的好坏直接影响数据库的性能,数据模型的设计方法决定数据库的设计方法。目前基于面向对象数据模型的面向对象空间数据库管理系统可能是今后管理空间数据的方向之一。

二、地籍数据库设计

(一) oracle spatial空间数据模型

Oracle spatial是 Oracle公司推出的管理空间数据的组件,它采用对象――关系模型的方式来组织空间数据;对象――关系模型既可充分利用成熟的关系型数据库强大的数据管理功能和可操作性,又兼具面向对象数据库的对象和类的概念即数据模型的扩充,可以很好的实现空间数据的管理。

对象――关系模型是对关系模型的扩展,具有面向对象的更加丰富的类型系统,允许用户定义结构类型的复杂字段类型。它有标准数据类型描述某类(点、线、面)地理实体的属性,由函数描述其方法,从而形成对象,任意地理实体即可通过对象的实例来存储。Oracle spatial中就使用了对象――关系模型这一解决方案。在这里采用C++语言描述方式来说明数据表的结构。

Struct DataTable

{int FID; //目标标识号ID

Cstring m_str; //目标的属性1

… … //省略号代表了目标的其他属性

Object *pObject;//目标的几何对象列,存储指向 该目标图形数据的指针};

其中,几何对象列是用于存放指向图形数据指针的特殊列。任何有图形对象的表都有一个几何对象列,对于几何对象列,可以像使用其他普通列一样进行各种类型的操作,而且每个表都只能有一个对象列。

(二)地籍数据库中逻辑表的设计

地籍管理的基本单元是宗地,它是由权属界线围成的自然宗地,还包括它上面的附着物及有关该宗地隶属及用途等方面的属性描述。基于Oracle spatial的空间数据模型,我们设计了空间数据与属性数据一体化管理的宗地表。

关于空间数据几何列的元数据表,在Oracle Spatial被安装的时候,数据库将自动创建面向所有Oracle Spatial用户的视图,这个视图为USER_SDO_GEOM_METADATA表,对于SDO_GEOMETRY的空间数据列的元数据就存储于这个表中,每一个空间数据几何列(SDO_GEOMETRY)的元数据都对应USER_SDO_GEOM_METADATA表视图的一行。USER_SDO_GEOM_METADATA表视图的数据结构如下所示:SQL>DESCRIBE USER_SDO_GEOM_METADATA

表名 是否为空字段类型

TABLE_NAME NOT NULL VARCHAR(32)//空间数据表名,非空字符串型

COLUMN_NAMENOT NULL VARCHAR2(32)//空间数据表对应的几何列名,非空,字符串型DIMINFO

MDSYSSDO_DIM_ARRAY//包含四元SDO_DIM_

ELEMENT类型的数组

SRIDNUMBER//现在为空,过去用于坐标系统

在Oracle数据库中,我们可以看到三种元数据表视图,即

USER_SDO_GEOM_METADATA //这个视图被用于插入空间数据几何列的元数据

ALL_SDO_GEOM_METADATA//这个视图用于选择相应的空间数据几何列的元数据

DBA_SDO_GEOM_METADATA //这个视图用于浏览所有空间数据的元数据。

(三)基于MapInfo和Oracle Spatial的地籍数据的组织与加载

MapInfo采用双数据库存储模式,即空间数据与属性数据是分开存储的。属性数据存储在关系数据库的若干表中,空间数据以若干文件的方式存储起来,它们之间通过一定的索引机制联系起来。我们可以通过MapInfo的工具EasyLoader将MapInfo格式的文件上载到Oracle数据库中。我们还可以通过SQL*Loader组件提供的功能以大批量加载空间数据和交互式插入的方式加载数据。

虽然,我们可以将MapInfo格式的数据上载到Oracle数据库中加以保存,但是由于对空间实体的表达方式的不同,将MapInfo格式的数据与Oracle数据库中的数据格式相互转换时,会发生一定程度的信息丢失。

对于点、线、面样式的丢失。可以利用EasyLoader上载MapInfo表之前,先在表中增加几个属性字段,将点、线、面的样式特性当作对象的属性值保存到表中,并连同表的其它属性一起上载到Oracle数据库中。当用户通过程序将该表从Oracle Spatial中下载到MapInfo中后,再根据点、线、面的样式信息,利用程序将点、线、面的样式恢复出来。目前,在Oracle9i中已经解决了这个问题,其在上载到Oracle数据库中的数据表自动添加样式字段。

对于文本对象的丢失。可以利用EasyLoader上载MapInfo表之前,先在表中增加几个属性字段,将文本对象的信息当作对象的属性值保存到表中,并连同表的其它属性一起上载到Oracle数据库中。当用户通过程序将该表从Oracle Spatial中下载到MapInfo中后,再根据保存在表中的文本对象的信息,利用程序为每个记录再重新创建一个文本对象。

结语

由于Oracle Spatial是Oracle 数据库中管理空间数据较为复杂的组件之一。其功能处于不断的升级和完善中,需要根据实际来优化地籍数据库的数据组织,完善各种地籍数据表的设计,使之既有利于最大化的存储地籍信息,又有利于满足实际的地籍管理工作。

参考文献

[1]邬伦,刘瑜,张晶等.地理信息系统[M].北京:科学出版社,2001.

[2]陈军,赵仁亮.GIS空间关系的基本问题与研究进展[J].测绘学报,1999,5(2).

[3]于海龙,谢刚生,徐云和MapInfo环境下二次开发相关问题的研究[J].东北测绘,2003,23(3).

上一篇:人力资本促进安徽省产业结构升级的实证分析 下一篇:江南新农村的水景景观设计