本系列教程介绍了使用 IBM DB2 Spatial Extender 管理空间数据的常见任务,包括导入和创建空间数据,构造和执行空间查询,使用 IBM、第三方和开源的空间工具,调节性能,以及在数据仓库环境中考虑空间环境。
在本系列的第一篇文章中,我们将了解如何获取空间数据和构建应用程序。了解如何使用形状文件 (shapefile)、空间数据表和空间索引。
了解能从本学到哪些知识,如何最充分地掌握这些知识。
关于本系列
10 多年来,DB2 Spatial Extender 提供了管理和分析 DB2 关系表中存储的空间数据的功能。可为点、线和多边形定义具有空间类型的表列,它们可表示以下对象:
SQL 查询可合并空间函数来分析空间关系,比如查找一个洪灾区域的客户。清单 1 显示了合并空间函数的代码示例。
清单 1. 合并空间函数的查询
SELECT cust_name, cust_addr FROM customers, floodzones WHERE ST_Within(cust_loc, flood_loc) = 1
此查询的结果会生成一组其房屋面临洪水淹没风险的客户的姓名和住所地址。此信息在计算保险费率或发放洪灾保险购买时很有用。
本系列教程将介绍在 DB2 Spatial Extender 中处理空间数据的常见任务。这包括导入和创建空间数据,构造和执行空间查询,使用 IBM、第三方和开源的空间工具,调节性能,以及在数据仓库环境中考虑空间环境。
尽管本系列教程的重点是 Linux®、UNIX® 和 Windows® 操作系统上的 DB2 Spatial Extender,但许多概念同样适用于其他具有空间功能的 IBM 产品,包括:
关于本教程
本教程介绍 DB2 Spatial Extender 提供的技术。还提供了向 DB2 表填充空间数据的方法:在实现空间查询之前的一个关键步骤。本教程还介绍了执行空间查询的环境,包括 DB2 命令行处理器、IBM Data Studio 和使用 JDBC、CLI 和其他接口嵌入到应用程序中的环境。
目标
完成本教程后,您将:
DB2 Spatial Extender 概述
安装和设置 DB2 Spatial Extender,提供以下主要功能和组件:
空间参考系统和坐标系统
空间数据通常由坐标值元组来表示(最常见形式为 x 和 y),但也支持 z 和 m 坐标。本教程考虑具有 x 和 y 坐标值的数据。它还将考虑仅使用经度和纬度(以度为单位的十进制值)的数据。请注意,当使用经度和纬度时,经度 对应于 x,纬度 对应于 y。
要正确执行空间操作,每个空间值必须有一个关联的坐标系统,用于描述坐标值与地球表面上的位置的关系。尽管 Spatial Extender 提供了 3,000 多个不同的预定义坐标系统,但本教程仅采用两个最常用的:用于北美的坐标 NAD83 和用于全球坐标 WGS84。请注意,大部分 GPS 设备都使用 WGS84 报告坐标。
为了有效地存储和处理空间数据,Spatial Extender 在内部将坐标表示为 64 位整数。Spatial Extender 使用一个空间参照系统 (SRS) 来管理此数据,该系统指定用于在双精度值的用户表示与内部表示之间来回转换的偏移和比例系数。每个 SRS 也有一个关联的坐标系统。实际上正是 SRS 与每个空间值相关联。SRS 既可以指它的 128 字符值名称(称为 srsName 或 SRS_NAME),也可以指它的 32 位整数标识符(称为 srid 或 SRS_ID)。srid 用在 SQL 语句中,srsName 用于 db2se CLP,最常在导入空间数据时使用。
Spatial Extender 为名为 NAD83_SRS_1 的 SRS 提供了 srid 1,表示使用 NAD83 坐标系统的数据。Spatial Extender 为名为 WGS84_SRS_1003 的 SRS 提供 srid 1003,表示使用 WGS84 坐标系统的数据。