• 657.96 KB
  • 2022-04-22 11:24:50 发布

基于oracle三维供水管网数据库实现和数据源分析

  • 63页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'华中科技大学硕士学位论文摘要城市地下管网是城市的重要基础设施,是城市赖以生存的重要物质基础。传统的GIS系统在三维数据处理、多种类型的数据表示和处理布局复杂的管线方面能力较差。为克服传统GIS的弱势,辅助管网设计及实现数据共享,建立地下管网三维数据库和实现三维显示是当前研究的热点之一。本论文在三维地下管网数据库实现和数据源分析过程中,在以下几个方面进行了深入研究:(1)鉴于城市地下管网分布上的不均衡性、拓扑连接上的复杂性和数据上三维特点,本论文根据用户需求,采用客户端/服务器的模式,基于Oracle数据库管理系统对三维地下管网数据库进行了设计和构建。数据库按照区域的方式管理数据,使用关系表来保存关键地段或区域的管网图形数据和属性数据。(2)为实现数据共享,论文重点分析了SICAD/open的数据模型和数据结构,SQD文件格式,给出了SQD文件解析方法和程序接口;同时,对于新装管线的AutoCAD数据源进行了详细分析,给出了DXF文件解析程序接口,较好地解决了多源数据的集成问题。(3)论文最后描述了系统的架构,阐述了数据库系统的开发过程和重要模块。在数据库开发过程方面,经过深入地需求分析,从概念设计到逻辑设计、物理设计,利用Oracle数据库管理系统建立了三维管网数据库。在数据入库方面,对SQD和DXF解析两个模块的数据操作流程和规范进行了详细的描述,保证了数据的完整性和正确性。关键词:数据库OracleSICAD/open数据集成SQDDXFI 华中科技大学硕士学位论文AbstractUndergroundpipelinenetworkisanimportanturbaninfrastructure.Conventional2DGISsystemhaslimitationsinprocessingthree-dimensionaldata,expressingmultipletypesdataandcomplextopology.Inordertoovercometheselimitationsin2DGIS,assistantpipelinedesigningandsharedatawithothersystems,thefollowingaspectsarefocusedoninthisdissertation.(1)Theundergroundpipelinenetworkisunbalanceddistributedanditstopologyiscomplex.So,basedonanalysisofusers’needs,a3Dundergroundpipelinenetworkdatabasesystemusingclient/servermodelwasdesignedandimplemented.Thedatabasestoresboththevectordataandattributedataintheregionalwayusingrelationaltables.(2)Meanwhile,inordertosharedatawithothersystems,thedissertationfocusedontheanalysisofthedatamodelanddatastructureofSICAD/open.ThemethodsandproceduresofthewaytoanalyzeSQDfileformatweregiven.ThenewpipelinewhichisdesignedwithAutoCADwascarriedonadetailedanalysis.Inaddition,theinterfaceofanalyzingtheDXFfileformatwasgiven,whichisabetterwaytoaddressthemulti-sourcedataintegrationproblems.(3)Finallythedissertationdescribedthesystemarchitecture,implementationprocessandsomeimportantmodules.Intheprocessofdatabasedevelopment,throughin-depthanalysisofneeds,fromconceptualdesigntothelogicdesign,physicaldesign,usingOracledatabasemanagementsystem,athree-dimensionalpipelinenetworkdatabasewasestablished.Astodataflow,SpecificationandthestepsweredescribedindetailinSQDandDXFtwofunctionmodules,toensuredataintegrityandaccuracy.Keywords:DatabaseOracleSICAD/openDataIntegrationSQDDXFII 独创性声明本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研究成果。尽我所知,除文中已经标明引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写过的研究成果。对本文的研究做出贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到,本声明的法律结果由本人承担。学位论文作者签名:日期:年月日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,即:学校有权保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权华中科技大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。保密□,在_____年解密后适用本授权书。本论文属于不保密□。(请在以上方框内打“√”)学位论文作者签名:指导教师签名:日期:年月日日期:年月日 华中科技大学硕士学位论文1绪论1.1课题的背景与意义城市现代化建设的发展对城市自来水事业提出了更高的要求,为跟上城市发展的步伐,适应供水管网的维护要求,许多城市采用地理信息系统(GIS)技术、互联网技术及信息管理技术实现了自来水管网信息管理和业务管理的科学化和现代化。然而,随着城市现代化建设迅速发展,建设规模不断扩大,城市地下空间开发利用越来越受到各方面的重视,使用功能日趋复杂,作为城市公共设施重要组成部分的城市地下管线由单一、简单的形式发展到多类别、多权属和布局复杂的管线网。武汉市供水管网总长近4000公里,供水面积约400多平方公里,供水总规模303万吨/日。为跟上城市发展的步伐,适应供水管网的维护要求,武汉市水务集团以德国AED-SICAD公司提供的SICAD/openGSP作为开发平台,以ORACLE作为关系数据库来存储和管理海量数据,建立了传统的供水管网信息管理系统。然而,传统的GIS系统在三维数据处理、多种类型的数据表示和处理布局复杂的管线方面能力较差。这些因素导致了因管线埋设情况不清而导致管网维护困难和诸多设计上的失误,给地面施工造成严重经济损失。因此,通过GIS系统或其它辅助工具建立三维地下管网数据库成为当务之急。在该集团二维GIS系统提供数据的基础上,三维地下管网显示系统的建立实现了对关键地段和重要区域的地下管网进行三维重建和图形显示,使得地下管网显示逼真,便于管网设计、改造和维护。该系统在数据管理方面建立了三维管网数据库,解析数据源,完成了数据入库的功能,提供了用户管理功能;在管网显示方面,系统具有管线二维,三维和纵断面显示功能;同时采用了客户端/服务器模式,基于Socket进行网络通讯和数据传输,基于FTP协议进行文件传输,基于XML进行数据封装,实现了用户连接,数据查询、修改等重要功能。本论文研究如何反映城市关键地段的复杂管网的现状,获取准确的管线有关三维及连接关系的数据,建立三维管网数据库,并在这个基础上作好对管段、设备属性的维护,反映管网当前运转状态。通过建立地下管网三维显示系统,将给管网施工和维修带来较大的方便,减小因为施工方案错误所造成经济损失,具有重要的应用1 华中科技大学硕士学位论文意义。与其它IT产业不同的是,GIS产业更强调数据以及处理。面对采集、分析数据[1]的巨额成本和已有的数据众多不同格式的空间数据两方面的因素,研究和实现数据共享和多源数据集成具有重要的实用价值和理论意义。三维管网数据库数据源之一来自武汉市供水管网信息管理系统,该系统采用SICAD/openGSP作为开发平台。[2]SICAD/open这一GIS软件,自身只提供SQD和DXF之间的相互转换,因此,分析SICAD/open的数据模型,解析SQD的数据格式,对达到和SICAD/open共享数据有重要的实用价值。本论文中数据库另一重要数据源来自AutoCAD新装管网设计图。AutoCAD在图形处理上功能较强,但它在对空间数据信息的描述和分析上还需完善,所以,需要将大量的AutoCAD格式数据转换为所需要的格式的数据。AutoCAD采用了DXF(drawingexchangeformat)图形交换文件格式和其它系统进行图形数据交换。因此研究和分析这一数据源对于多源数据集成有重要的实用价值和理论意义。1.2国内外研究现状随着计算机和信息技术的不断发展,地理信息系统技术的迅速发展和不断成熟,以GIS技术为基础的城市地理信息系统正逐渐被用于城市管线管理的各个方面,并且取得了良好的社会效益和经济效益。它采用计算机软件技术、硬件技术以及网络技术来改变以前传统的管理方式,使城市管网的管理逐渐步入规范化、自动化、科学化的轨道,实现了对管线的信息化、科学化管理,并能够实时提供准确、高精度地提供管网的图形信息和属性信息。供水管网是城市基础设施的生命线工程,是城市赖以生存和发展的重要物质基础。随着城市的发展,传统的地下管网管理方法已经严重制约了城市经济的发展,地理信息系统技术是一种采集、存储、管理、分析、显示与应用地理信息的计算机系统,是分析和处理海量地理数据的通用技术,其特有的可视化表达和空间分析功能正符合供水管网信息所具有的与地理位置相关、区域性强、动态和数据量大等特[3-6]点。因此,越来越多的学者致力于管网地理信息系统的研究,许多城市建立了基于GIS的城市管网信息系统,利用它对城市的管网进行管理。美国、西欧、日本等国家和地区的大城市都建立起了基于GIS的管网信息系统,利用这些管网信息系统2 华中科技大学硕士学位论文对城市的管网进行管理。这些系统大多集成了各种数学模型,如最佳路径分析、空间定位分析、缓冲区分析、管网事故分析、最优输配水方案、拓扑关系分析等,增强了系统的功能。同时这些系统还结合了自动制图系统、设施管理系统、专家系统、决策支持系统,为城市规划与建设管理提供高精度、高可靠性、现势性的地下管网[7-9]信息。现在,这些国家正在研究更为先进的管网管理系统,如全国联网、网上发布、自动探测、卫星接收、及时传递且计算机智能控制决策的现代化管网信息系统[10-12]。我国的地下管网信息系统应用相对起步较晚,然而随着我国城市规模的不断扩大,许多城市也已经运用GIS进行地下管网的信息化管理。如武汉市采用SICAD/openGIS技术、互联网技术及信息管理技术实现了自来水管网信息管理和业务管理的科学化和现代化;中山市使用InterGraph公司的MGE软件系统,成功地实现了在计算机[13]上建立各种管线信息数据库,实现了城市地下管网信息动态管理。[14,15]随着GIS建设与应用的逐步深入,空间数据逐渐表现出多样化的特征,其原因首先是由于空间数据获取手段的多源性;其次是空间数据本身的多尺度以及时空特征;再次是长期以来GIS应用系统多数都处于以具体项目为中心孤立发展的状态中,各个系统的数据模型与数据结构不一致,并有可能存在语义理解上的不同。[16]根据具体应用和系统的不同,目前实现多源数据集成的方式主要有三种,数据格式转换,数据互操作和直接数据访问。SICAD/open与别的GIS软件差别较大,其元素采用层次结构,高层元素可以共用低层子元素与一般GIS系统很不一样,至今为止还只有FME加一个Plugin才能读写SQD,加上SICAD/open这一GIS软件在国内的使用并不广泛,尤其是针对某一具体应用,SQD的分析和使用更少。而DXF图形交换文件,随着AutoCAD软件的日益流行,事实上已成为国际通用的图形数据交换标准。1.3论文主要内容本论文根据用户需求,采用客户端/服务器的模式,基于Oracle数据库管理系统对三维供水管网数据库进行了设计和构建。同时,本论文解析了SICAD/open系统的SQD文件格式和AutoCAD的DXF文件格式,较好的解决了多源数据在本数据库系统中的集成的问题。3 华中科技大学硕士学位论文本论文内容按以下顺序组织:第1章,绪论讲述了课题的研究背景和意义,介绍管网的数据特点和国内外的使用和研究现状,最后给出了论文的研究重点和主要内容;第2章,在这一章中,主要介绍数据库的发展现状及其Oracle数据库的特点,数据库的设计流程和方法,数据库接口访问技术以及PL/SQL;管网数据作为空间数据的重要组成部分;第3章,数据源分析。首先介绍了多源数据的表现形式和集成模式,重点分析了SICAD/open的数据模型,SQD数据交换文件的来源,特点和数据元素,然后针对新建的管线的DXF图形交换文件的做了较为详细的介绍和分析。第4章,三维管网数据库系统及实现。主要介绍了系统的整体框架和模块划分,并利用Oracle9i数据库管理系统依据数据库的开发流程,建立了三维管网数据库系统,并对数据库的安全提供了良好的解决方案。本章还重点介绍了数据入库的SQD解析模块和DXF解析模块。第5章,总结与展望。对本论文所做的主要工作进行了总结,并指出下一步的研究方向和建议。4 华中科技大学硕士学位论文2数据库基础与相关理论2.1数据库技术数据库技术主要研究如何存储、使用和管理数据,是计算机技术中发展最快、应用最广的技术之一。作为计算机软件的一个重要分支,数据库技术一直是信息技术界关注的一个重点,数据库技术的应用可以说是深入到了各个领域。在信息技术高速发展的当今,数据库技术已成为现代计算机信息系统和应用系统开发的核心技术之一,数据库已成为计算机信息系统和应用系统的组成核心之一,更是未来“信息高速公路”的支撑技术之一。2.1.1数据库技术历史与现状数据库技术从诞生到现在,在不到半个世纪的时间里,形成了坚实的理论基础、成熟的商业产品和广泛的应用领域,吸引了越来越多的研究者加入,使得数据库成为一个研究者众多且被广泛关注的研究领域。从20世纪60年代起,数据库的发展[17]经历了以下3个阶段:[18]1.1969年IBM公司研制了基于层次模型数据库管理系统IMS(InformationManagementSystem),并作为商品化软件投入市场。IMS作为层次型数据库管理系统的代表,标志着数据库及相关技术的诞生,具有重要意义。在数据库系统出现以前,各个应用拥有自己的专用数据,通常存放在专用文件中,这些数据与其它文件中数据有大量的重复。数据库的重要贡献就是将应用系统中的所有数据独立于各个应用而由DBMS统一管理,实现了数据资源的整体管理。IMS系统的推出,使得数据库概念得到了普及,也使得人们认识到数据的价值和统一管理的必要性。2.20世纪60年代到70年代初,网状数据模型替代层次数据模型。由于IMS是将数据组织成层次的形式来管理,有很大的局限性。为了试图克服这种局限性,美国数据库系统语言协会CODASYL(ConferenceOnDataSystemLanguage)下属的数据库任务组DBTG(DatabaseTaskGroup)对数据库的方法和技术进行了系统研究,并提出了著名的DBTG报告。该报告确定并建立了数据库系统的许多基本概念、方法和技术,报告成为网状数据模型的典型技术代表,它奠定了数据库发展的基础,并有着深远的影响。网状模型提出了很高的要求,因此阻碍了系统的推广应用。5 华中科技大学硕士学位论文3.1970年IBM公司的E.F.Codd发表了著名的基于关系模型的数据库技术的论[19]文——“大型共享数据库数据的关系模型”,并获得1981年ACM图灵奖,标志着关系型数据库模型的诞生。由于关系模型的简单易理解及其所具有的坚实理论基础,整个20世纪70年代和80年代的前半期,数据库界集中围绕关系数据库进行了大量的研究和开发工作,对关系数据库概念的实用化投入了大量的精力。关系模型提出后,由于其突出的优点,迅速被商用数据库系统所采用。据统计,20世纪70年代以来新发展的DBMS产品中,近90%是采用关系数据模型,其中涌现了许多性能良好的商品化关系数据库管理信息系统,如:Oracle、DB2、Sybase、Informix、SQLServer等。70年代以后,随着信息管理内容的不断扩展和新技术的层出不穷,数据库技术面临着前所未有的挑战。面对新的数据形式,人们提出了丰富多样的数据模型,同[20]时也提出了许多新的数据库技术。[21]数据库伴随信息技术的更新换代和应用需求的不断升级,关系数据库系统对于工程、科学、办公信息和大量的数据检索系统而言,需要使用超越关系模型的更强大、更灵活的模型。趋势是扩展关系数据库系统的功能,或向另一个方向发展数据定义和存储与检索规则。为弥补管理系统的不足,出现了面向对象的数据库系统和对象-关系模型。在商界另一个感兴趣的领域是业务智能。当前的数据库系统虽可以支持日常的操作,但不适于制定战略决策。数据库系统正开始用于业务智能应用[21]程序,如数据仓库、数据挖掘和联机分析处理。数据库系统还向另一个方向发展,演变为专用和特殊功能数据库,以提供特殊功能,满足特殊需求。内置特殊属性和功能的数据库有并行数据库、活动数据库和智能数据库等。智能数据库,旨在满足特定目的和特定需要,如多媒体数据库、移动数据库和地理数据库等。2.1.2Oracle数据库Oracle是世界上最早商品化的关系型数据库管理系统,是数据库专业厂商Oracle的核心产品,也是当前应用最为广泛、功能最强大、具有面向对象的特点、采用了客户机/服务器架构的数据库系统。[22]作为一个通用的数据库系统,Oracle具有完整的数据管理功能,这些功能包括存储大量数据、定义和操纵数据、并发控制、安全性控制、完整性控制、故障恢6 华中科技大学硕士学位论文复、与高级语言接口等。Oracle还是一个分布式数据库系统,支持各种分布式功能,特别是支持各种Internet处理。作为一个应用开发环境,Oracle提供了一套界面友好、功能齐全的数据库开发工具,使用户拥有良好的应用开发环境。Oracle使用PL/SQL语言执行各种操作,具有可开放性,可移植性、灵活性等特点。概括来讲Oracle数据库的特点有:1.优良的数据可访问性。它提供了备份数据的实用程序,包括当用户机构正在使用数据时对数据进行备份的能力;2.过程组件在程序设计语言PL/SQL下可以实现诸如存储过程、数据库触发器、包等功能;3.分布式处理使得用户像访问驻留在同一中央计算机上的信息那样访问到分布在不同城市的不同计算机上数据;4.并行查询使用户能利用在一台具有多个中央处理单元的计算机上进行查询。当在多CPU机器上利用并行选件进行查询时,Oracle调度许多进程同时执行;5.Oracle企业管理器是帮助管理整个Oracle环境的管理工具集。Oracle企业管理器操作台有4个主要的组件:导航器,图形窗,作业调度系统和事件管理系统。每个正被管理的数据库都有一个智能代理进程。此进程监控数据库为OEM所知。它收集数据库执行状态,在Oracle数据存放处存储信息反馈给OEM,由数据库管理员来研读和采取相应的动作;6.Oracle是一个可移植的数据库——它在相关的每一个平台上都可以使用,即所谓的跨平台特性。特别是,在Oracle9i中,支持面向对象的功能,支持类、方法和属性等概念,使得Oracle产品成为了一种对象—关系型数据库系统。与以前的版本相比,Oracle9i产品在性能、工具等方面都进行了大的改进,使Oracle9i产品的功能更加强大、性能更加稳定。Oracle9i产品的增强和改变分为5部分:企业管理器方面、数据库管理方面、性能调整方面、改变管理方面和性能诊断方面。2.1.3Oracle的体系结构Oracle9i服务器是一种对象关系型数据库管理系统,它提供了一种开放的、完整的、集成的信息管理方法。从整体构架上来看,都包含内存结构、后台进程以及7 华中科技大学硕士学位论文[22]数据存储几部分,也可以将一个运行着的Oracle数据库看成是一个OracleServer,该Server由实例(Instance)和数据库(Database)两部分组成。实例是一组内存结构(Memorystructure)和后台进程(Backgroundprocess)的集合。内存结构可以分为共享内存区与非共享内存区,共享内存区主要包含SGA(SystemGlobalArea),非共享内存区主要由PGA(ProgramGlobalArea)组成。SGA主要包括数据高速缓存(DatabaseBufferCache)、重做日志缓存(Redologbuffer)、共享池(Sharedpool)三部分;后台进程主要包括系统监控(SMON)、进程监控(PMON)、数据写入程序(DBWR)、检查点(CKPT)、日志写入程序(LGWR)、归档(ARCH)等。InstanceUserprocessSGASharedpoolLibrarycacheDatabaseRedologServerDataDict.buffercachebuffercacheprocesscachePGAPMONSMONDBWRLGWRCKPTOthersParameterDataControlArchivedfilesRedologfilesfilesLogfilesfilesParameterfiles图2-1Oracle体系结构图Oracle数据库是可以作为一个单元对待的数据集合。数据库的重要作用使存储用户的各种业务数据。数据库的物理结构和逻辑结构是不同的。数据库的物理结构是指数据库中的各种对象和数据。数据库的逻辑结构是数据库中的操作系统文件的集合。主要由包含了存储在数据库中的实际数据的数据文件(Datafiles)、包含了用来维护和验证数据库完整性的信息的控制文件(Controlfiles)和记录了用户对数据库所作的任何改变的重做日志(Redofiles)三部分组成,另外,数据库还使用了一8 华中科技大学硕士学位论文些附加文件。这些附加文件不是数据库的组成部分,这些文件包括归档日志文件(Archivedfiles)以及初始化参数文件(Parameterfile)等。2.1.4Oracle的数据库对象Oracle是一种典型的关系数据库,一般来说,对数据库的操作可以归结为对数据库对象的操作。Oracle数据库对象中最基本的是表(Table)和视图(View),其它的对象包括索引(Index)、同义词(Synonym)、序列(Sequence)、函数(Function)、存储过程(Procedure)、触发器(Trigger)、包(Package)、簇(Cluster)以及完整性约束(Constraint)等。1.表和视图:在Oracle中,表是数据存储的基本结构。视图是一个或多个表中数据的逻辑表达式,用户可以将视图看成一个存储查询(storedquery)或一个虚拟表(virtualtable)。视图还可以隐藏复杂的查询,比如多表连接查询。2.索引:索引是一种可以提高查询性能的数据结构。Oracle9i中提供了多种索引类型。3.同义词:同义词是其它数据库对象的别名,其本质是指向其它数据库对象的指针。同义词有私有(private)和公有(public)两种类型。4.序列:Oracle的序列是一个连续的数字生成器。序列只存在于数据字典中,序列号可以被设置为上升或下降,可以没有限制或重复使用直到一个限制值。5.过程和函数:过程和函数都以编译后的形式存放在数据库中,函数可以没有参数也可以有多个参数并有一个返回值。过程有零个或多个参数,没有返回值。函数和过程都可以通过参数列表接收或返回零个或多个值,函数和过程的主要区别不在于返回值,而在于它们的调用方式。过程是作为一个独立执行语句被调用的而函数是以合法的表达式的方式被调用。6.触发器:触发器是一种自动执行响应数据库变化的程序,可以被设置为在触发器事件之前或之后被激发。能够激发触发器的事件有DML事件、DDL事件和数据库事件。7.包:包是一种将过程、函数和数据结构捆绑在一起的容器。包由包头和包体两部分组成;包头部分包括函数头,过程头,和外部可视数据结构;包体中则包含了所有被捆绑的过程和函数的声明、执行和异常处理部分。9 华中科技大学硕士学位论文8.簇:簇可以理解为Oracle提供的一种提高查询速度的数据存储方法。所谓簇,简单地说就是把几个表放在一起,按一定公共属性混合存放。簇根据相同键值将多个表的数据存储在同一个Oracle块中,这样检索一组Oracle块就可以同时得到两个表的数据,从而减少了Oracle块的I/O操作,提高了查询的性能。9.数据库完整性:Oracle的数据库完整性是通过其完整性约束机制来实现的。完整性约束是一种规则,不占用任何数据库空间。完整性约束存在数据字典中,在执行SQL或PL/SQL时使用。Oracle共提供了五种完整性约束:Check、NOTNULL、Unique、Primarykey和Foreignkey。2.2SQL和PL/SQL2.2.1SQL简介数据库查询语言SQL(StructuredQueryLanguage),是标准的关系数据库的一种非过程结构化查询语言,有很强的表达能力,是关系数据库的基本操作语言,它是应用程序与数据库交互操作的接口。SQL包括数据定义语言(DDL),数据操纵语言(DML)和数据控制语言(DCL)。SQL语言的特点:1.SQL语言采用集合的操作方式;2.执行SQL语句时,每次只能发送并处理一条语句;3.执行SQL语句时,用户只需要知道其逻辑含义;4.使用SQL语句时,可以交互方式执行,也可以嵌入到高级的语言当中。2.2.2PL/SQL简介[23]PL/SQL(ProceduralLanguage/SQL)是一种过程化语言,属于第三代语言,它与C、C++、Java等语言一样关注于处理细节,可以用来实现比较复杂的业务逻辑。它允许SQL的数据操纵语言和查询语句包含在块结构(blockstructured)和代码过程语言中,使PL/SQL成为一个功能强大的事务处理语言。PL/SQL是Oracle对标准数据库语言的扩展,Oracle公司已经将PL/SQL整合到Oracle服务器和其它工具中了。PL/SQL不是一个独立的产品,它是一个整合到Oracle服务器和Oracle工具中的技术,可以把PL/SQL看作Oracle服务器内的一个引擎,10 华中科技大学硕士学位论文SQL语句执行者处理单个的SQL语句,PL/SQL引擎处理PL/SQL程序块。当PL/SQL程序块在PL/SQL引擎处理时,Oracle服务器中的SQL语句执行器处理PL/SQL程序块中的SQL语句。PL/SQL是一种块结构的语言,组成PL/SQL程序的单元是逻辑块,一个PL/SQL程序包含了一个或多个逻辑块,每个块都可以划分为三个部分。与其它语言相同,变量在使用之前必须声明,PL/SQL提供了独立的专门用于处理异常的部分,下面描述了PL/SQL块的不同部分:1.定义部分(Declarationsection):声明部分包含了变量和常量的数据类型和初始值。这个部分是由关键字DECLARE开始,如果不需要声明变量或常量,那么可以忽略这一部分;需要说明的是游标的声明也在这一部分;2.执行部分(Executablesection):执行部分是PL/SQL块中的指令部分,由关键字BEGIN开始,所有的可执行语句都放在这一部分,其它的PL/SQL块也可以放在这一部分;3.异常处理部分(Exceptionsection):这一部分是可选的,在这一部分中处理异常或错误。2.3数据库的开发流程数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据,以满足用户信息要求和处理要求。数据库开始设计之前,首先必须选定参加设计的人员,包括系统分析人员、数据库设计人员、程序员、用户和数据库管理员等。系统分析和数据库设计人员是数据库设计的核心人员,将自始至终参与数据库设计,其水平决定了数据库的质量;用户和数据库管理员在数据库设计中也是举足轻重的,主要参加需求分析和数据库的运行维护,他们的参与不但可以加速数据库的设计,而且也是数据库设计质量的重要因素;程序员则在系统实施阶段参与进来,分别负责编制程序和准备软硬件环境。如果所设计的数据库应用系统比较复杂,可以考虑是否使用数据库的设计工具和CASE工具以提高数据库设计质量并减少设计工作量,以及选用何种工具。数据库系统的一般开发流程如下:11 华中科技大学硕士学位论文应用需求需求收集和分析需求分(数据,处理)析阶段转换规则,DBMS设计概念结构概念设功能优化方法计阶段设计逻辑结构逻辑设计阶段应用要求数据模型优化DBMS的详细特征设计物理结构物理设计阶段评价设计,性能预测不满意物理实现数据库实施阶段试验性运行不满意数据库运行维护阶段使用、维护数据库图2-3数据库开发流程1.需求分析阶段:综合各个方面的要求,分析用户的需求,结果得到数据字典描述的数据需求(和数据流图描述的处理需求);2.概念设计阶段:形成独立于机器特点,独立于各个DBMS产品的概念模式,即E-R图;3.逻辑设计阶段:首先将E-R图转换成具体的数据库产品支持的数据模型,并对其进行优化;4.数据库物理设计阶段:为逻辑数据模型选取一个最适合应用环境的物理结构,包括存储结构和存取方法;5.数据库实施阶段:运用DBMS提供的数据语言(例如SQL)及其宿主语言(例如C、C++),根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。数据库实施主要包括以下工作:12 华中科技大学硕士学位论文用DDL定义数据库结构、组织数据入库、编制与调试应用程序、数据库试运行;6.数据库运行和维护阶段:数据库应用系统经过试运行后即可投入正式运行。在数据库系统运行过程中必须不断地对其进行评价、调整与修改。包括:数据库的转储和恢复、数据库的安全性、完整性控制、数据库性能的监督、分析和改进、数据库的重组织和重构造。在上述描述的数据库设计流程中,数据库结构设计的不同阶段形成数据库的各[24]级模式,如图2-4所示:需求分析阶段,综合各个用户的应用需求;在概念设计阶段形成独立与机器特点,独立于各个DBMS产品的概念模式,即通常所说的E-R图。在逻辑设计阶段将E-R图转换成具体的数据库产品支持的数据模型,如关系模型,形成数据库的逻辑模式;然后根据用户处理的要求,安全性的考虑,在基本表的基础上再建立必要的视图,形成数据库的外模式;在物理设计阶段,根据DBMS特点和处理的需求,进行物理存储安排,并建立索引,形成数据库的内模式。应用1应用2应用3应用4外模式外模式外模式外模式应用1应用要求映像应用2应用要求概念逻辑应用3模式模式应用要求内模式应用4应用要求综合转换映像图2-4数据库三级模式2.4数据库访问技术VisualC++提供的多种的数据库访问技术如:ODBCAPI、MFCODBC、DAO、[25]OLEDB、ADO等。这些技术各有个的特点,它们提供了简单、灵活、访问速度快的开发技术,这些也正是VisualC++开发和其它的工具相比的优势。表2-1从能否访问非关系型数据库、访问速度、数据库服务器的执行开销、底层控制和功能/代码13 华中科技大学硕士学位论文五个方面比较了几种数据库访问技术的特点。表2-1三者相比较的关系ODBCMFCODBCDAOOLEDBADO能否访问非关否否否能能系型数据库访问速度慢慢不一定快快数据库服务器小一般大很小一般的执行开销底层控制能不能不能能不能功能/代码低一般高低高[26]ODBC的应用程序对数据库的操作不依赖任何DBMS,不直接与DBMS打交道,所有的数据库操作由对应的DBMS的ODBC驱动程序完成。也就是说,不论是FoxPro,Access还是Oracle数据库,均可用ODBCAPI进行访问。由此可见,ODBC的最大优点是能以统一的方式处理所有的关系型数据库。由于DAO可以访问ODBC数据源,在某些特定情况下可以获得更好的性能,特别是在访问MicrosoftJet(.MDB)数据库时,DAO可以替代ODBC。与ODBC相比,DAO还允许数据有效检查,允许用户说明表与表之间的关系。当然,DAO的出现并不意味着ODBC已经过时。如果用户的工作必须严格限于ODBC数据源,尤其是在开发Client/Server结构的应用程序时,用ODBC有较好的性能。ODBC处理SQL能力较强。处理非SQL数据库时,ADO(OLEDB)则具有非常明显的优势。对于访问量很大的数据库服务器以及要求访问速度较快的情况,应使用ADO(OLEDB)。如果需要可互操作的数据库部件,那么只有选择ADO(OLEDB)。14 华中科技大学硕士学位论文3数据源分析3.1多源数据集成在GIS工程里,最基础也是最重要的部分就是数据,尤其是空间数据,其获取占有很重要的地位。实际上,整个地理信息系统都是围绕空间数据的采集、加工、存储、分析和表现而展开。为了充分利用已有的数据,降低成本,实现信息资源的[27]共享,在GIS工程实施过程中,经常需要利用不同来源的各种空间数据。多源信[28]息的集成和融合问题自地理信息系统产生以来一直存在,并成为地球信息科学领域的一大热点问题。它的意义和必要性与地球信息本身的特征、采集手段特征、信[29]息处理平台或系统的特点紧密相联,它的应用和集成备受关注。3.1.1多源数据多源空间数据有广义和狭义之分。广义上讲,多源空间数据可以包括多数据来源、多数据格式、多时空数据、多比例尺(多精度)、多语义性几个层次。狭义上讲,多源空间数据主要是指数据格式的多种样式,包括不同数据源的不同格式及不同数据结构导致的数据存储格式的差异。总之,空间数据多源性的产生和表现主要[30]可以概括为以下5个层次。1.多语义性。GIS研究对象的多种类型特点决定了地理信息的多语义性。对于同一个地理信息单元,在现实世界中其几何特征是一致的,但是却对应着多种语义,如地理位置、海拔高度、气候等自然地理特征;同时也包括经济社会信息,如行政区界限、人口、产量等。不同GIS解决问题的侧重点也有所不同,因而会存在语义分异。2.多时空性和多尺度。GIS数据具有很强的时空特性。一个GIS中的数据源既有同一时间不同空间的数据系列;也有同一空间不同时间序列的数据。不仅如此,GIS会根据系统需要而采用不同尺度对地理空间进行表达,不同的观察尺度具有不同的比例尺和不同的精度。3.获取手段多源性。获取地理空间数据的方法有多种多样,包括来自现有系统、图表、遥感手段、GPS手段等。这些不同手段获得的数据其存储格式及提取和处理15 华中科技大学硕士学位论文手段都各不相同。4.存储格式多样性。GIS应用系统很长一段时间处于以具体项目为中心孤立发展状态中,很多GIS软件都有自己的数据格式。5.空间基准不一致。不同来源的空间数据有着不同的坐标参考体系和不同的投影方式,这使得GIS的数据共享问题变得尤为突出。3.1.2多源数据集成[31]数据、集成软件及规则是数据集成的三个必备基础条件。数据是集成的对象;软件是可以处理空间特征、属性特征及其之间关联的通用或专题GIS软件,或是为数据集成专门设计的软件,它们可以实现集成的大多数操作;集成规则是进行数据[32]集成的依据。实现多源数据集成的方式主要有三种:1.数据格式转换模式。格式转换模式是传统GIS数据集成方法。在这种模式下,其它数据格式经专门的数据转换程序进行格式转换后,复制到当前系统中的数据库或文件中,这是目前GIS系统数据集成的主要办法。这种模式主要存在的问题是:第一,由于缺乏对空间对象统一的描述方法,从而使得不同数据格式描述空间对象时采用的数据模型不同,因而转换后不能完全准确表达源数据的信息;第二,这种模式需要将数据统一起来,违背了数据分布和独立性的原则。2.数据互操作模式。数据互操作模式是OpenGISConsortium(OGC)制定的规范。OGC为数据互操作制定了统一的规范,从而使得一个系统同时支持不同的空间数据格式成为可能。根据OGC颁布的规范,可以把提供数据源的软件称为数据服务器(DataServers),把使用数据的软件称为数据客户(DataClients),数据客户使用某种数据的过程就是发出数据请求,由数据服务器提供服务的过程,其最终目的是使数据客户能读取任意数据服务器提供的空间数据。OGC规范逐渐成为一种国[33]际标准,将被越来越多的GIS软件以及研究者所接受和采纳。其主要特点是独立于具体平台,数据格式不需要公开,代表着数据共享技术的发展方向。数据互操作规范为多源数据集成带来了新的模式,但这一模式在应用中存在一定局限性。首先,为真正实现各种格式数据之间的互操作,需要每个每种格式的宿主软件都按照统一的规范实现数据访问接口,在一定时期内还不现实;其次,一个软件访问其它软件的数据格式时是通过数据服务器实现的,这个数据服务器实际上就是被访问数据格16 华中科技大学硕士学位论文式的宿主软件,也就是说,用户必须同时拥有这两个GIS软件,并且同时运行,才能完成数据互操作过程。3.直接数据访问模式。直接数据访问指在一个GIS软件中实现对其它软件数据格式的直接访问,用户可以使用单个GIS软件存取多种数据格式。直接数据访问不仅避免了频繁的数据转换,而且在一个GIS软件中访问某种软件的数据格式不要求用户拥有该数据格式的宿主软件,更不需要该软件运行。直接数据访问提供了一种更为经济实用的多源数据集成模式,目前使用直接数据访问模式实现多源数据集成的GIS软件主要有两个,即:Intergraph推出的GeoMedia系列软件和中国科学院地理信息产业发展中心研制的超图SuperMap。3.2SICAD/openSICAD/open是西门子SICAD地理信息系统产品系列新的标志产品,是多年来地理信息系统(GIS)领域的应用实践的结晶,并且融入了当今最先进的工作站、服务器和数据库技术,是市场上极少数在同类和不同类计算机网络环境下,支持分布式数据存储和分布式地理数据处理的系统之一。在SICAD/open系统中集成了各种各样的图形和工程应用,加上使用了高效的开发环境使该系统成为理想而完整的地理信息系统。SICAD/open是市场上少有的能够支持基于商业数据库系统之上的图形数据和属性数据的统一管理。主要的应用领域是网络信息系统(例如,供水、供气、供电和污水处理)城市信息系统(例如,土地登记、地形和环境)和市政信息系统(当地市政府和市政服务)。SICAD/OPEN特点的特点如下:1.多厂家硬件、多平台,具有开放的体系结构。2.支持广泛的数据类型(规格、数量、文字数据)3.数据存储在标准的RDBMS中(易于管理)4.非常高的数据安全性和数据整体性5.模块化设计6.定制的用户界面(屏幕菜单、数字化菜单)7.结构化目标数据模型(拓扑结构)8.丰富的制图功能和图形表示17 华中科技大学硕士学位论文3.3SICAD/open数据模型和SQD文件分析3.3.1SICAD/open基本图形元素SICAD/open的基本图形元素由点、线和面组成,点元素为空间点PG;线元素包括直线、多义线、曲线、圆和弧;面元素包括面、一般目标和SICAD-GLOBE目标。图3-1点、线和面的特征基本元素所对应的分组、表示符号如表3-1所示:表3-1基本数据元素表元素类型组元素类型表示符号备注PointPointPG空间点LinearLineLI直线PolylineLY多义线SplineSN曲线CircleKR圆ArcBO弧AreaAreaFL面GeneralobjectOBSICAD-GLOBEobjectOJ3.3.2SICAD/open图形元素数据结构SICAD/open的图形元素所采取的基本数据结构是每个图形元素除了存贮其几何信息外,还包括与其它元素相关的信息。18 华中科技大学硕士学位论文每个图形元素包含一个指向同类其它元素的指针。其结构链是:空间相关的不同元素用一个主-次关系的结构链相联结。一个主元素,包含指向相关的次元素的指针,即一个元素结构总有一个主元素,一个主元素有一个或多个子元素,一个子元素可能属于不同的主元素。元素结构是一个环结构,这就是主元素指向一个子元素,子元素指向下一个子元素等等,最后一个子元素指向主元素。反之亦然。图3-2示例了面的数据元素,该面有a、b、c、d和e五条边组成,这五条边又有点1、2、3、4和5连接组成。在图3-3中显示了面的结构元素特殊的结构链的数据结构。图3-2面图形元素Areaabcde123451图3-3图形元素结构链同时注意到在SICAD/open中要形成面的结构图要有闭合的边。其每一条边必须19 华中科技大学硕士学位论文和相邻的边在起点和终点通过共点的方式连接起来。因此,在下面图3-4和3-5中示例了的接近的点和重合的点却构不成面的情况,而在图3-6中示例了通过PG点元素所连接的线性元素,构成了闭合的面。图3-4相邻的点,边不闭合图3-5重合的点,边不闭合图3-6线性元素通过PG点元素:边闭合另外,在SICAD/open中文字数据,包括各种标注和文字说明,按关系型存储管20 华中科技大学硕士学位论文管理。3.3.3SICAD/open图形元素层次划分SICAD/open的数据结构逻辑地将空间相关的数据划分为256层,可以根据具体的需要在数据词典中定义不同图层来表示不同意义的数据。例如表3-2中所示,可以在1:2000地形图对应的层和1:500地形图分别定义不同的层;表3-3中所示根据不同的管径放置在不同的图层。表3-2地形图图库所在图层NoDescription1:2000地形图对应的层1:500地形图对应的层1建筑物层1911812建筑物层标志1921823道路层1931834地形层1941845规划道路层1951856地名层1961867测量标志层1971878其它层1981889植被层199189表3-3管网及设备点所在图层管径正常使用的管段正常使用的设备点废弃的管网15-80mm102016100-300mm112116600-600mm122216800mm以上1323160mm(临时)15251621 华中科技大学硕士学位论文3.3.4SICAD/open几何/拓扑模型典型的GIS数据模型有两种:拓扑关系数据模型和面向实体的数据模型。面向实体的数据模型是以独立、完整、具有地理意义的实体为基本单位对地理空间进行表达。在具体组织和存储时,可将实体的坐标数据和属性数据分别存放在文件系统[34]和关系数据库中,也可以将二者统一存放在关系数据库中。[35]拓扑关系数据模型以拓扑关系为基础组织和存储各个几何要素,其特点是以点、线、面间的拓扑连接关系为中心,它们的坐标存贮具有依赖关系。拓扑结构描述了地理要素之间的连通性和相邻性。通过存储某一要素相对于其它要素的位置信息,拓扑结构提供了许多种地理分析(如连通性、路径选择、相邻性)的基础。SICAD/open空间拓扑结构建立在标识的基础之上,即按照标识编号清单来存储。线和弧的标识定义了面和面的邻接性和包含性;起点和终点的标识定义了线和弧的连通性。3.3.4.1面拓扑结构面拓扑结构(如图3-7)是指面的包含关系和邻接关系。因为面的边界是由一系列线、弧或者线和弧组成的,线和弧都既有方向,又有它们唯一的标识ID号,通过比较线、弧或者线和弧的ID号就可以知道一个地图层中面状要素之间的包含关系和邻接关系。图3-7SICAD/open中的邻接和包含关系表示[36]在SICAD/open中,拓扑结构的建立过程如下:1.生成面(即面的参考点被生成),面的ID号就是它的参考ID号。参考点是SICAD/open用来存储面数据的标识,也是建面过程中必要的参数;它是用22 华中科技大学硕士学位论文SICAD/open的数字化软件在数字化过程中或者是其它图形格式向SICAD/open的图形格式转换的过程中自动生成的;它一定在面的内部。2.因为每个面都是由线、弧或者线和弧组成的,线和弧都有ID号,所以可以列出每个面的线、弧或者线和弧的ID号。3.将两个面的线、弧或者线和弧的ID号进行比较可以识别出面与面之间的空间拓扑关系,即包含关系和邻接关系。如图1中的4个面,通过对各个面的线或弧的ID号进行比较,可识别出面1和面2是相邻关系,面1和面4是包含关系。3.3.4.2连通关系结点是线或弧的端点,每条线或弧都有1个起始结点(从该点开始)和1个终止结点(到该点结束),这样就定义了线或弧的方向,即由起始点指向终止结点。由于每一条线或弧都有方向,并且可以找到在每个结点上相交会的线或弧,因此可以将一层中的线或弧构成一个有向网络,从而建立起线或弧之间的连通关系(如图3-8所示)。图3-8SICAD/open中的连通关系表示在SICAD/open中连通关系的建立如下:1.生成线或弧,并给线或弧赋予不同的ID号。2.线或弧是由结点连结而成的,每条线和弧的起始结点和终止结点可以从线和弧的属性表中检索。3.所有结点都有ID号,将它们结点的ID号进行比较,可识别哪些线或弧23 华中科技大学硕士学位论文具有公共结点(即具有相同的X、Y)。如图2中c、d、e、h具有公共结点3。4.由于点3是线c、d的终止结点,是线e、h的起始结点,所以很容易判断出连接c的线只可能是e、h,不可能为d,这样就建立起线或弧之间的连通关系。3.3.5SQD文件分析3.3.5.1SQD文件组成SQD文件作为与外界交换的数据文件,其内容与相关系统的数据作业流程和数据字典的具体定义有很强的相关性。本论文所分析的数据源是武汉市供水管网信息管理系统这一系统所导出的SQD文件。在此,为方便分析,给出不加描述的给出该系统的数据作业的流程如下所示:1:2000现状图扩展1:500现状图分层处理管线图、处理分离地形与导出线(*.li)与点(*.sy)文件符号与拓朴管线图转成带属性的SQD文件导出DXF文件地形图调入GIS系统,处理拓朴调入GIS系统存入背景地形与属性,存入管线数据库综合处理数据库GIS数据库图3-9数据作业流程在SICAD/openGIS系统中框选某一感兴趣区域导出数据,保存为SICAD/open的数据交换文件是SQD文件(SequentialDataFile)。导出SQD文件时根据选择是否导出地形背景,可以得到只有管线数据的SQD文件和包含管线和地形的SQD文件。SICAD/open所提供的SQD的文件格式是可读的ASCII的文本。为了分析其整体结构,在此先列出了一个比较完整的包含管线和地形的SQD文件的元素头。(以下的缩进是为了显示SQD文件在层次上面的关系,同时略去了每24 华中科技大学硕士学位论文一个段中的属性的各个字段)#TDSKSNUMBERI61000#TDSKID0T61001属性定义…ETYP=GVSTU=1ENUM=0EB=1TS=0BIT=00000001*GV段ETYP=GVSTU=1ENUM=174EB=1TS=1BIT=00060002ETYP=SYSTU=1ENUMI=0002000000017193EB=11DP=9e+006TS=1BIT=000E0002ETYP=PGSTU=2ENUMI=000200000001537bEB=11TS=1BIT=00060002ETYP=PASTU=2ENUMI=000200000001537dEB=11TS=1BIT=00060002ETYP=PASTU=2ENUMI=000200000001537cEB=11TS=1BIT=00060002ETYP=LTSTU=1ENUMI=000200000003dceeEB=11TS=1BIT=000E0002ETYP=PGSTU=2ENUMI=000200000003d864EB=11TS=1BIT=00060002ETYP=PGSTU=2ENUMI=000200000003d867EB=11TS=1BIT=00060002ETYP=PGSTU=2ENUMI=000200000003d866EB=11TS=1BIT=00060002ETYP=PGSTU=2ENUMI=000200000001537bEB=11TS=1BIT=00060002管网图ETYP=TXSTU=1ENUMI=000200000001537eEB=19DP=1e+007TS=1BIT=00060002形数据ETYP=TXSTU=1ENUMI=000200000001537fEB=18DP=1e+007TS=1BIT=00060002ETYP=LTSTU=1ENUMI=0002000000018fdaEB=11TS=1BIT=000E0002ETYP=PGSTU=2ENUMI=0002000000018b97EB=11TS=1BIT=00060002ETYP=PGSTU=2ENUMI=0002000000018b96EB=11TS=1BIT=00060002ETYP=SYSTU=1ENUMI=000200000001a29eEB=11DP=9e+006TS=1BIT=000E0002ETYP=PGSTU=2ENUMI=0002000000018b96EB=11TS=1BIT=00060002ETYP=PASTU=2ENUMI=0002000000018b9bEB=11TS=1BIT=00060002ETYP=PASTU=2ENUMI=0002000000018b9aEB=11TS=1BIT=00060002ETYP=GVSTU=1ENUM=14FDCEB=1TS=1BIT=00060002GV段ETYP=TXSTU=1ENUMI=000500000028e216EB=197DP=1e+007TS=1BIT=00060002ETYP=KRSTU=1ENUMI=000500000028e223EB=191TS=1BIT=00060002ETYP=LYSTU=1ENUMI=000500000028e261EB=191TS=1BIT=00060002地形图ETYP=PGSTU=2ENUMI=000500000028e260EB=191TS=1BIT=00060002形数据ETYP=PGSTU=2ENUMI=000500000028e224EB=191TS=1BIT=00060002ETYP=LISTU=1ENUMI=000500000042ed27EB=191TS=1BIT=00060002ETYP=PGSTU=2ENUMI=000500000042ed26EB=191TS=1BIT=00060002ETYP=PGSTU=2ENUMI=000500000042ed25EB=191TS=1BIT=00060002…根据SICAD/open的数据模型、系统操作流程和数据字典的相关定义,分析可得:数据的主要组成部分有两部分,分别是背景地形和管线,在文件的位置上有明显的差别,即分别位于文件的前半部分和后半部分,通过GV段分割。GV段为导出文件的整体的信息,包括所使用的操作系统、操作人员,导出文件名、导出时间和导出的区域的两个对角点等。SQD文件由成段的数据块组成。每一段数据表示一种类型的元素。具体的分析25 华中科技大学硕士学位论文一个SQD的数据元素,即分析SQD文件中某一具体的段,以一符号段为例:ETYP=SYSTU=1ENUMI=0002000000031ee5EB=13DP=9e+006TS=1BIT=000C0001元素头NAM"BNSY1"XX412033FE90624DD3YX4149C577778D4FDFWX437D99BBFX3ECCCCCD元素本身S0图形描述X1X412033FD85613592Y1X4149C57734CD09CFX2X412033FF9B636614Y2X4149C577BA4D95EFGPSX(30)X0000000000000000元素所对GPSY(30)X0000000000000000应设备的ID0(30)"050904C07"属性SNUMBER(30)70227ETYP=PGSTU=2ENUMI=0002000000031e0bEB=13TS=1BIT=00040001元素头XX412033FE90624DD3元素本身YX4149C577778D4FDF图形描述PKZ"G"PNR0HDETX0000000000000000元素属性HGELX0000000000000000从这一SICAD/open的数据元素段可以分析出:每一段的数据元素有元素头和元素参数构成。元素头主要有三部分组成,分别为:由数据库字典定义的元素类型,层号(图形所在层的索引数字)和显示的优先权(用户定义屏幕图形显示的优先权是一个浮点数)。元素参数是一个元素可供选择的描述属性,一个元素可以有一个或多个描述,分为元素图形描述和元素属性的描述两部分。如SY段的XX412033FE90624DD3和YX4149C577778D4FDF表示该元素的位置,属于图形信息;SNUMBER(30)表示该元素所对应设备的编号,属于属性信息。描述通常是每个参数一行,参数名和参数值之间用空格隔开。有两种特殊情况需要注意,一种是参数值包含空格,比如LY元素的NAM参数可能包含空格,此时参数值会用单引号括起来;另一种情况是元素FLD可能跨多行也有能为空。此外,X,Y等参数的值采用十六进制的形式,在进行文件解析时候要进行转化。26 华中科技大学硕士学位论文3.3.5.2SQD元素间组织结构SYSYSYPG2SYPG4PG1PG3图3-10管网的图形(部分)以管线和与符号设备为例来说明元素结构在SQD文件中的体现,从而进一步为从SQD文件中解析数据提供理论依据。上图中为SICAD/open中的一段管网图形,有四个设备相连接而成。该部分管网所对应的SQD文件元素头如下:ETYP=LTSTU=1ENUMI=000200000003dceeEB=11TS=1BIT=000E0002ETYP=PGSTU=2ENUMI=000200000003d864EB=11TS=1BIT=00060002PG1ETYP=PGSTU=2ENUMI=000200000003d867EB=11TS=1BIT=00060002PG2ETYP=PGSTU=2ENUMI=000200000003d866EB=11TS=1BIT=00060002PG3ETYP=PGSTU=2ENUMI=000200000001537bEB=11TS=1BIT=00060002PG4…ETYP=SYSTU=1ENUMI=000200000003f164EB=11DP=9e+006TS=1BIT=000E0002PG1ETYP=PGSTU=2ENUMI=000200000003d864EB=11TS=1BIT=00060002…ETYP=SYSTU=1ENUMI=000200000003df52EB=11DP=9e+006TS=1BIT=000E0002PG2ETYP=PGSTU=2ENUMI=000200000003d867EB=11TS=1BIT=00060002…ETYP=SYSTU=1ENUMI=000200000003df53EB=11DP=9e+006TS=1BIT=000E0002ETYP=PGSTU=2ENUMI=000200000003d866EB=11TS=1BIT=00060002PG3…ETYP=SYSTU=1ENUMI=0002000000017193EB=11DP=9e+006TS=1BIT=000E0002ETYP=PGSTU=2ENUMI=000200000001537bEB=11TS=1BIT=00060002PG4…依据SICAD/open的数据模型的表示方法,分析得到:元素的结构链通过在SQD文件中的其层次和嵌套的关系(其中STU是该元素所对应的等级)来表示。例如此主元素LT与四个次元素PG通过位置表示,四个次元素连接关系通过在文本中的位置反映,不能互换。STU表示该图形元素在层次结构中的层次编号,不同的图形元素有不同的层次编号,ENUMI表示唯一的图形元素码。因为其元素具有层次结构,高层主元素可以27 华中科技大学硕士学位论文共用低层子元素与一般GIS系统很不一样,所以要从层次的关系和公用的关系来分析其元素之间的组织关系。管线元素LT的等级为1,即STU=1。它下面紧跟着等级为2的四个PG点元素。四个设备符号SY的等级也为1,也分别跟随点PG元素;PG元素采用了公用的方式,该部分管网所对应的SICAD/open元素体系结构如图所示:LTSY1SY2SY3SY4STU=1STU=2PG1PG2PG3PG4图3-11SQD元素层次关系图3.3.6SQD解析文件程序接口所谓数据转换接口,实际上是一种能够实现两个以上系统间信息交换的程序或方法。数据转换接口的核心内容就是由其中一个系统(文件)读出信息,将信息写入另一个系统(文件)。在此处,SQD接口程序实现的主要功能是实现对SQD文件的解析,以较为直观的数据结构和存储方式来提供数据,达到为用户分析、处理和显示数据提供方便接口的目的。接口程序解析SICAD导出SQD文件用户程序SQD文件图3-12SQD解析文件程序接口接口程序的编写的过程如下:1.定义数据结构:首先要定义与SICAD/open中基本元素的数据模型有关的数据结构,不同的数据元素有着不同的特性和参数;2.编写数据元素的函数:从文件中解析不同数据类型,编写不同的接口函数来解析不同的结构元素类型;28 华中科技大学硕士学位论文3.分层区别:根据所导出的系统的数据词典的定义,管网根据管径的大小分层,地形图图形数据根据类别分层,区分出不同的层次。4.数据存储:定义存储数据的数据类型;完成了数据接口的定义,就采用如下的流程来分析SQD文件,来达到接口程序的目的。打开文件读取数据元素、分层分析层N层1层2LSYLTSYLTLISYLTLI⋯Y元元⋯元元元⋯元元元⋯元素素素素素素素素素数据的按分层和元素类型保存关闭文件图3-13SQD文件数据分析流程3.4DXF文件分析3.4.1AutoCADAutoCAD是美国Autodesk企业开发的一个交互式绘图软件,是用于二维及三维设计、绘图的系统工具,用户可以使用它来创建、浏览、管理、打印、输出、共享及准确复用富含信息的设计图形。AutoCAD作为一种通用绘图系统,图形编辑功能很强。系统按图层组织空间图29 华中科技大学硕士学位论文形数据,由多种绘图实体组成,其实体采用三维坐标描述,实体间不具备拓扑描述信息。虽然它与GIS都有参考系统,都能描述图形,但AutoCAD系统存储和处理的对象是能以图形表示的各种地理数据,即地理数据中可用定位图形来表示的部分;属性库功能弱,不能存储足够多的属性信息,地图图层和注记标注是基本的属性描[16]述;然更不具备GIS的空间分析和决策支持的能力。3.4.2AutoCAD的分层存储AutoCAD以图层(layer)来组织图形数据,不同类型的图素,如点、线、多边形等可以共层,一个DWG或DXF文件可以包含多个图层。而GIS软件,每个视图只包含一个专题,不同类型,不同专业的空间数据(特征feature),如点、线、多边形等,应分层存放,不能共存于同一个专题。因此,在将AutoCAD图形数据转化为GIS数据之前,要将它们按不同的专题重新组织。分层是数字化成图系统中数据组织的重要手段。设置不同图形层次是分类表示各种不同地物地貌要素、满足不同应用需求、甚至是输出不同图饰符号的手段,每个图形要素必须按定义赋予一定的图名(或图号),同一元素不能赋予一个以上的[37]图层名,每一图层只有一种要素。我国现行的《1:500,1:1000,1:2000地形图要素的分类与代码》将地图实体分为9大类:测量控制点、居民地和垣栅、工矿建筑物及其它设施、交通及附属设施、管线及附属设施、水系及附属设施、境界、地貌与土质、植被等,并对每一大类中包含的地图实体做了详细的规定。这种分层办法便于编码处理和图形数据的管理。3.4.3AutoCAD图块AutoCAD图块是一组图形实体的总称,被作为一个单独的、完整的对象来操作,AutoCAD为用户提供了创建图块的功能,可以将经常重复出现的几何形状制成图块,[38]并赋予唯一的图块名称。图块可以按给定的缩放系数和旋转角度插入到任一指定的位置,每次插入只需记录图块的名称、比例和角度等基本信息,省去了图形几何信息的存储空间。如果需要修改某个符号,则可以直接修改图块,AutoCAD将会自[39]动更新图中插入的所有该图块符号。AutoCAD软件将图块以库的形式存放在绘图文件中,可以被多个文件载入,并提供了图块的编辑和浏览界面。AutoCAD图块的这些特点和GIS的点符号极为相似,30 华中科技大学硕士学位论文因此可以认为:AutoCAD里的图块就是GIS环境里的点符号。在将AutoCAD数据[40]转为GIS数据时,传统的数据转换针对AutoCAD图块符号通常有2种处理方式(如图3-14所示):图3-14图块转换方法方法一只获取点的空间位置信息,忽略点的图块图形信息;方法二忽略点的空间位置信息,将每个点的图块几何信息解析成简单几何图形要素进行存储。显然,这两种处理方式都存在不足:前者忽略了点要素的符号信息;而后者虽然表面上完全保留了AutoCAD的图块符号几何图形,但这种数据转换方式得到的数据已根本不能称作GIS数据。因为首先它不仅丢失了原图层的要素信息,点要素已被图块分解的几何要素取代,其次对图块符号的共享也只是图形的共享,新的数据文件中这些分解得到的图形已不再是一个符号整体,而是一个个独立的几何单元。可见,这种处理方式得到的数据与所需要的GIS数据已相去甚远。由于AutoCAD不同的图块采用不同的名称,在本文中利用记录AutoCAD图块的名称和方法一中的点的空间位置的信息来解析AutoCAD图块,较好的识别了图块图形所代表的该地理要素的类别和信息,同时点的空间位置表示其图形信息也得以保存,较好的实现了对AutoCAD图块的解析。3.4.4DXF文件的结构的介绍DXF(DrawingInterchangeFormat,图形交换格式)是AutoCAD图形文件中所包含的全部信息的标记数据的一种表示方法,是AutoCAD图形文件的ASCII或二进制文件格式,可用于在AutoCAD和其它图形应用程序之间输入、输出与交换图形文31 华中科技大学硕士学位论文件。DXF格式是AutoCAD图形文件中所包含的全部信息的标记数据的一种表示方法,本质上是由成对的组码和与组码关联的值组成,组码的值表明了其后数据元素的类型,也指出了数据元素对于给定对象或记录类型的含义。典型的DXF文件有六个节组成:标题节、类节、表节、块节、实体节和对象节。实体节中定义了各个对象实体,包括点、三维多义线、多义线、平行线、圆、圆弧、椭圆、填充、块、文本、图像等;其基本数据包括对象的名称、句柄、图层名、颜色值、线型名、线型比例、线宽、厚度、扩展数据等属性信息以及对象的坐标信息,实体节是转换的核心部分。在DXF文件中,每个组码和值都各占一行。每个段都以一个后跟字符串SECTION的组码0开始,其后是组码2和表示该段名称的字符串(例如,HEADER)。每个段都由定义其元素的组码和值组成。每个段都以一个后跟字符串ENDSEC的组码0结束。DXF文件完整的结构如下(从小图形中生成DXF文件,打印出来并在阅读本文时参考,可能会有助于用户理解本文的内容):1.HEADER段。包含有关图形的基本信息。它由AutoCAD数据库版本号和一些系统变量组成。每个参数都包含一个变量名称及其关联的值。2.CLASSES段。包含应用程序定义的类的信息,这些类的实例出现在数据库的BLOCKS、ENTITIES和OBJECTS段中。类定义在类的层次结构中是固定不变的。3.TABLES段。包含以下符号表的定义:a)APPID(应用程序标识表)b)BLOCK_RECORD(块参照表)c)DIMSTYLE(标注样式表)d)LAYER(图层表)e)LTYPE(线型表)f)STYLE(文字样式表)g)UCS(用户坐标系表)h)VIEW(视图表)32 华中科技大学硕士学位论文i)VPORT(视口配置表)4.BLOCKS段。包含构成图形中每个块参照的块定义和图形图元。5.ENTITIES段。包含图形中的图形对象(图元),其中包括块参照(插入图元)。6.OBJECTS段。包含图形中的非图形对象。除图元、符号表记录以及符号表以外的所有对象都存储在此段。OBJECTS段中的条目样例是包含多线样式和组的词典。7.THUMBNAILIMAGE段。包含图形的预览图像数据。此段为可选。3.4.5AutoCAD的编程接口目前AutoCAD作为一种计算机辅助制图和设计软件而广泛应用于许多行业,它的对外交换格式DXF已成为大多数制图及GIS软件进行数据交换的事实上的标准格式之一。因此,实现基于DXF格式的空间数据转换对于自主版权的GIS软件来说,无论从数据共享或软件集成的角度都具有重要意义。接口程序解析AUTOCAD导出DXF文件用户程序DXF文件3-14程序接口根据具体的应用需求和具体的目的,可以编写通用的DXF的解析程序和专用的DXF的解析接口。在本论文研究中只需要从管线的设计图中得到新装管线的信息,所以可以设计适合本系统的DXF文件的解析程序。此DXF文件接口程序主要应用于处理新装管线的管网设计的工程图,对于读取的数据,只需要保存有用的信息,对于文件中所包含的图形版本、图形标准设置等默认设置,程序中可以忽略,达到减少代码量和对所有信息解析通用的解析程序达到裁剪的目的。根据上文中对DXF文件的格式的详细的分析,以及AutoCAD系统利用分层来保存数据的特点,就此来实现DXF向应用程序的接口。采用和对SQD解析相同的思想来编程实现对新装管线的解析。在CAD中,分层处理,替换图中的非标准图块,手工来编辑管线的连接,然后,采用与SQD处理的流程相似,首先要定义数据结构和存储结构,定义程序中与用户程序的接口,文33 华中科技大学硕士学位论文件的读取,数据的处理和保存等。打开文件读取ENTITIES段文件末尾退出循环读取组码管线LINE管线POLYLINE设备INSERT图3-15解析流程34 华中科技大学硕士学位论文4三维管网数据库系统设计及实现4.1系统总体设计4.1.1系统结构论文对所描述系统进行了实现,分析处理了SQD和DXF两种数据源,建立基于Oracle数据库管理系统的数据库,对武汉市地下管网系统的重要区域和关键地段进行三维重建和图形显示,以利于用户对地下管网系统有更加逼真,直观的认识和理解,便于今后的管网设计、改造和维护。[41]本系统采用客户/服务器(C/S)计算机应用解决方案。本系统在服务器端采用两个在功能上相互独立的服务器,即预处理服务器和应用服务器。这样系统就形成了两个子系统,即:预处理子系统和实时显示子系统,其中每个子系统都是采用客户端/服务器的三层的体系架构,预处理子系统的架构为:客户端/预处理服务器/三维显示系统数据库,主要负责管网入库的处理;实时显示子系统的架构为:客户端/应用服务器/三维显示系统数据库主要负责用户的对数据的查看、修改等功能。如图4-1所示:FTP文件服务器三维管网数据库GIS数据库应用服务器预处理服务器客户端1客户端2客户端3客户端N图4-1系统组成35 华中科技大学硕士学位论文4.1.2系统功能模块如图2所示,整个系统主要由客户端,服务器和数据库三部分组成。区域信息描述管网数据修改数据的查看与修该用户权限管理数据显示模块管网显示客户端地形解析模块二维地形图显示数据传输模块XML的生成和解析DXF文件解析Winsock系应用服务器器统SQD解析模块SQD管网数据上传预处理服务器FTP文件系统管理SQD文件的下载FTP服务器数据库访问接口ADO数据库维护数据库备份数据库PL/SQL包与函数数据库恢复角色与权限的设置图4-2系统体系结构[42][43,44]客户端包括使用Boost管网拓扑构建、VTK三维管网显示、查询、管网维护和事故处理模块;服务器端包括数据库部分和应用服务器,预处理服务器与FTP;主要实现网络连接控制,数据封装,数据库访问,文件服务等。系统的界面截图如下:36 华中科技大学硕士学位论文图4-3系统界面4.1.2开发工具与系统平台1.系统开发工具1)系统开发工具为:VisualC++6.0英文版+SP6+VisualAssistX2)数据库管理平台为:Oracle9i3)数据库辅助开发工具:PL/SQLDeveloper4)预处理服务器所需的FTP服务器工具为:Serv-U6.32.系统平台:1)服务器端操作系统:服务器端:服务器端的典型配置是超线程双CPUP42.8G,2G内存,2块36.4GSCSI硬盘2)客户端操作系统:客户端的典型配置是内存512M以上,显卡为TNT2以上(32M以上显存),CPU为P41G以上4.2各个模块的介绍4.2.1数据库设计数据库是信息系统的基础和关键,数据库的设计关系到整个信息系统的成败。面[45]向系统整体功能进行数据编码和数据库设计是系统稳定、高效运行的前提。根据系统的功能、信息系统和数据库建设的基本要求以及城市地下管网数据的固有的特37 华中科技大学硕士学位论文[46]点:1.地下管线数据由于其隐蔽性,增加了时间特性,因此要达到区分新装管线和已有管线。2.数据分布的非均匀性城市地下管网数据是一个信息在空间分布上是极不均匀的系统,建成区内密度大,从中心区向城市边缘急剧减小。3.地下管线空间数据的拓扑关系复杂。4.管线数据和属性的强关联性如对管线的数据进行处理时,管线线段和特征点的联系非常紧密,不仅仅是地理位置上的相互连接,还有属性的相互关联。因此,在建立综合管网数据库的过程中,既要遵守和应用通用的数据库原理及方法,又必须采用一些特殊的数据组织方式来解决地理要素之间的复杂关系以及地理要素和属性数据之间的关联问题。数据库进行详细设计过程中采用本章第二节介绍的数据库设计的通用方法,经过需求分析,概念数据库设计、逻辑数据库设计及物理数据库设计各个阶段,并结合关系数据库设计理论,对状态检修数据进行了严格的规范化设计。本文限于篇幅,详细设计过程不再赘述,下面对设计过程中的一些难点及重点做详细的说明,并给出最终的设计结果。4.2.1.1需求分析阶段本系统为供水管网的各个专业信息要素设计了多个属性数据项,其设计原则是选择:1.反映管段的类型、规格、性质、作用和建设方面的属性。2.反映管网要素间的相关关系和结构关系的属性。3.反映各种附件的类型、规格、性质、作用的属性。4.反映各类设施的取水供水及服务能力的属性。4.2.1.2概念设计阶段根据这样的应用需求,对三维管网显示系统所涉及的管段,管网要素,各种附件和各类设施等数据要素进行详细的设计,建立反映管线和与附属设备连接的关系实现管线数据的组织,同时保存了管段和各类设施的属性。系统的数据库表如表4-1所示。38 华中科技大学硕士学位论文表4-1数据库结构类别名称属性备注区域信区域描述区域编号、区域描述描述区域的信息息数据管网图管段区域编号、管线编号、起点和与管段三维、二维形数据终点所连接设备编号、管径、显示有关的所有属材质等性设备区域编号、设备编码、设备的点的位置信息,为位置、设备类型编号管网图形的显示提供数据上下翻区域编号、管段的编号、位置反映管段上的上下等翻的信息各类设管段属性查询码、编码、型号、型式、反映各种设备的属施属性消防栓属性驱动种类、制造厂家、安装地性,由于各种类型水表属性址、普查点号、坐标x(GPS)、的设备的特性不同阀门属性坐标y(GPS)、地面标高、管顶其具体的属性字段分支节点属性标高、埋深、安装日期、安装也不同,各类要素…单位、废弃时间、是否围压、的具体属性及详检修日期、验收人员、开关状细情况可以参考态、工作状态、所在路巷名、属性数据字典行政区域、管辖单位、图形元素码、综合单价、口径等4.2.1.3逻辑设计阶段逻辑设计是将概念设计阶段所得到的以概念信息模型表示、与DBMS无关的数据模式转换成以DBMS的逻辑数据模型表示的逻辑(概念)模式。数据库逻辑设计的任务就是得到与Oracle9iDBMS有关的逻辑数据模型。如图4-6所示:39 华中科技大学硕士学位论文图4-4逻辑数据模型在逻辑设计阶段,需要完成键的详细定义、完整性约束、保证数据的一致性等的详细定义。1.键的定义:键的定义在数据库设计阶段尤为重要,键可以最大限度地保证数据库的完整性。管段的编号和设备们直接使用来自SQD文件中解析所得到的编号,这些编号在SICAD/open系统中有Oracle数据库所产生,是唯一的,可以作为主键。然而,其它的如用户编码,利用Oracle的序列和触发器,即在插入数据时由Oracle的序列来产生唯一编号,利用插入的触发事件将生成编号作为主键插入的数据库当中。2.完整性约束:管段之间利用共同的设备点来反映连接关系,在管段表中采用了使用设备的编号记录其起点和终点,所以要保证管段的起点和终点在设备表中都存在。3.数据一致性控制:上下翻作为管段上的特殊设备,采用了实际坐标记录其位40 华中科技大学硕士学位论文置,当管段的起始点的位置发生变化时,为保证仍能反映其形状,本系统中利用PL/SQL编写过程、使用Oracle对象临时表和触发器来保证数据的一致性,即当有管段的起点或者终点的位置发生变化时,检查该管段上是否有上下翻这一特殊结构,如有,要重新计算其在管段上的位置,以保证准确的反映实际图形的变化。4.2.1.4物理设计阶段在三维管网数据库系统的物理设计阶段,要为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。根据DBMS特点和处理的需要,进行物理存储安排,设计索引,形成数据库内模式。1.存储安排:管网数据量大,要和合理的规划表空间和存储容量。2.设计索引:根据用户需求和数据的处理特点,要为管段编号和设备编号建立索引,加快数据的检索速度。4.2.1.5数据库实施阶段根据逻辑设计和物理设计的结果,利用本系统中采用的Oracle9i数据库管理系统和PL/SQL语言来创建各种数据库对象,如表与索引,序列,触发器,PL/SQL编写的过程与函数等。1.表的创建(管段表为例):createtableWHW2.PIPE_TAB(REGIONNUMBERVARCHAR2(30)notnull,REGIONDESCRIPTIONVARCHAR2(30),PIPENUMBERVARCHAR2(32)notnull,STARTNUMBERVARCHAR2(32)notnull,ENDNUMBERVARCHAR2(32)notnull,CONNECTMODEINTEGER,DIA1NUMBER(10),MATVARCHAR2(20),)2.索引(管段表的索引为例,即为区域编号和管段编号建立索引):createindexPIPE_NO_INDEXonPIPE_TAB(REGIONNUMBER,PIPENUMBER)tablespacewhw41 华中科技大学硕士学位论文pctfree10initrans2maxtrans255storage(initial12Knext12Kminextents1maxextents249pctincrease50);3.序列(用户编号为例,即产生用户的唯一编号):createsequenceSEQ_USER_IDminvalue1maxvalue999999999999999999999999999startwith1incrementby1nocache;4.触发器(上下翻的before触发器,即将有关的管段的存入到临时表中):createorreplacetriggertrg_point_upanddown_beforebeforeupdateofpointzonpoint_tabforeachrowdeclarecursordataisselect*frompipe_tabwhereregionnumber=:old.regionnumberand(pipe_tab.startnumber=:old.dtype_snumberorpipe_tab.endnumber=:old.dtype_snumber);beginforcurindataloopinsertintotem_pipenumber(regionnumber,pipenumber,startnumber,endnumber)values(cur.regionnumber,cur.pipenumber,cur.startnumber,cur.endnumber);endloop;endtrg_point_upanddown;42 华中科技大学硕士学位论文4.2.2数据的安全性数据的安全性(存取控制、可恢复性)是指数据不被非法使用、在意外事件中不被破坏或丢失,这分别是存取控制和可恢复性的研究内容。存取控制的通常做法是为不同用户设置不同的数据存取特权并设立视图机制,使得每个用户只能访问到允许它访问的数据。可恢复性是指在意外事件(软件或硬件方面)破坏了当前数据库状态后,系统有能力恢复数据库,使损失减少到最低限度。数据恢复采用的方法通常是建立日志和经常性地做数据库的备份。4.2.2.1用户分组、角色和权限管理基于角色的访问控制是Oracle等大型数据库提供的一种新型的数据库权限管理[47]机制。它的基本思想就是根据组织视图中不同的职能岗位划分角色,资源访问权限被封装在角色中,用户被指派到角色,通过角色间接访问资源。种机制的特点是对信息资源的访问控制能更好地适应部门、企业的安全策略,能灵活表达和实现组织的安全政策,使存取管理位于组织视图这一较高抽象级上。图4-5用户、角色、权限三者之间的关系在本系统中实现了基于角色的权限的管理机制。根据管网数据库的特点,可以将不同的用户划分为三类,授予不同的权限。第一类是数据库登录权限,授予此类用户进行数据查询、查阅部分数据库信息,但无权改动数据库的任何数据。第二类是资源管理权限,除了拥有第一类用户的权限外,可在允许的权限内创建数据库索引表,可修改、查询数据库相关资源,可将自己拥有的权限授予其它用户,可申请审计。第三类是数据库管理员权限,此类用户具有管理数据库资源的一切权限,可访问任何用户的任何数据,可授予或回收用户的各种权限,完成数据库的重装、备43 华中科技大学硕士学位论文份、修复,进行全系统的审计工作。此类用户的工作是谨慎和全局性的工作。4.2.2.2模块权限模块权限,每个登录用户对所有模块的操作都受一定的限制,用户登录时从权限表中读出用户的权限的级别,进而对用户权限进行审核,对于没有授权的模块没有相应的操作,在客户端的应用程序界面上会显示禁用的菜单或按钮。在用户权限管理方面,数据库中除了使用用户、角色和权限的管理方法外,还设计了用户密码表和用户权限表,其逻辑数据模型如下:图4-6用户管理的数据逻辑模型同时,方便用户的操作,在客户端还是分级的模块权限管理方法,即用户权限大的用户的可以管理用户权限小的用户,也可以创建比自己权限小的用户。图4-7用户权限管理对话框4.2.2.2备份和恢复数据库的备份是主要的数据保护措施。当计算机的软硬件发生故障时,利用备份进行数据库恢复,以恢复破坏的数据库文件或控制文件或其它文件。关于Oracle44 华中科技大学硕士学位论文[48]数据库的备份,有3种标准办法:导出/导入(Export/Import)、冷备份、热备份。导出/导入是一种逻辑备份,冷备份和热备份是物理备份。1.导出/导入:包括简单导出/导入和增量导出/导入两种方式。在简单导出/导入方式中,Oracle支持3种类型的输出:表方式(T方式),将指定表的数据导出;用户方式(U方式),将指定用户的所有对象及数据导出;全库方式(Full方式),将数据库中的所有对象导出。增量导出/导入是一种常用的数据备份方法,它只能对整个数据库来实施,并且必须作为SYSTEM来导出。增量导出包括3个类型:1)“完全”增量导出(Complete):即备份整个数据库;2)“增量型”增量导出:备份上一次备份后改变的数据;3)“累计型”增量导出(Cumulative):导出自上次“完全”导出之后数据库中变化了的信息。2.冷备份:冷备份发生在数据库已经正常关闭的情况下,当正常关闭时会提供给一个完整的数据库。冷备份是将关键性文件拷贝到另外位置的一种说法。对于备份Oracle信息而言,冷备份是最快和最安全的方法。如果可能的话(主要看效率),应将信息备份到磁盘上,然后启动数据库(使用户可以工作)并将所备份的信息拷贝到磁带上(拷贝的同时,数据库也可以工作)。冷备份中必须拷贝的文件包括所有数据文件、所有控制文件、所有联机REDOLOG文件和Init.ora文件(可选)。3.热备份:热备份是在数据库运行的情况下,采用archivelogmode方式备份数据的方法,可在表空间或数据文件级备份,备份时间短。热备份的命令文件由3部分组成。1)数据文件:设置表空间为备份状态;备份表空间的数据文件;恢复表空间为正常状态;2)备份归档log文件:临时停止归档进程;log下那些在archiveredolog目标目录中的文件;重新启动archive进程;备份归档的redolog文件;3)用alterdatabasebackupcontrolfile命令来备份拷贝文件。4.2.3数据存取模块利用ADO的应用程序接口,设计了数据库的访问的类,对数据提供了良好的封45 华中科技大学硕士学位论文装,为其它的模块的调用提供了方便,类的其主要的功能:连接数据库,关闭链接,修改记录,删除记录,更新记录等。[49]ADO模型包括7个对象,主要对象有3个:Connection、Command和Recordset,可以被独立创建和释放。此外,还包括其它4个集合对象:Fields、Errors、Parameters和Properties。一个典型的ADO应用程序使用Connection对象建立与数据源的连接,然后用一个Command对象给出对数据库操作的命令,如插入数据或者查询数据等,而Recordset用于对结果集进行维护或者浏览等操作。其中Command命令所使用的语言与低层所对应的OLEDB数据源有关,不同的数据源可以使用不同的命令语言,对于关系数据库,通常使用SQL作为命令语言。在VC++中使用ADO开发数据库应用程序一般包括以下步骤:1.初始化COM库,引入ADO库定义文件。2.用Connection对象连接数据库。3.利用建立好的连接,通过Connection、Command对象执行SQL命令,或利用Recordset对象取得结果记录集进行处理、查询。4.使用完后关闭连接,释放对象所占的资源。本模块的核心代码是CDBAccess类,该类的主要函数和变量定义如下所示:classAFX_EXT_CLASSCDBAccess{public:…boolConnectToDB(enuDBTYPEdbType,CStringDBSourceName,CStringUserID,CStringPassword);//连接三维系统数据库boolCloseConnection();//关闭对三维系统数据库的连接voidCloseRecordset();//关闭从三维系统数据库中获取的数据集boolExecuteCommand(CStringsSQL,int&nRecordsAffected);//执行指定的SQL语句intQueryRecords(CStringsTableName,CStringsFieldNames[],intnFieldsNum,CStringsCondition,_RecordsetPtr&pRecordset);//查找记录,返回结果数据集intAddRecords(CStringsTableName,CStringsFieldNamesList,CStringsFieldValuesList);//向三维系统数据库添加记录intDelRecords(CStringsTableName,CStringsCondition);//删除记录intModifyRecords(CStringsTableName,CStringsModification,CStringsCondition);private:46 华中科技大学硕士学位论文_ConnectionPtrm_pConnection;//对三维数据库的连接_RecordsetPtrm_pRecordset;//获取的结果数据集_CommandPtrm_pCommand;//用来执行SQL语句的ADO命令对象};4.2.4SQD文件解析模块本模块对SICAD/open系统的文本格式的交换文件——SQD文件进行分析解析,获得重要区域的图形数据,并且根据SQD文件中的数据描述从GIS数据库中活得相应的设备和管段的数据并入库到三维管网数据中。在第三章中对SQD这一数据交换文件的组成和结构做了详细的描述,并且对数据访问接口的编写都做了详细的介绍。在这一模块中主要介绍从SQD文件到数据库入库的全过程以及在本模块设计的过程中的思想。在本系统中管线图形数据和管网相应的附属设备是最为关注的内容,所以在分析SQD文件时,主要分析两方面的内容,第一方面是管网的图形数据,即管线的起始点和管网附属设备之间的连接关系;第二方面是各种设备类型的区别和在SICAD/open数据库中的序列编号。设备类型的区分为在数据库中选择不同的属性表提供了依据,而序列编号为该属性表中具体数据的对应提供了最为快速的查找依据。在下图中给出SQD从生成到解析入库的全过程:获得数据1.导出GIS数据库SICAD系统SQD4.获取属性数据文件5.数据入库三维管网数据库预处理服务器3.解析SQD文件2.上传SQD文件FTP文件服务器图4-8SQD数据入库流程47 华中科技大学硕士学位论文1.导出SQD文件:首先利用SICAD中导出某一感兴趣区域的SQD文件,保存到本地的磁盘中;2.上传文件SQD:利用三维管网显示系统的客户端选择所导出文件上传到FTP的文件服务器,并输入相关的区域描述和编号;3.解析SQD文件的解析:SQD文件的解析中涉及以下三个方面:1)解析文件,保存关键信息:预处理服务器会自动选择当前上传的这一文件解析,得到该文件所对应的管网数据和设备数据以及类型和编号;要保存管线元素LT以及其所对应的点元素PG,保存所有设备元素SY和此设备所对应的点元素PG;2)管线截取:在利用SICAD/open客户端导出的SQD文件时,SICAD/open江与框选区域相交的管线进行了整条管线的保存,所以会有某些管线过长超出框选区域的范围过大,使得所感兴趣区域变得相对无用信息增多,所以要对管线截取,使得所有管线在所框选区域之内;3)管线和设备拓扑关系的分析:第三章的分析所知,管段和设备之间通过共点的方式来保存它们之间的连接关系,即拓扑关系。循环查找建立管线和设备之间的拓扑关系。4.获取属性数据:根据管线的数据表中的设备和管段的编号去SICAD/open中的属性数据库中读出各类型设备的属性,包括管段、阀门、消防栓、分支节点、堵头封板、排气阀、排水阀、测流点、测压点、水表等21种设备。5.管线入库,分为管网图形数据和属性数据入库:1)管线的图形的数据入库:根据SQD文件中的对管线和设备描述的图形信息,加上在上一步中拓扑关系的分析,就可以使用关系表来保存图形信息,并保存了关键的与三维管线显示有关的管线的材质和显示不同设备的设备类别及各自编号。通过ADO数据库访问接口完成图形数据的入库;2)管线的属性的数据库入库:根据从4中所获得的此图形管网中所有的管段和设备的数据,通过ADO数据库访问接口完成属性数据的入库。在整个数据流程中,注意以下问题:根据对SICAD/open元素结构和SQD文件组成和结构的分析,知道一个元素的开始条件。因为SQD元素具有层次结构,一个元素的开始条件为ETYP开头的行,48 华中科技大学硕士学位论文结束条件为遇到ETYP开头的行且STU比它小或相等,或者是遇到文件结束符。根据这样的特点就为解析SQD文件程序的编写提供了区别不同元素的方法。另一个需要注意的地方是元素头之外的参数的元素描述,通常是每个参数一行,参数名和参数值之间用空格隔开。参数值都是十六进制的double或者float类型的,在编程处理过程中,变成字节数组然后强制类型转换为double或float,这样就完成了数据表示方法的转化。4.2.5DXF文件解析模块本模块对AUTOCAD系统的文本格式的交换文件——DXF文件进行分析解析,获得新装管网的图形数据。由于通过DXF解析得到新装管线与SQD解析得到管线和设备数据的过程基本相似,所以在这里只给出其处理流程上不同之处。1.在利用AutoCAD导出数据之前,要利用AutoCAD软件分离管线,在备份原图后,将除了新装管线层、新装管线设施层以外的所有图层删除。图4-9管线分层前后(局部)2.检查所使用该图中的Block是否使用了标准的块结构(数据词典中定义的Block),如果没有使用则使用标准块来替换,即需修正的图块包括水表、阀门、消火栓等管线附属设施,用标准图块替换原图中部分未按制图标准形成的管线设施。3.为了使CAD的新装管网图导入本系统时能有拓扑关系,必须先在CAD中手工来编辑管线的连接,在CAD管网图中管线之间、管线与设备点之间的拓扑连接是通过共点来实现:1)管线拐点处拓扑的连接在管线的拐点、转折点,两条管线之间的拓扑连接方法很简单:只需移动其中49 华中科技大学硕士学位论文一条线的端点到另条线的端点上,让它们重合在一起就可以。图4-10管线连接前后2)设备点(如阀门、消防栓等)的位置,管线与设备点之间拓扑的连接某些情况下,设备点(如阀门)大部分是浮在管线上,这种情况要先在设备点的位置打断管线,然后移动打断管线的两个端点到设备点的位置点上,让它们重合在一起。如果在设备点处,管线已经断开,则只需移动管线的两个端点到设备点的位置点上,让它们重合在一起就可以。图4-11设备点拓扑连接前后3)三通点,管线拓扑的连接在三通点的位置如果有三条管线连接,只要它们的端点能重合在一起(三条线50 华中科技大学硕士学位论文的端点及三通点的位置点重合),则它们就具有拓扑连接关系;如果三通点的位置只有两条线相交,由于没有端点重合,则这两条管线之间就没有拓扑连接关系,如,要建立它们的拓扑关系,必须先在交点处打断主线,然后移动三条线的端点让它们重合在一起。4.与SICAD/open不同,AutoCAD作为通用的绘图软件,不同的管段之间的连接关系的表示仅仅通过位置上的重叠来表示,不同的设备也是通过不同的名称和形状的块的插入来表示,要分析管段和设备之间的连接关系只能通过其位置的关系来判断,所以可以通过比较管线端点的坐标和块的插入的位置来判断、确定拓扑关系。5.由于新装管线的导入是要作为设计中实验数据来分析与旧管线碰撞和缓冲区的位置关系,所以可暂不考虑其属性数据。如符合设计规范,可以利用属性对话框来录入属性数据。其处理流程如下:AutoCAD客户端FTP文件服务器预处理服务器三维管网数据库应用服务器图4-12处理流程图4.2.6数据封装模块[50]扩展标记语言XML(eXtensibleMarkupLanguage),因为XML是W3C为适应WWW的应用,将SGML(TheStandardGeneralizedMarkupLanguage)标准进行简化形成的标记语言。它作为一种可用来制定具体应用语言的元语言,既具有强大的自我描述能力,又具有适合网络应用的可扩展性。XML继承了SGML具有的可扩展性,结构性及可以校验性,与HTML语言相[51]比,具有明显的优势:在扩展方面,XML利用文档类型声明DTD(DocumentTypeDescription)使用户能过根据需要,自行定义新的标识及属性名,以便更好地从语义上修饰数据;在结构性方面,XML的文件结构嵌套可以复杂到任意程度,能表示面51 华中科技大学硕士学位论文向对象的等级层次;在可校验性方面,XML文件可以包括一个语法描述,使应用程序可以对此文件进行结构确认;在链接能力方面,XML可以定义双向链接、多目标链接、扩展链接和两个文档间的链接;另外,XML还具有易于处理,易于编辑和可格式化等突出特点所以XML可广泛应用于Internet、出版业、电子商务等当今热门的市场每个行业的组织和开发人员都可用XML创建它们自己的标示语言,用于它们在各自的领域中实现信息的交换。在应用服务器与客户端之间传输的数据必须以一定的格式封装,才能方便接收方解析和获取其中信息。为了保证通用性和可操控性,本模块中采取了符合XML规范的格式来封装数据。用XML规范来封装数据,必须含义明确,解析方便,才能有利于应用服务器和客户端之间的数据交换。为此,在本模块中,把XML数据包分成三种类型:请求包、响应包和反馈包。其中,请求包用来向应用服务器发送请求,要求应用服务器对数据库进行数据存取;响应包是在服务器端收到请求包后,根据从请求包中提取的信息,对数据库进行存取,并将取得的数据用XML数据包的格式返回给客户端,每个响应包最大数据量不大于8K字节,以满足Winsock控件发送的要求;当响应数据的数据量太大时,一次请求包将对应有多个响应包,此时必须用到反馈包,反馈包是客户端发送给服务器端的XML数据包,它用于通知服务器端某个编号的响应包已被客户端收到,可以继续向客户端发送下一个编号的响应包。如果服务器端没有收到反馈包,则不会发送下一个编号的响应包。请求包格式如下:……响应包格式如下:……反馈包格式如下:52 华中科技大学硕士学位论文其中,****代表要填充的值,省略号表示还有Xml属性或Xml子元素在本系统中使用CMarkup来生成和解析基于特定要求的XML文件。CMarkup基于“压缩”文档对象模型(EDOM:EncapsulatedDocumentObjectModel),它的一套XML处理方法和产生的效果与DOM(DocumentObjectMode)是一样的。但是整个DOM有无数的对象类型,而EDOM只定义了一个对象:XML文档。CMarkup封装了XML文档文本、结构和当前位置。它提供了增加元素、导航和得到元素属性和数据的所有方法。4.2.7网络通讯和数据传输模块Serv-U是一种优秀的FTP(FileTransferProtocol)服务器端软件,支持XP/NT/2K等全Windows系列。其优势很多,比如可以设定多个FTP服务器、限定登录用户的权限、限定登录主目录及空间大小等。它具有非常完备的安全特性,支持SSLFTP传输,支持在多个Serv-U和FTP客户端通过SSL加密连接保护数据安全等。Serv-U的诸多优良特性,使其拥有大量的用户,其应用遍及到各个行业。本系统采用Serv-U作为FTP服务器。预处理服务器在对SQD文件进行解析之前需要先接收从客户端上传的SQD文件,应用服务器在从数据库中获取数据之后,需要将这些数据传送到客户端。网络通讯和数据传输模块就是要完成在预处理服务器和客户端之间、应用服务器和客户端之间传送数据的功能。本模块利用Ftp协议将SQD文件从客户端传送到预处理服务器。首先,在预处理服务器端安装一个FTP上传服务器,然后调用MFC中的FTP类完成文件上传功能。下面是连接FTP服务器的代码:CInternetSession*m_pInetSession=newCInternetSession(AfxGetAppName(),1,PRE_CONFIG_INTERNET_ACCESS);;CFtpConnection*m_pFtpConnection=m_pInetSession->GetFtpConnection(m_sHost_PreProcessServer,"anonymous","",21);53 华中科技大学硕士学位论文下面是上传SQD文件的代码:if(m_pFtpConnection->PutFile(sSQDFileFullName,sSQDFileName)){……}本模块利用Socket(套接字)在应用服务器和客户端进行三维显示所需数据的[52]传输。Socket是对TCP/IP协议的封装和抽象。利用VisualC++6.0进行Socket网络通讯模块的开发可以采取两种技术途径:1.直接利用VC6的CSocket类来进行;2.利用微软公司提供的Winsock控件来进行。Winsock控件是微软公司开发的ActiveX控件,其内部封装了Socket的功能,性能稳定,便于开发使用,为方便开发起见,本模块采用Winsock控件来实现Socket的功能。详细实现如下所述。在每一个客户端有1个Winsock控件,用来连接应用服务器。在应用服务器端有1+n(0<=n<=30)个Winsock控件,其中有一个固定的Winsock控件用来监听客户端Winsock控件的连接请求,当有一个客户端的Winsock控件发出连接请求时,服务器将动态地创建一个Winsock控件用来与该客户端建立Socket连接,然后可以在建立的Socket中进行数据传输。开始建立新的Winsock控件,与客户监听客户的连接请求端建立连接,并把该控件添加到Winsock的Vector中否是否有新的连接请求客户端服务器端数据传输是检查Winsock控件矢量(Vector)否数据传输完毕是某个Winsock控件5分钟否结束内未从客户端收到数据是关闭并销毁该Winsock控件,回收资源,压缩Winsock控件矢量图4-13应用服务器端基于Winsock控件的网络通讯流程54 华中科技大学硕士学位论文动态创建的Winsock控件存放在服务器端的Winsock矢量中。当某一个Winsock控件5分钟内未从客户端接收数据时,认为此Winsock控件无效,应将此Winsock控件关闭、销毁、回收系统资源、压缩Winsock矢量大小。每当服务器端收到客户端的连接请求时,对winsock矢量进行上述有效性检查。处理流程如图4-13。55 华中科技大学硕士学位论文5总结与展望5.1本文总结三维地下管网数据库系统的实现对于用户管理数据,检查管网工作状态和确立施工方案有重要的实际应用价值。同时对GIS中的多源数据的集成问题,论文实现了对SICAD/open系统的SQD文件格式和AutoCAD的DXF文件在本数据库系统中的集成,具有重要的实用价值和理论意义。本文围绕数据库的建立和数据源的分析和集成的问题,主要展开了如下的讨论:1.数据库基础理论和相关知识,包括数据库发展过程与趋势,开发流程,数据库访问技术和空间数据库的相关知识。2.介绍了多源数据以及其集成方法,针对已有管线的来源SICAD/open系统,对其数据模型做了详细的分析,并对其数据元素的存储结构做了介绍,为SQD文件的解析奠定了理论基础。接着,对SQD这一文件格式的组成、元素的构成和元素之间如何通过共点建立拓扑等问题做了仔细讨论,给出了解析SQD文件的方法和流程。同时,鉴于用户使用AutoCAD来设计新装管网,对AutoCAD的特点和DXF的解析做了分析,使用AutoCAD图块名称和插入点的位置相结合的方法解决了设备要素的区分和地理位置。为辅助新装管线的设计,结合用户工作流程,实现了从DXF文件解析得到新装管线的数据。3.在系统实现方面,遵循数据库系统的开发流程,经过详细分析用户需求,设计概念模型,将概念模型转换到逻辑模型,并针对存储特点进行物理设计。根据逻辑模型和物理设计的结果,利用Oracle9i数据库管理系统的以及所提供的SQL和PL/SQL建立数据库表,索引,编写PL/SQL函数。应用程序方面,利用VisualC++开发数据库访问接口,编写,调试客户端和服务器端的程序,对数据库系统进行试运行。在数据库的运行和维护阶段,要数据的完整性、一致性,保证数据的安全性,在数据库存取控制方面采用了双重的安全机制,即数据库管理系统采用用户、角色和权限的管理方法,应用程序定义了不同级别的模块权限。在数据库可恢复性方面,制定合理的备份方案和恢复策略。总之,通过对数据库的存取和可恢复性控制来保证数据库安全,保证系统的正常运行。同时,详细说明了SQD解析模块和DXF解56 华中科技大学硕士学位论文析模块。在SQD模块中,解释了从SICAD/open系统导出文件开始到完成数据入库的整个操作流程。在DXF模块中,给出了数据处理的详细操作流程和规范,并指出了与SQD解析中的不同点。5.2工作展望有待进一步研究、完善,具体包括的关键问题有:1.为一个工程性的项目如何在最大的程度上帮助用户实际工作作为根本宗旨,如何在更大的程度上方便其工作流程,提高工作效率上要与目标用户做更为广泛和深入的交流,使用户需求更加明确和真实,为系统的运行、维护和修正提供依据。2.随使用时间的不断增长,数据库量不断增加,如何在取得较快的数据检索和存取速度有待进一步提高。3.SICAD/open的SQD文件所含有信息非常丰富,如何更多更好的使用所含信息,与实际的使用相结合,提高数据利用度。4.AutoCAD系统版本杂多,如何在解析不同版本的DXF文件有待研究的进一步的深入,同时如在更好更多的利用DXF文件的用户主观信息和作图规范的定义之间的结合,得到更多的信息以减少用户的输入。57 华中科技大学硕士学位论文致谢在论文即将完成之际,本人在此向所有教导过我、关心过我、帮助过我的老师和同学们致以最真挚的感谢!首先我衷心地感谢我的指导老师周成平副教授,是周老师给了我这个学习深造的机会,他渊博的学识和丰富的工程实践经验和阅历,以及对问题敏锐的洞察力和严格的管理都令我十分敬佩。在我的求学和生活中给予我许多有益的建议和启发,他的指导和对我的影响,将使我终生受益。感谢丁明跃教授,其严谨治学、对学生认真负责的态度让我深深地敬佩。不仅在科研工作中对我进行谆谆教导,与国际先进的技术和研究方法相接轨,开阔了我的视野,提出了许多启发性和挑战性的问题,引导我在科研的道路上不断前进。感谢蔡超老师,蔡老师严谨踏实的科研态度,对研究课题精益求精的精神,严于律己宽以待人的风范,将是我在以后的工作和生活中的榜样。在我的研究课题中,蔡老师对我提出了很多建设性的意见,在所取得的成绩当中,也包含着他的智慧和心血。我还要感谢陈韶斌博士,张绪波、肖翔、衣龙帅、王文渊等硕士,在项目开发过程中的共处和交流使我在各方面有了更深刻的认识和提高。感谢计算机视觉实验室的全体博士生和硕士生,尤其是候文广、孙阳光、严江江、邱武、杨帆、夏磊、罗小安、张小凤、周华、杨鑫、樊宇等的帮助,让我能在友好的氛围中完成学业,在共同求学的日子里留下了很多美好回忆。感谢求学过程中的所有老师为我顺利完成学业所付出的辛勤劳动。最后,我要深深感谢我的父母和家人,他们自始至终给我的学习和生活以莫大的关心、支持和鼓励。58 华中科技大学硕士学位论文参考文献[1]DevogeleT,ParentC,SpaccapietraS.Onspatialdatabaseintegration.InternationalJournalofGeographicalInformationScience,1998,12(4),335-352.[2]王聿贤.SICAD数据转换程序实现.中国科技论文在线.2006:1-3.[3]马勇.城市排水管网信息管理系统的建立及应用:[硕士学位论文].哈尔滨:哈尔滨工业大学,2001.[4]高铁军.沈阳市地下综合管网地理信息系统:[硕士学位论文].沈阳:东北大学,2001.[5]韩勇,陈之中,甘宇亮.城市地下管网信息系统的结构设计及功能.测绘通报,2003,2007(3):45-46.[6]张玉洁.地下管网综合管理系统的设计与实现:[硕士学位论文].大连:大连理工大学,2003.[7]RichardGreene,NewlandAgbenowosi,etal.GISObasedapproachtosewersystemdesign.Journalofsurveyingengineering.1999,2:37-57.[8]EttensH.TheapplicationofGeographicalinformationsysteminurbanandregionalPlanning.GISforurbanregionalPlanning,KluweracademicPublishcrs,1990:10-22.[9]HenkJScholten.GeographicalinformationsystemsforurbanandregionalPlanning.KluwerAcademicPublishers,1990:90-102.[10]SweeneyMW.Geographicinformationsystems.WaterEnvironmentResearch,1997,69(4):419-422.[11]RJLee,RJGlover.EvaluationoftheImpactofDifferentSewageTreatmentProcessesonShellfisheryPollutionUsingaGIS.WaterScienceandTechnology,1998,38(12):15-22.[12]邬群勇,王钦敏,陈涵等.基于GIS的供水管网管理与服务系统.测绘科学,2006,31(4):152-154.[13]王见兵,苏铁柱,曹海军.城市地下管线测量与探讨.国土资源导刊,2004,1(3):47-48.[14]YaserBishr,OvercomingthesemanticandotherbarrierstoGISinteroperability,59 华中科技大学硕士学位论文GeographicalInformationScience,1998,12(4):427-429.[15]BennettDA.Aframeworkfortheintegrationofgeographicalinformationsystemsandmodelbasemanagement.InternationalJournalofGeographicalInformationScience,1997,11(4):337-357.[16]孟妮娜,周校东.GIS空间数据转换为DXF格式的方法研究.测绘科学,2007,32(2):105-109.[17]陈国红.数据库技术及其发展趋势.纺织高校基础科学学报,2001,14(3):244-247.[18]张岩.基于Oracle的高速公路收费系统数据库设计及应用:[硕士学位论文].南京:东南大学,2005.[19]E.F.Codd.ARelationalModelofDataforLargeSharedDataBanks.Commun.ACM1970,13(6):377-387.[20]孟小峰,周龙骧,王珊.数据库技术发展趋势.软件学报,2004,15(12):1824-1825.[21]波奈尔.数据库设计与开发教程.第1版.韩宏志译.北京:清华大学出版社,2005.477-478.[22]赵伯山.Oracle9i中文版使用培训教程.第1版.北京:清华大学出版,2001.28-32.[23]王海亮.精通Oracle10gPL/SQL编程.第1版.北京:中国水利水电出版社,2004.20-22.[24]萨师煊,王珊.数据库系统概论.第3版.北京:高等教育出版社,2000.208-233.[25]李闽溟,吴继刚,周学明.VisualC++6.0数据库系统开发实例导航.第1版.北京:人民邮电出版社,2002.10-12.[26]宋青,郑冰,李国辉.VC++与数据库接口技术的研究.现代电子技术,2007,22(261):72-76.[27]闾国年,张书亮,龚敏霞.地理信息系统集成原理与方法.第1版.北京:科学出版社,2003.7-8.[28]AbelD.J.,OoiB.C.,TanK-L.etal.Towardsintegratedgeographicinformationprocessing.GeographicalInformationScience,1998,12(4):353-371.[29]田鹏.浅析多源空间数据的集成.见:第三届中国国际数字城市建设技术研讨会.深圳会展中心,2007.60'