基于Oracle Spatial的城市规划用地数据库的设计与实现
2010-04-19高红心
高红心
(西安市勘察测绘院,陕西西安 710054)
基于Oracle Spatial的城市规划用地数据库的设计与实现
高红心∗
(西安市勘察测绘院,陕西西安 710054)
以西安市城市规划用地管理数据库为例,说明了基于MicroStation和Oracle Spatial建立小型简单空间数据库的方法和实现过程。
MicroStation VBA;Oracle Spatial;OO4O;规划用地;低成本;空间数据库
1 概 述
西安市勘察测绘院受西安市城市规划局委托,承担了大量城市规划、建设和管理等领域内的城市基础测绘业务,形成了大量珍贵的城市基础建设和管理资料。这些资料,已成为研究城市历史变迁沿革,进行城市规划建设管理的基础数据资料和重要历史文献。其中,城市规划用地信息的管理是城市用地规划管理工作的重要内容之一。
当今,主流GIS软件厂商已推出的GIS系列产品中均包含了海量空间数据库、WebGIS等技术和平台,随着GIS共享信息技术的发展和成熟,基于SOA的Web数据共享交互服务技术将成为下一个GIS应用的新趋势。其中,高效率的空间数据库技术的发展仍是GIS快速发展和推广应用的关键。在已商用的空间数据库产品中,ESRI ArcSDE、超图的SDX+、Oracle推出的Oracle Spatial等产品最为典型。
与传统 GIS商用空间数据平台相比较,Oracle Spatial的推出,为仅只有 Oracle、AutoCAD(或 MicroStation)和其他CAD或GIS系统的用户提供了一种低成本建设空间数据库管理系统的技术平台和基础。本文首先说明了西安市城市规划用地数据库的设计要点,对设计中涉及的数据库表和结构进行了描述,而后对空间数据库的OO4O访问以MicroStation VBA代码及注释说明的方式进行了实现,并试图从系统开发成本、系统管理难度、适用的数据规模和范围等方面,提供一种低成本的空间数据库解决方案。
2 Oracle Spatial简介
2000年9月,Oracle发布了Oracle 8i企业版,同时推出了自己的空间数据库组件Oracle Spatial。该组件自发布以来,一直作为Oracle数据库产品中的一个可选组件免费提供给所有使用Oracle企业版数据库产品的用户使用。同时,Oracle公司也提供了使用 Java、.NET等平台和各种遵循VBA规范的专用数据处理平台使用 VBA访问空间数据的数据接口,如 OO4O、ODP.NET,也包括由微软提供的专门的Oracle数据的访问组件。但由于访问的出发点、各自所用平台机制、遵循的数据规范等存在差异,使用不同接口访问同一数据库时,编写的语法也不尽相同。以上所提的数据访问技术,分别在Oracle和Microsoft的有关文献资料中都有详细论述,本文只略提一下,将不再展开讨论。
在Oracle Spatial中存储对象可以分成对象关系模式和关系模式两种形式,对象关系模式下用列来存储空间及其相关对象,而关系模式下用二维表来存储一般属性信息。
在Oracle数据库中空间几何数据按照空间图层、几何图形、元素来分层组织。空间图层是由几何图形构成,几何图形由不同种类的元素来构成。在Oracle Spatial中支持的元素包括:点、直线、曲线、复合线、自相交线、多边形、复杂多边形、复合多边形(中空多边形、并列多边形)。在Oracle Spatial中还包括一组效率较高的空间几何索引、空间查询、空间叠加、数据缓冲等空间存储过程和函数,用于实现空间数据的高效访问[1,2]。
3 规划用地数据库设计
3.1 设计要点
城市规划用地数据是城市建设过程中产生的非常重要的一类数据,具有较高的安全性要求,因此,本设计在数据库总体上采用规划用地空间数据库+规划用地档案录入数据库的设计方案,录入数据库以规划用地案件为单位进行设计,用于规划用地案件数据录入和用地批文图像数据的日常存储和备份。空间数据库以规划用地地块为单位设计,专门用于规划用地档案资料的空间查询和规划用地空间数据的日常管理维护。
一个规划用地案件通常包含两部分内容:净用地和至少一个代征路(有时还包含代征绿地、代征高压走廊等多个地块),因此,录入数据库属性记录以案件为单位存取,在存储几何数据时,多个地块按设计的存取规则集中存取;空间查询数据库则按Oracle Spatial的空间数据存取规则,以案件所包含的规划用地地块为单位进行存取,目的在于可以使用所有成熟高效的Oracle Spatial空间索引和查询算子,以较简单的方式实现规划用地空间数据的存取。
这两个数据库在符合各自工作流程需要的基础上,在数据上互为备份。
数据库安全设计:
(1)按照整个作业流程,将对录入数据库的访问分为7级用户权限:接受任务、分派任务、数据录入、小组检查、队级检查、院级检查验收、归卷入库,分别控制不同用户在不同阶段下对数据库中不同字段的可写、可读、可修改权限。
(2)将用地录入数据库与成果空间数据库分开存储,使用不同用户进行控制,设置专人对成果空间数据进行入库更新维护,避免无关人员的无关操作对成果造成的不可恢复性数据丢失。
3.2 设计实例
整个数据库包括:规划用地档案信息表(LAYOUT_LAND,为仅拥有大字段的一般属性表)、历史档案信息表(HIST_LAYOUT_LAND,为仅拥有大字段的一般属性表)、规划用地查询数据表(LAYOUT_LAND,为基于Oracle Spatial创建的空间数据库表)、界址点表(LAYOUT_JZD)、城市地类代码表(CITY_LAND_CODE)、用户信息表(USER_INFO)、数据字典表、工作流程信息表。其中,工作流程信息表用于存储用地案件的流程信息;规划用地查询数据表(LAYOUT_LAND)、界址点表(LAYOUT_JZD)位于另一用户空间,在逻辑上与录入数据库隔绝,只有录入档案被用户接受之后,才能归卷入库,此步采用了自定义Oracle存储过程来实现规划用地档案信息表记录到规划用地查询数据表的空间数据存储,进一步增强了系统数据的安全性和可靠性。限于篇幅,本文简略介绍一下规划用地表的部分设计(如表1所示),而省略了其他数据库表的设计。
规划用地表(LAYOUT_LAND)设计 表1
4 基于OO4O的空间数据存取功能的实现及应用示例
4.1 功能实现
OO4O(Oracle Objects for OLE)是一个基于COM的数据库连通性工具,它实现了对Oracle数据库的优化、无缝的访问,同时具有易于使用的界面。OO4O可用于从Web应用程序到n层客户端/服务器应用程序的多种环境。也可以用在任何支持Microsoft COM Automation技术的编程语言或脚本语言中,如Visual Basic、Visual C++、VBA in Excel、Active Server Page、Power-Builder、Delphi、Microsoft Internet Information Server以及Microsoft Transaction Server等。由于OO4O是一个本地驱动程序,它可以实现从Windows客户端到Oracle数据库的最佳性能。
以Microstation VBA为例,说明使用OO4O的基本方法:
(1)加入Oracle InProc Server 4.0/5.0 Type Library;
(2)加入Bentley Microstation DGN 8.X Object Library;
(3)多边形查询示例:示例中所包含的Oracle Spatial中空间对象字段的结构和语法的详细描述,见参考文献[1];
以下语句为一个进行多边形空间相交和包含查询的SQL语句,将其作为字符串参数传递至字符串变量sqlClause。
(4)提取目标多边形包含和与目标多边形相交的所有用地多边形数据,并在MicroStation视图中显示;下面将基于OO4O+MicroStation的规划用地多边形提取过程的关键步骤罗列如下,以供参考。
4.2 应用示例
如搜索“西安市勘察测绘院”的一块用地,查看其是否办理了合法的规划征用地手续。基本的逻辑是通过输入条件,如输入表1所示字段“建设单位”的部分词语如“勘察”,通过模糊匹配和人工交互得到相关记录的唯一标志码,提取相应的几何信息,并将其结果传递给MicroStation进行显示,同时显示其属性信息(查询结果如图1所示),图1结果显示该用地手续齐全合法。
西安市城市规划用地档案信息系统项目(基本界面如图1)以本文所述成果为基础,采用MicroStation作为数据操作基础平台,以 MicroStation VBA、Microsoft.NET C#为扩展开发工具,以Oracle OO4O组件作为空间数据访问接口,以Oracle作为城市规划用地档案数据库存储管理平台,实现了基于多用户安全管理的网络化城市规划用地档案数据录入系统和基于MicroStation、OO4O、Oracle Spatial的空间数据查询、统计、更新、维护等功能模块。本文所述成果的主要特点在于无需任何第三方空间数据访问中间件,直接采用Oracle OO4O和适合Oracle Spatial访问特性的SQL空间算子,就可以设计出简洁高效的规划用地空间数据存取方法,实现规划用地空间数据库的集中统一管理。
图1 基于MicroStation和OO4O的空间数据调用示例
5 总 结
该数据库设计简单,存取访问安全,易于采用自定义的基于Oracle Spatial的空间数据存储方案,空间数据存取简洁高效,数据访问方法的可移植性好,易于与其他系统集成。同时,该方案还拥有较小的系统开发成本、较小的系统管理难度,易于安装部署等特性。
综上所述,本方案特别适合于管理数据类型简单,数据规模小型到中等,希望使用较小资金投入、以轻客户端或Web方式访问和管理空间数据的集成应用项目,以及易于使用SDO_GEOMETRY的SQL方法和算子进行描述的空间数据应用项目。
[1]The reference of Oracle spatial,http://www.oralce.com
[2]雷英杰,王涛.一种Oracle空间数据库的设计与实现.计算机工程与应用,2002,38(13)
[3]西安市勘察测绘院地理信息中心.西安市规划用地档案管理信息系统需求分析
[4]西安市勘察测绘院地理信息中心.西安市规划用地档案管理信息系统概要设计
[5]西安市勘察测绘院地理信息中心.西安市规划用地档案管理信息系统数据库设计
[6]马奎,李宏伟,李勤超等..NET下基于OO4O核心的Oracle Spatial空间数据互操作[J].计算机应用,2009,29 (z1)
[7]汪斌,周晓光,蒋捷,朱建军.基于OO4O和Visual C++6.0实现Oracle9i Spatial中空间数据的操作.地理信息世界,2006,4(4)
Design and Implementation of Urban Planning Land-use Database Based on Oracle Spatial
Gao HongXin
(Xi’an Institute of Prospecting and Mapping,Xi’an 710054,China)
In this paper,Xi'an urban planning land-use management database,for example,illustrates the Oracle Spatial based on MicroStation,and the establishment of small simple spatial database approach and implementation process for the project to provide technical drawing and design ideas.
MicroStation VBA;Oracle Spatial;OO4O;Urban Planning Land Use;Low Cost;Spatial Database
1672-8262(2010)05-35-04
P208
A
2009—12—23
高红心(1969—)男,高级工程师、软件系统分析师,从事遥感与GIS应用项目开发与管理。