基于A rcSD E与O racle空间数据集成的应用①
周 梅1,杨 锴2,谭顺平3
(1.广西大学林学院,广西南宁530004;2.东南大学交通学院,江苏南京210018;
3.广西财经学院,广西南宁530003)
摘要:主要介绍利用A rcSD E和O racle9i建立空间数据库来存储、管理空间数据和属性数据的原理及技术优势.本空间数据库以A rcG IS Engine作为开发平台,以.N ET的核心语言C#为开发语言,建立客户端与数据库的连接,同时给出相应的连接代码,并成功应用到广西红树林资源管理系统中,取得较好的效果.
关键词:SD E;关系数据库管理系统;空间数据;属性数据;A rcG IS;红树林
中图分类号:O141 文献标识码:A
D iscussion on m ethods of GIS da taba se ba sed i n ArcS D
E and Oracle
ZHOU M ei1,YAN G Kai2,TAN Shun2p ing3
(1.Co llege of Fo restry,Guangx i U n iversity,N ann ing530004,Ch ina;
2.Schoo l of Comm un icati on and T ran spo rtati on of Sou theast U n iversity,N an jing210018,Ch ina;
3.Guangx i U n iversity of F inance and Econom ics,N ann ing530003,Ch ina)
Abstract:T h is p ap er m ain ly in troduces the p rinci p le and the advan tages of u sing A rcSD E and O racle9i to bu ild G IS database to sto re,m am age sp atial data and attribu te data.W ith A rcG IS Engine as the develop ing p lat fo rm and C#,the key language of N et as the develop ing language,th is G IS database estab lishes a connecti on betw een clien ts and DBM S,and gives the co rresponding connecti on code.It has been successfu lly app lied to the m am agenm en t system of Guangx iM angrove resou rses.
Key words:SD E;RDBM S;sp atial data;attribu te data;A rcG IS;M angrove
红树林(M angrove)是陆地过渡到海洋的特殊森林.红树林生态系统是地球上生产力最高的海洋四大自然生态系统之一,是国际上生物多样性保护和湿地生态保护的重要对象,已成为近年国际上普遍关注的环境资源热点之一.
红树林生态系统与沿海防灾减灾、渔业养殖、近海环境、林业、海洋旅游等密切相关,有着陆地森林不可取代的生态、经济、社会效益.我国红树林自然分布于海南、广西、广东、福建、以及和澳门,浙江有人工引种1种[1].
目前,我国红树林资源管理和监测的技术水平与林业现代化管理的要求还有很大差距;红树林资源管理监测信息化水平不高,没有统一的全国红树林资源信息化管理体系,数据处理能力弱,共享性差,缺乏横向和纵向的联系;信息采集与处理手段落后,费时多、成本高、精度差、周期长.广西红树林的研究主要集中在红树林生态系统、红树林群落的分子生态学、经济利用与生态工程、保护与生态恢复工程等领域,很少涉及红树林空间分布方面的研究.在红树林空间数据库建立及红
第32卷第4期2007年12月
广西大学学报(自然科学版)
Jou rnal of Guangx i U n iversity(N at Sci Ed)
V o l.32,N o.4
D ec.,2007
①收稿日期:2007-10-05;修订日期:2007-11-04
基金项目:UN EP GEF SCS FCG M D E M SUB2CON TRA CT NO.1
作者简介:周 梅(1972-),女,广西宾阳人,广西大学硕士研究生;E2m ail:zhoum ei-gxdx@163.com.树林资源管理方面的研究,国内也少见报道.建立红树林资源信息管理系统,将为广西红树林资源的保护与管理提供依据和决策支持.
1 系统的选择
A rcSD E是美国著名的G IS软件生产商ESR I 公司推出的空间数据库解决方案,是专用的地理信息数据库引擎.A rcSD E的主要功能是在关系数据库管理系统(RDBM S)和地理信息系统(G IS)之间充当一个应用接口,它在现有的关系或对象关系型数据库管理系统的基础上进行空间扩展,可以将空间数据和属性数据充分地集成在目前绝大多数的商用RDBM S中[2,3],实现空间数据和属性数据的无缝连接.它将不同的操作系统平台和数据库平台的差异屏蔽在中间件之后,并把具体的实现细节完全封装起来,使系统的G IS 功能应用与后台数据访问实现分离,有利于降低系统的复杂度,也使得空间数据库的数据能够被充分地利用和共享.很好地解决了空间数据和属性数据分离存储,满足用户解决数据的管理和维护困难、数据存取速度慢、多用户数据并发共享冲突等问题的需求.
A rcG IS Engine是ESR I公司推出的地图组件库,A rcG IS Engine基于A rc O b jects构建,它几乎封装了A rcG IS的全部功能,是具有极其强大通用性的一个G IS组件库.A rcG IS Engine支持全部标准开发环境,包括N ET,COM,Java和C++以及所有主流操作系统,如W indow s,U N I X和L inux.O racle DBM S是世界上最流行的数据库之一,它是一个功能强大、使用灵活和复杂的系统,满足面向空间数据应用的需要,实现了属性数据与空间数据在同一数据库对象关系表中的统一存储与管理,可以用于构造从小型的单用户系统到支持数千个并发用户的大中型应用项目.
现以广西防城港市红树林数据为例建立资源管理信息系统,该系统涉及的数据来源多样(空间、非空间数据)、数据格式各异(结构化表格数据、非结构化文档数据、影像数据、图片等),数据量较大.通过多方分析和借鉴,决定采用V isual C#.N et+A rcG IS Engine+O racle来进行管理整个红树林资源信息空间数据库,用A rcSD E作为专用的地理信息数据库引擎.2 数据库的连接与组织
2.1 数据库的连接
在安装A rcSD E fo r O racle9i过程中,需要输入数据库的全局数据库名(S I D)以及空间数据引擎运行实例名(缺省为esri_sde),以便创建空间数据库引擎的运行实行.当服务器端的A rcSD E 连接到O racle9i以后,就可以利用A rcG IS D esk top中的功能模块A rcCatalog提供的向导来导入空间数据[4,5].通过A rcSD E可将属性数据与非属性数据集成在O racle数据库管理系统中.用户在客户端对空间数据库进行存取数据时并不需要知道数据库中数据的实际组织方式,用户只需提供与空间数据库连接时所需的参数及目标数据的标识信息即可完成对库内数据的调用,同样,存入数据时也只需指定相关信息即可[6].
A rcSD E与应用程序及数据库平台之间传递的申请数据包由以下数据项组成:(1)Server:数据库服务器名;(2)Sevices:空间数据库引擎名(安装时默认的);(3)D atabase:空间数据库名(如果使用本地数据库,可不填);(4)U ser N am e:用户名(也是安装时默认的);(5) Pass w o rd:用户密码.A rcSD E本身并不存储数据,它是以所对应的大型关系数据库管理系统(RDBM S)来存储数据,当连接的是O racle时,数据则是以O racle表格式存储的.该连接建立好后,在O racle数据库中自动创建一个名为SD E的用户,在该用户里包含了一系列支持空间数据和属性数据统一存储的相关表项.
2.2 数据的组织
A rcSD E以层为单位来组织数据,通过层表(L ayer tab le)数据库中的每个属性类都在层表中存在记录.Geodatabase按层次将地理数据组织成数据对象,并存储在要素类(Featu reC lass)、对象类和要素集中.在Geodatabase中,要素类是具有相同几何类型与属性要素的集合,要素对象是存储空间数据的表,要素集是空间实体(要素)和非空间实体(对象)以及它们之间的相互关系的容器,是共享相同空间引用的要素类的集合[7].
按照GeoD atabase数据模型组织的数据主要有2种存在方式:Personal GeoD atabase和En terp rise GeoD atabase.Personal GeoD atabase 通过M icro soft A ccess文件型数据库存储管理空间数据库,数据处理能力较低、不支持多用户并发
804广西大学学报(自然科学版)第32卷 操作,而且最多只可以存储2GB大小的数据. En terp rise GeoD atabase则将空间数据存放在RDBM S(如O racle,DB2,SQL Server等)中,充分利用了RDBM S强大的数据处理能力,但客户端需要通过空间数据引擎A rcSD E才能访问和操作En terp rise GeoD atabase数据.
A rcSD E组织空间要素的方法是在不影响现有数据库应用的前提下,将空间数据类型加载到关系型数据库中,以便与其他表进行关联.空间数据的载入可以使用A rcG IS软件提供的A rcCatalog功能模块的可视化操作界面,使用户方便的将数据导入数据库;也可使用A rcSD E提供的命令进行载入,该方式更易于用户使用和理解,只需在命令提示符窗口里输入shp2sde和cov2sde等命令即可[8].当新建一个要素类时,将在O racle数据库管理系统中自动生成一个一体化的存储空间数据和属性数据的表,将空间数据存储到后台数据库中进行集中管理,该表可以作为G IS的外部数据库存在.在G IS中,每幅地图根据不同的要素类可以分成不同的空间图层,相应地在O racle中,为每个空间图层建立一个数据库表.
3 应用实例分析
3.1 数据库连接代码
大型关系数据库O racle和空间数据引擎A rcSD E的结合是目前一种比较成熟、稳定的空间数据管理技术.本系统以大型关系数据库系统O racle9i为核心,基于A rcG IS Engine和.N ET的核心语言C#编程环境下开发的应用程序,采用A rcSD E空间数据引擎作为O racle9i和系统的接口,实现数据库的连接.A rcG IS Engine提供了一种访问SD E数据库的方法,主要使用I W o rk sp aceFacto ry,I w o rk sp ace和IP rop ertySet 3个接口.整个过程的结果返回一个I W o rk sp ace 接口,其中I w o rk sp aceFacto ry用于生成I W o rk sp ace接口,而IP rop ertySet用于设置数据库的连接属性.整个实现过程包括定义数据库连接属性、创建数据库连接两个步骤.下面的函数就是用于实现通过A rcSD E连接O racle9i数据库.
I W o rk spaceFacto ry pSde W o rk spaceFacto ry=new Sde W o rk spaceFacto ryC lass();
I W o rk space pSde W o rk space;
IP ropertySet pSdeP ropertySet=new
P roperty SetC lass();
pSdeP ropertySet.SetP roperty(“SERV ER”,“M Y2TOM A TO”);pSdeP ropertySet.SetP roperty (“I N STAN CE”,“esri_sde”); 这里还可以放“5151 tcp”或者“5151”
pSdeP ropertySet.SetP roperty(“DA TABA SE”,“sde”);
pSdeP ropertySet.SetP roperty(“U SER”,“sde”);
pSdeP ropertySet.SetP roperty(“PA SS W ORD”,“gis”);
pSdeP ropertySet.SetP roperty(“V ER S I ON”,“SD E.
D EFAUL T”);
pSdeP ropertySet=pSde W o rk spaceFacto ry.R ead2 Connecti onP ropertiesF rom F ile(@“C: Docum en ts and Settings A dm in istrato r A pp licati on D ata ESR I A rcCatalog Connecti on to M Y2TOM A TO.sde”);
pSde W o rk space=pSde W o rk spaceFacto ry.Open (pSdeP ropertySet,0);
下面的函数是用于获取、显示O racle9i数据库中的空间数据:
IEnumD ataset pEnumD ataset=pSde W o rk space. get_D atasets(esri D atasetT ype.esri D T Featu reC lass);
pEnumD ataset.R eset();
I D ataset pD ataset=pEnumD ataset.N ex t();
IFeatu re W o rk space pFeatu re W o rk space;
pFeatu re W o rk space=(IFeatu re W o rk space)pSde2 W o rk space;
w h ile(pD ataset!=nu ll)
{
IFeatu reC lass pFeatu reC lass=pFeatu re W o rk space. OpenFeatu reC lass(pD ataset.N am e);
IFeatu reL ayer pFeatu reL ayer=new Featu re2 L ayerC lass();
pFeatu reL ayer.Featu reC lass=pFeatu reC lass;
M apCon tro l.A ddL ayer((I L ayer)pFeatu reL ayer,0);
pD ataset=pEnumD ataset.N ex t();
}
连接成功后见图1,系统效果图如图2所示. 3.2 系统功能
利用该系统来管理整个防城港市红树林空间数据,实现红树林遥感G IS数据的登记建库、信息管理、SQL查询、缓冲区分析及统计等多方面的应用.系统应用实现以下主要功能:(1)红树林遥感G IS数据入库;(2)海量数据查询及数据的实时更新;(3)空间分析、综合查询、统计等功能,如某一地理区域内包含哪些红树林种类等;(4)制作满足用户需要的专题图.由于红树林G IS数据的数量非常大,往往会对系统造成较大的负荷,因
904
第4期周 梅等:基于A rcSD E与O racle空间数据集成的应用
此在系统设计过程中,效率显得尤为重要,需要尽可能合理地配置A rcSD E 的各个功能选项,以提高效率,合理利用系统资源
.
图1 连结S D E 数据库
F ig .1 The connect of S D E D
B
图2 图层显示
F ig .2 The i m age of map cayer
3.3 实现效果
完成上述系统设计后,我们对系统进行了一系列的增删查询、分析统计等操作,系统均能较好地完成,且效率较高,达到了预期设计的要求.为不同的研究者提供了数据和技术支持,使研究者能够基于这样一个较友好的平台进一步集成已有的相关信息.
3.4 系统的技术特点
本系统主要的技术特点可归纳为:(1)系统
的运行不依托通用的G IS 系统平台软件,具有独
立图层生成、编辑功能.无论从系统的简练度和系统开销上,都能达到简洁、灵活;(2)系统具有的标注图层,可以按用户的意图进行图面标注整饰,制作出满足用户要求的专题信息图;(3)系统具有强大而灵活的查询功能,可以利用数据库中任意一个或多个因子组合进行SQL 查询,达到图文间的多向检索功能.
4 结束语
通过ESR I 的数据库引擎(A rcSD E )将空间数据和属性数据以统一的数据模型存储在大型关系数据库管理系统(O racle 9i )中,对数据进行统一管理,直接利用关系数据库的管理功能,充分发挥DBM S 的优化查询,提高数据的访问速度和海量数据的存储和管理.A rcSD E 与O racle 的结合,较好地解决G IS 应用与空间数据库集成中数据提供与并发访问方面的制约瓶颈问题,是一种比较可行的解决方案,在实践应用中也积累了相当多的成功案例,具有很好的发展前景.
参考文献:
[1] 林 鹏.中国红树林生态系[M ].北京:科学出版社,
1997.1152340.
[2] 桂润堂,钟 霞,薛重生.基于A rcSD E 空间数据库
引擎技术的应用研究[J ].微机发展,2003,6(13):
50254.
[3] 陈继宁,张晓东.O racle Spatial 和A rcSD E 的应用比
较研究[J ].遥感信息,2005,(5):60263.[4] 熊丽华,杨 峰.基于A rcSD E 的空间数据库技术的
应用研究[J ].计算机应用,2004,24(3):90296.
[5] 王 佞,罗大庸,张 航.基于SD E 的空间数据库的
研究与实现[J ].计算机与数字工程,2006,34(4):72
10.
[6] 张 宁,宫辉力,赵文吉,等.基于SD E 与
M apO b jects 控件的G IS 开发应用研究[J ].首都师范大学学报(自然科学版),2005,26(2):1012105.[7] 蔡娟娟.矢量数据库的建立及技术研究[J ].测绘与
空间地理信息,2006,29(1):30232.
[8] ESR I .A rcSD E A dm in istrati on Comm and R eference
[EB OL ].h ttp : www .esri
.com .(责任编辑 张晓云 梁碧芬)
014广西大学学报(自然科学版)第32卷