|
nbsp;
Fig.1 The general framework of GIS accessing database based on C/S model
值得一提的是ESRI公司的空间数据库引擎(spatial database engine,简称SDE)的设计方案(见图2).它是目前国际上领先的GIS数据处理的网络计算模型.其数据的访问形式为:由用户的应用程序(user application)通过SDE应用编程接口(SDE API)向SDE服务器提出空间数据请求,SDE服务器内存放有空间对象模型,并依据空间对象的特点在本地完成空间数据的搜索,并将搜索结果通过网络向用户的应用程序返回.
对比图1和图2可以看出两者采用的都是C/S模式,并且都将GIS功能实现与数据请求进行分层处理;所不同的是面向数据库的数据请求实现的位置:图1在客户机端实现,图2在服务器端实现.在服务器端实现的主要优点为:(1)对于空间对象模型及相关的计算模式的升级可以只在服务器端实现,而且对客户机端透明;(2)由于SDE服务器与数据库ORACLE 7.2的结合非常紧密,因此数据的搜寻速度非常快.对于图1来说,把数据请求层放在客户机端,对数据库的依赖程度就不同于SDE服务器,后者对数据库的选型有极强的依赖性(目前SDE服务器只在ORACLE 7.2实现),相反,它是一种非常开放的结构,它所支持的服务器不但可跨数据库系统平台,而且还可跨操作系统平台.可以说,图1和图2两种设计模式的优缺点是相互对应的.
3 数据库访问方式的比较
基于程序的访问数据库的几种方法如下.
(1)专用的数据库访问工具.如Power Builder,Delphi等,它偏向于对数据库中数据的管理和显示,具有限的计算功能.既不适于用它来开发GIS应用系统,也难以将它们的数据操纵功能与现有的GIS应用系统紧密结合.
(2)嵌入数据库语言的常规语言.各数据库厂家为了让用户程序能直接访问自已的数据库,基本上都提供了专有的面向C语言的预编译头和静态库,如Sybase公司的OPEN CLIENT和ORACLE的PRO*C.
(3)开放数据库互连性应用编程接口(open database connectivity application programming interface,简称ODBCAPI)[2,3].它是微软(Microsoft)公司提出的数据库访问形式.它通过确保所有的应用系统遵循标准的调用层接口,提供对特定数据源命令进行解释的驱动程序来保持应用系统的互用性.这样的应用系统是开放的,只要有相应数据源的ODBC的驱动,它就无需改变代码而可访问相应的数据库.
在确定访问数据库的方式时,ODBCAPI的开放性的优势是不言而喻的,但这种方式在效率上不如第二种访问形式.应说明的是:ODBC SQL语法分为3层,即最小层、核心层和扩展层,尽管目前的大型数据库都能支持到扩展层,但为了保证应用系统的开放性,在具体编程实现时,尽量只使用最小层和核心层的语法.
4 某电信局配线系统的实现
客户机为MAPGIS/ODBC/WINDOWS 95,服务器为SQL SERVER/WINDOWS NT,要访问的相关表中记录约为13万条.要求从地理底图上选中某一DP,在数据库中寻找出从这一DP到配线架的可用通路,并在数据库中作相应配线修改.如图3所示. 结果表明:(1)程序实现了MAPGIS访问网络数据库的功能;(2)客户机和服务器均为PC机(主频166MHz),每次操作反应时间为数秒,换机观察,发现服务器的性能是整个网络计算的瓶颈.
5 结论
(1)C/S模式为目前网络平台GIS的首选,将GIS功能与数据库访问分层实现有利于保护现有的开发成果;(2)将数据请求层放在客户端和以ODBC作为数据库的访问方式保证了应用系统的开放性,其访问可跨越数据系统和操作系统平台;(3)实例表明,应用系统的反应速度更多取决于服务器的性能,而不是ODBC的效率.
|