空间数据存储机制研究
街道 街坊 宗地号 宗地面积 权利人 …
5 10
1
123.4 张三 …
5 10
1
123.4 张三 …
…… …
…
……
Geometry 20 ,0 , 20, 10 ,0 , 10
0 ,0 , 20, 0 …
EntitySEQ 1 2 …
按表 1 这样设计的表通过 ObjectID 字段定义了实体 的惟一性 , 通过 EntitySEQ 字段定义了此实体的坐标记录
采用这样的混合数据模型一方面利用了 GIS 产品提 供的空间索引 、空间查询 、空 间分析 的能力 ;另 一方面 也 利用了关 系 数 据库 对 属性 数 据的 强 大 的查 询 、定 位 能 力 。但这样的 混合 数据 模型 也存 在以 下几 点明 显的 不 足 :(1)空间数据采用 各个 GIS 厂 商定义 的各种 格式 , 不 利于数据共享 ;(2)空间数据 以文件 格式存储 , 安全性 难 以得到保 证 , 也 不利 于管 理 ;(3)空间 数据 、属 性数 据 的 一致性维护比 较困 难 ;(4)对 C/ S , B/ S 体系 结构 的支 持 能力差 , 不利于数据的传输 。
4.2 Oracle Spatial
在 Oracle 8i 版本 后 , Oracle 数 据库 中 内置 了空 间数 据库 引擎 Oracle Spatial 。Oracle Spatial 通过 Geometrytype 类型能把复杂的地图对象 存入 Oracle 中 , 能为 其建立 RTree 及 Quad-Tree(四分树)空 间数据 索引 , 并能运 用 SQL 对空间数据查询 , 从而在 Oracle 上 实现了 对空间 图形数 据和属性 数 据的 统一 管 理 。通过 Oracle Spatial , 能 实现 空间数据级的互操作 , 如图 3 所示 。
Abstract :In GIS , the storage of spatial data is important .The paper discussed storage models of spatial data , and pointed out good storage model is extended RDBMS or oriented RDBMS .ORDBMS will become more popular in GIS . Key words :Spatial Data ;RDBMS Storage ;ORDBMS Storage ;ARCSDE ;Oracle Spatial
(1)以二进制方式打开图像文件 , 读取二进制数据 。 (2)把二进制数据存储 , 如下示例所示 :
Set MyConnection =Server.CreateObject(″ADODB .Connection″) MyConnection .open =″Driver={M icrosort Accesss Driver (*.mdb);dbq =″Serve r .Mappath(″CLGL .mdb″)″} Dim Res as New ADODB .Recordset Mystr =″Select * from CLKZD″ Res .open Mystr , MyConnection Res .Addnew Res .(″DZJ″).Appendchunk BufferData Res(″XZBZ″)=坐标值(, 其它字段赋值) … Res .update Res .Close
表 ,毋 需关 联业务 表到 F 表和 S 表 , 从 而使 对象关 系数
据运行速度很快 。其中 F 表结构如下 :
fid INTEGER NOT NULL,
numofpt s entity
INTEGER NOT NULL, SMALLINT NOT NULL,
eminx eminy
图 3 基于 Oracle Spatial 的空间数据互操 作
5 空间数据库存储的实践———ARCSDE 的存储
ARCSDE 是全球最大的 GIS 厂商 ESRI 公司的空间数
据库引擎 , 主要由 A 表 、F 表 、S 表 及部 分元 数据表 所构
成 。在 Oracle8i Spatial 对象关 系数据 库中只有 业务表 A
· 40 ·
计算机应用研究
2003 年
中 ,采用了 上述 表设 计结 构 。为减 少属 性的 重复 存 储 ,
也可把表 1 分解为两个表 , 如表 2(属性表)和表 3 或表 4
(几何表)所示 。其中表 2 在原属性表的 基础上加上 Ob-
jectID 字段以便与表 3 或表 4 关联 ;表 3 的几何实体以 一
序数 , Geometry 字段 存放的 是具 体的 坐标 值 。当然 此表 存在的最大的问题是存 储空间的 浪费 。一般 而言 , 很难
确定 Geometry 字 段 的 长 度 , 但 其 优点 是 脱 离 了 具 体的 GIS 软件 , 便于数据 共享 。目 前 , 在我 国的部 分城 市 GIS
FLOAT(64)NOT NULL, FLOAT(64)NOT NULL,
emaxx
FLOAT(64)NOT NULL,
(下转第 74 页)
· 74 ·
计算机应用研究
2 常规的空间数据存储方式
常规的空间数据一般以 数据文 件的方式 存在 , 如 在 ArcInfo 中以 Coverage 方式 存 在 , 由 一 系 列的 文 件 组 成 ,
收稿日期 :2002-04-29;修返日期 :2002-07-08
如 :tic , bad , arc , aat , pat , tol 等 , 对 任一要 素的修改 将引起 一系列文 件的 变化 。在 AutoCAD 中以 Dwg 的 文件 方式 存在 , 所有的空 间操 作都 在 Dwg 中得 以反映 , 这样 的数 据管理模式不利于数据的安全 、共享 、发布 。
try Type , 用于解决空间 数据的 存储与 查询 , 如 IBM DB2 , Informix ,Oracle Spatial 等 , 其空间数据与 属性数 据存储于
同一表中 , 如表 7 所示 。
表 7 空间 数据的对象关系存储表
FeatureID 街道 街坊 宗地号 宗地面积 权利人 … 几何值 Geometry Type
图 2 类与子类关系图
这样可采用 SQL 进行空间查询 , 例 如从地 块数据库 中查找与某一多边形相交的所有地块 , 其 SQL 语句为 :
SELECT Parcel .Name , Parcel .Id FROM Parcels WHERE Intersects(Parcels .Geometry , MyPolygon)
Geometry 几何实体字段(字符型 , 长度根据 具体几何类型 而定);另一个为 EntitySEQ 字段(定义一个实体所在的行 数 、字符型)。以土地 管理为 例 。图 1 所示为 某一图斑 。 其表结构与存储内容如表 1 所示 。
图 1 土地图斑 表 1 空间数据的全关系存储表
ObjectID 1 1 …
传统的几何类型的数据读取比 较简单 , 但 要真正 实 用 ,还需 建 立空 间 数 据库 引 擎 SDE(Spatial Database Engine), 使传统的 GIS 产品既能使用全关系数据库 , 又不降 低它的空间数据查询效率 、空间分析能力 。
3.2 图像数据的存储
对于图像 、声音等多媒体 信息可 采用二进 制方式 存 储 , 当然 几何实 体 、文 件等信 息也可 采用 二进制 方式 存 储 。以 VB 对 Access 数 据 库 进 行 操 作 为 例 , 至 于 SQL Server 与 Oracle 方法一致 。VB 对 Access 数据库的二进制 存储与 读 取 主要 用 到 AppendChunk 与 GetChunk 两 个 功 能 。其步骤为 :
为克服采用 混合 数据 模型 的缺 点 , 目前 , 商用 成 熟 GIS 软件都朝着将空间数据与属性数据存 储于同一关 系 型数据库 RDBMS 方向发展 。其中比较成熟的有 ESRI 公 司的 ArcSDE , MapInfo 公 司的 SpatialWare 以及 Oracle 的 Oracle8i Spatial , 它们都提供了全关系型或对象-关系型 的 数据模型 。本 文对 目前 几种 常见 的空 间数 据存 储机 制 进行研究 , 并提出相应的 GIS 空间数据存储方案 。
1
5 10 1
123 .4 张三 …
(x, y , … , x, y)
2
…
(x, y , … , x, y)
…
…… …
…
……
…
4.1 空间数据对象类
在 OpenGIS(开放 式地理 信息 系 统)规范 中 , 对 空间 数据采用 SQL Spatial Type 的类 与子类 有明确的 规范(图 2)。
数据的查询 , 方法之一是如上 所述采用 空间索 引与实体
范围定位的 辅助 表 来解 决 , 方 法 之二 是对 RDBMS 进行 扩展 。使用扩展 SQL 查询语言对空间 数据进 行查询 , 但
其缺点是数据库 I/O 检查比 较费时 , 需 要完成 一些附加
操作 ,查询效率比纯 OODBMS 低 。 现在部分 RDBMS 厂商提供了空 间对象 模型 Geome-
1 引言
在地理信息 系统 中 , 空 间数 据的 存 储至 关重 要 , 以 往 , 在 GIS 的数据库设计中 , 空间数据库和属性数据库一 般分开设计 , 空间数据库按已有的 GIS 产品进行设计 , 属 性数据库针对具体的 GIS 项目进行数据结构设计 。空间 数据和属性数据通过关键词 USER ID 关联 。
The Research of Storage Theory for Spatial Data