网学网为需要数据库的朋友们搜集整理了 基于空间数据引擎的数据库设计与构建 相关资料,希望对各位网友有所帮助!
1 空间数据库技术空间数据库(Spatial Database, SDB)是在地理信息系统技术、数据库技术的基础上发展起来的,是对空间数据进行存储与管理的新技术,正逐步应用到城市规划、土地管理等方面。空间数据引擎(Spatial Data Engine, SDE)、大型数据库管理系统、客户端 GIS 应用程序是实现空间数据库的 3 个重要组成部分,其核心是空间数据引擎,主要解决存储在关系数据库中的空间数据与应用程序之间的数据接口问题。
1.1 空间数据存储模式模式 1 是混合型机构模型,它使用两个子系统分别存储和检索空间数据和属性数据,其中属性数据存储在常规的RDBMS 中,空间数据存储在专用的文件管理系统中,两个子系统之间使用一种关键字段联系起来。其缺点是:这种模型使用 2 个存储系统,它们有各自的规则,查询操作难以优化;数据管理和维护困难、数据访问速度慢、多用户数据并发共享冲突等。
模式 2 是统一数据模型,这种数据模型是在原来的数据库模型上进行了扩展。空间扩展完全包括在 RDBMS 中,用户可以使用自己的基本抽象数据类型来扩充 RDBMS。其缺点是 RDBMS 内部的查询操作过程复杂,同时由于各个数据库厂商都有自己的标准,因此缺乏现有主流 GIS 软件的支持。
模式 3 是扩展结构模型。扩展模型采用统一的 DBMS 存储空间数据和属性数据。其做法是在标准的关系数据库上增加一个空间数据管理层。这种模型相对于以上两种模型的优点是:省去了空间数据库和属性数据库之间繁琐的联结,利用空间索引机制来提高查询速度,利用长事务和版本机制来实现多用户同时操作同一类型数据,利用特殊的表结构来实现空间数据和属性数据的无缝集成等,ArcSDE 就是该模式的具体代表。
1.2 空间数据引擎SDE 是一种中间件技术,它在现有的关系型或对象关系型数据库上进行空间的扩展,可以将空间数据和非空间数据集成于目前大多数的商用 RDBMS 中(如 Oracle、Sybase 等),并支持 OpenGIS 等标准。SDE 是位于 RDBMS 和客户端之间的空间服务器,与 RDBMS 集成于服务器端。SDE 管理空间数据并为访问这些数据的软件提供接口,为用户在任意应用中嵌入查询和分析这些数据的功能。客户端 API 用于处理客户端应用程序提出的请求,并把这个请求翻译成标准的 SQL基金项目:云南数字烟草基金资助项目(hx040035)作者简介:吴孟泉(1975-),男,博士生,主研方向:空间数据库,GIS 和 R S 的应用;崔伟宏,教授、博导、院士;梅 新,博士生语言。然后,通过服务器端的 API 建立与 RDBMS 的通信,RDBMS 统一管理图形和属性数据,将满足要求的结果由SDE 返回给客户端。利用从关系数据库环境中继承的强大的数据库管理功能对空间数据和属性数据进行统一而有效的管理。它尤其适用于多用户、大数据量数据库的管理。从空间数据管理的角度来看,SDE 可以被看成是一个连续的空间数据模型,借助这一模型,可以将空间数据加入到 RDBMS中,如图 1 所示。
服务器客户端应用程序ArcSDE应用服务器客户端服务器端TCP/IPSQL命令SQL引擎存储管理数据文件图 1 SDE 的 C/S 结构示意图2 基于 ArcSDE 的空间数据库的设计2.1 数据库体系结构设计本文所设计的空间数据库是基于 Oracle9i 的 ArcSDE 多源空间数据库,保证了海量、无缝数据的可用性,该系统采用数据库、服务器、应用端 3 层体系结构,以Client/Server 和 Browser/Server 相结合的方式,构建网络化的海量空间数据管 理系 统。数据 库的 配置 是 以RDBMS、ArcSDE 和 Geodatabase 数据模型的应用原理为依托,将原有数据从 ESRI Coverage、shapefile 或Raster 数据格式向基于 RDBMS 软件的 ArcSDE Geodatabase 加载,实现系统数据库的建立,并保证入库数据的正确性、完整性、可靠性和一致性。建成之后的数据库主要有数据管理、数据查询和数据分发等功能(见图 2)。
空间数据库体系结构C/S 方式具有良好的交互性,对空间数据具有很强的编辑处理能力,数据的存储效率较高。在局域网业务的环境中得到广泛的应用。B/S 方式的特点在于具有广泛的信息发布能力和很好的工作流程控制性,客户端只需要普通的浏览器即可,不需要其他任何特殊软件。因此,C/S 结构主要用来实现系统内部的管理,而 B/S 结构用来实现信息共享发布、WebGIS 平台以及办公自动化等功能。
2.2 空间数据库的建立2.2.1 空间数据的内容在本系统的空间数据库主要包含以下数据:(1)基础空间信息数据:1:25 000 全要素电子地图,包含的信息有道路、河流水系、行政界线、居民点、绿地等;(2)专题空间信息数据,即土地利用图、土壤分布图、烟草种植分布图、灾害分布图、气候分布图、水资源分布图、人口分布图等;(3)图像数据,即 1:250 000DEM、1:50 000DEM、SPOT 影像、TM 影像和 MODIS 影像;(4)属性数据,即 10 年内气候数据、机械化程度、卫生状况、生产条件等;(5)其他数据,即注记等。
2.2.2 空间数据的存储与组织目前,普遍采用矢量数据模型和栅格数据模型来表达空间数据。本文结合空间数据结构的发展,从矢量数据组织结构和栅格数据组织结构方面研究基于 ESRI 公司 SDE 的空间数据存储模型。通过把空间数据加到关系型数据库中的方法来组织和存放空间要素,而不改变和影响现有数据库的使用。
(1)SDE 对矢量数据的存储与组织图 3 矢量数据的存储与组织结构ArcSDE 所有的图层建立了层表(layer table),以便用于索引,加快查询速度。每一个图层由事务表(business table)、要素表(feature table)、空间索引表(spatial index table)和坐标表(point table)组成,在 RDBMS 中存储和管理矢量数据。要素表和空间索引表对用户是不可见的。对用户来说,空间数据的存储和管理主要是通过对层表的读写操作来实现。创建层表的过程是把事务表的整型字段赋予空间属性,使其成为空间可用,来存储空间实体数据,实体属性(如长度、面积等)用普通字段存储,如图 3 所示。
事务表中每 1 行代表 1 个地物要素,用来存放地物要素的属性数据,通过要素标识符(fid)和其他 3 个表关联。要素表采用 BLOB 二进制类型字段来存储地物要素的几何形状(shape)。要素表包括要素标识符、shape 的类型及 shape 的封装边界。每个 shape 的封装边界是指覆盖一个完整要素的最小矩形边框的左上角和右下角的坐标对,以及中心点的坐标对。点状要素的坐标就是其封装边界。