一、 ORACLE SPATIAL 简介
ORACLE SPATIAL 是Oracle 的支持GIS数据存储的空间数据处理系统,是 Oracle 数据库强大的核心特性,包含了用于存储矢量数据类型、栅格数据类型和持续拓扑数据的原生数据类型。ORACLE SPATIAL使得我们能够在一个多用户环境中部署地理信息系统(GIS),并且与其它企业数据有机结合起来,统一部署电子商务、政务。有了 ORACLE SPATIAL 之后,即可用标准的 SQL 查询管理我们的空间数据。
二、 ORACLE SPATIAL 表结构简介
Oracle 支持自定义的数据类型,你可以用数组,结构体或者带有构造函数,功能函数的类来定义自己的对象类型。这样的对象类型可以用于属性列的数据类型,也可以用来创建对象表。而Oracle Spatial也正是基于此种特性所开发的一套空间数据处理系统。
Spatial 的自定义数据类型有很多,都在MDSYS方案下,经常使用的是SDO_GEOMETRY类型。SDO_GEOMETRY表示一个几何对象,可以是点、线、面、多点、多线、多面或混合对象。
Spatial 在此数据类型的基础上,实现了R树空间索引和四*树空间索引,还以sql函数的形式实现了多种空间分析功能。
Oracle Spatial 使用:
1、将SDO_GEOMETRY数据类型作为数据表的一个列。
CREATE TABLE cola_markets (
mkt_id NUMBER PRIMARY KEY,
name VARCHAR2(32),
shape MDSYS.SDO_GEOMETRY);
2、填写空间元数据。
INSERT INTO USER_SDO_GEOM_METADATA
VALUES (
'cola_markets',
'shape',
MDSYS.SDO_DIM_ARRAY( -- 20X20 grid
MDSYS.SDO_DIM_ELEMENT('X', 0, 20, 0.005),
MDSYS.SDO_DIM_ELEMENT('Y', 0, 20, 0.005)
),
NULL -- SRID
);
3、创建空间索引。
CREATE INDEX cola_spatial_idx
ON cola_markets(shape)
INDEXTYPE IS MDSYS.SPATIAL_INDEX;
至此,空间数据表的创建才算正式完成 。
4、插入空间数据。空间数据的插入要
INSERT INTO cola_markets VALUES(
2,
'cola_b',
MDSYS.SDO_GEOMETRY(
2003, -- 2-dimensional polygon
NULL,
NULL,
MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,1), -- one polygon (exterior polygon ring)
MDSYS.SDO_ORDINATE_ARRAY(5,1, 8,1, 8,6, 5,7, 5,1)
)
);
5、空间分析查询示例。
-- Return the topological difference of two geometries.
SELECT SDO_GEOM.SDO_DIFFERENCE(c_a.shape, m.diminfo, c_c.shape, m.diminfo)
FROM cola_markets c_a, cola_markets c_c, user_sdo_geom_metadata m
WHERE m.table_name = 'COLA_MARKETS' AND m.column_name = 'SHAPE'
AND c_a.name = 'cola_a' AND c_c.name = 'cola_c';
三、 ORACLE SPATIAL 功能
由于传统的 GIS 技术已达到其本身可伸缩性和可靠性的极限,用户越来越多地转向以数据库为中心的空间计算。ORACLE SPATIAL将空间过程和操作直接转移到数据库内核中,从而提高了性能和安全性。ORACLE SPATIAL从1995年ORACLE 7.1.6开始发展到2003年的10G版本,空间数据处理能力越来越强大。
ORACLE SPATIAL将所有的地理空间数据类型(矢量、栅格、网格、影像、网络、拓扑)统一在单一、开放的、基于标准的数据管理环境中, 这就减少了管理单独、分离的专用系统的成本、复杂性和开销。ORACLE SPATIAL不但具有传统GIS的所有特性,,而且还具有关系数据库的特性,这些特性扩展了应用程序开发人员的工作范围并提供了他们的生产率,因而能支持更广泛的应用程序并提高性能主要表现在:
1) 几何结构和空间参照
ORACLE SPATIAL 支持三种基本的几何形状,这些几何形状可分别用于表示那些通常构成空间数据库的特征,如道路、管理边界、公共设施等。这些空间基础元素包括:
点和点簇:点可以表示建筑、消防栓、电线杆、钻井、货车车厢或移动的交通工具等位置。
线和线串:线可以表示道路、铁路线、公用设施管线或故障线等。
多边形和带孔的复杂多边形:多边形可以表示城市、街区、河漫滩或油田和天然气田的轮廓。带孔的多边形可以表示由一片沼泽环绕的一小块土地。
为了有效地集成和表示空间信息,ORACLE SPATIAL 提供了丰富的工具来管理坐标系统和投影。支持 950 多种常用的制图坐标系统,而且用户还可以定义新的坐标系统。ORACLE SPATIAL 还支持在不同的坐标系统间任意转换数据。这些转换一次可以在一个几何级上或者整个图层上进行。
2) 空间索引:R-tree
为了优化空间查询的性能,Oracle Locator 为关系数据库提供了空间索引功能。Oracle Locator 提供 R-tree 索引创建功能,该功能生成和存储几何结构的近似值作为索引。R-tree 索引易于创建和使用 — 几乎不需要调整即可获得最佳性能。可以在空间数据的两个、三个或四个维度上创建 R-tree 索引。
3) 空间操作符
各种几何特征的交互作用可以通过使用比较操作符来确定,如 contains、covers 和 anyinteract(任何交互作用)。这样就可以答复类似下列的请求:“列出这条铁道线穿过的所有校区”或“找出这个城市中所有的花店”
4) 基于函数的索引支持
现在不需要将位置信息显式地存储为 SDO_GEOMETRY 类型的列即可在关系属性上执行空间查询。用户可以对存储在关系列(例如经度和纬度)中的空间数据上创建空间索引。然后用户可以在这些关系列上调用空间操作符,而无需创建一个 SDO_GEOMETRY 列。
5) 大地坐标支持
就地表测量而言,无论坐标系统是什么,空间函数、操作符和公用程序都提供正确的结果。距离、面积和角度等单位都获得了全面的支持。
6) 空间索引的分区支持
空间索引可以根据分区表进行分区。对空间数据分区并使用分区的本地索引,可以为大型数据集上的查询以及并发查询与更新提供性能增益。它还使索引的维护更加容易。
7) 并行创建空间索引
索引创建可以被细分成能并行执行的更小的任务,以便利用未使用的硬件 (CPU) 资源。对于某些空间数据库以及索引类型和数据来说,并行索引创建能充分提高索引构建性能并显著节约时间。
8) 线性参照支持
ORACLE SPATIAL 将“测量”信息存储为 ORACLE SPATIAL 线性几何结构的一部分。此特性对于线性联网和动态分割应用程序很关键,这些应用程序常见于互联网街道路径搜索、运输、公用设施和电信网络以及管线管理。
9) 空间聚集
空间聚集函数概括了与几何对象相关的 SQL 查询结果。空间聚集函数返回类型为 SDO_GEOMETRY 的几何对象。空间聚集的使用提高了性能,降低了底层代码的复杂性。
10) 网络数据模型
在 Oracle 数据库 10g 中提供了一个存储网络(图形)结构的数据模型。它显式地存储和维护“连接—节点”网络的连通性并提供网络分析功能(如最短路径、连通性分析)。需要网络解决方案的应用程序包括运输、公共交通、公共设施和生命科学(生物化学路径分析)。
对于运输应用程序,该网络数据模型还支持一个路线搜索特性。Oracle 引入了一个可伸缩的路线搜索引擎,该引擎提供了地址(或预先经过地理编码的位置)之间的驾驶距离、时间和方向。它作为一个 Java 客户端库提供给网络数据模型,这个网络数据模型可以容易地部署在 Oracle 应用服务器或独立的 OC4J 环境中。其他的特性包括:最快或最短路径的首选项,返回概要或详细的驾驶指导;并返回沿着一条街道网络从单个位置到多个目标位置的时间和距离。
11) 拓扑数据模型
ORACLE SPATIAL 包含一个数据模型和模式,它们在 Oracle 数据库中持久存储拓扑结构。当进行大量特征编辑且对地图和地图图层间的数据完整性的有高度需求时,这非常有用。另一个好处是基于拓扑结构的查询一般比涉及到关系(如邻接性、连通性和包容性)的查询执行速度更快。土地管理(地籍)系统和空间数据提供商将从这些功能中获益。
12) GeoRaster
一种新的数据类型在 Oracle 数据库 10g 中以本地形式管理地理参照栅格成像(卫星成像、遥感数据、网格化数据)。ORACLE SPATIAL 的 GeoRaster 特性提供成像的地理参照、用于元数据管理的XML 模式和基本操作,如形成分层、平铺和交*。环境管理、国防/国家安全、能源勘探和人造卫星影像门户方面的应用程序将会从中受益。
13) 空间分析函数
新的基于服务器的空间分析功能包括分类、分装、关连空间关系 — 这些功能对于商务智能应用程序非常重要。
14) 地理编码器
地理编码是将地理参照(比如地址和邮编)与位置坐标(经度和纬度)联系起来的过程。在 ORACLE SPATIAL 10g 中提供一个功能全面的地理编码引擎。它通过查询存储在 Oracle 数据库中的经过地理编码的数据,提供国际地址标准化、地理编码和 POI 匹配。它独特的非解析地址支持为客户应用程序增加了巨大的灵活性和便利性。ORACLE SPATIAL 地理编码器作为 Java 存储过程在 Oracle 数据库服务器内部实施。并提供了一个用于地理编码的 PL/SQL API。
从ORACLE SPATIAL的特性中可以看出, 在Oracle数据库内实现了所有的传统的GIS管理、分析功能,而且这些功能与ORACLE的强大数据仓库管理技术紧密的融合在一起,可以利用标准的SQL语言管理分析空间数据。因此,利用ORACLE SPATIAL我们完全可以部署适合各个领域的空间数据仓库服务。然后通过C/S、B/S与客户平台联系起来,和用户交互。
四、 ORACLE SPATIAL 优点
ORACLE SPATIAL 在数据库服务端集成了空间数据仓库高性能管理技术,使得地理信息可以其它业务结合起来,并可以分布式地布署在INTERNET上,所有的这些优势正在导致新型空间数据仓库应用程序的出现:
1) 低拥有成本
在企业级别上部署应用程序,集中存储空间数据,从而降低了拥有成本。互联网/内联网体系结构不需要在台式机上安装和维护客户端软件,也不需要在企业数据库之外单独存储和管理数据。在客户机上只需要一个标准互联网浏览器。
2) 低风险
空间信息直接集成到 ORACLE SPATIAL 中。这就促成了可伸缩的、安全的和高性能的应用程序。开发人员可以选择部署在任何服务器平台上,包括 Solaris、Unix、Linux、Windows NT 和 Windows 2000,并使用现有的 IT 资源来管理这些应用程序。
3) 高价值
利用互联网,更多用户可以在机会不增加机构成本的情况下访问应用程序。这意味着用户可以全天候地访问任务的关键信息。
发表评论
-
【转】 GeoServer中配置Oracle Spatial数据库
2011-10-17 16:40 02011-07-31 16:36 转载自 分享 ... -
使用EasyLoader上载数据
2011-10-17 16:01 0本章解释了如何 ... -
SDO_Geometry类型的详细说明
2011-10-17 15:38 0在ArcGIS中通过SDE存 ... -
利用Oracle Spatial实现位置服务
2011-10-17 15:31 1974一、引言 ... -
Oracle Spatial中的空间图层
2011-10-17 15:07 822空间图层:Oracle spatial ... -
SDO_GEOMETRY(一)
2011-10-17 13:55 1686SDO_GEOMETRY是空间数据中最基本的类型,此类型用 ... -
Oracle Spatial详解
2011-10-17 11:14 810Step1. 创建一张表,其中shape用来存放空间数 ...
相关推荐
### 一、Oracle Spatial简介 - **Oracle Spatial** 是Oracle数据库系统中一个用于管理和处理地理空间数据的功能组件。 - 它能够帮助用户有效地存储、索引及管理地理空间数据,并支持在地理信息系统(GIS)应用中的...
### Oracle Spatial与ArcGIS连接知识点解析 #### 一、引言 随着信息技术的发展,空间数据管理变得日益重要。许多组织正在转向使用Oracle Spatial作为其核心数据库系统,这主要是因为Oracle Spatial能够提供强大的...
【Oracle和Oracle Spatial简介】 Oracle是一家全球知名的信息管理软件提供商,自1977年成立以来,已成为全球最大的关系型数据库管理系统供应商。Oracle是第一个商业化的关系型数据库系统,并且是最早在其所有产品中...
Oracle Spatial是Oracle数据库的一个核心特性,专门用于处理和管理地理空间数据,支持GIS(地理信息系统)数据存储。它提供了一套全面的空间数据处理系统,使用户能够在多用户环境中部署和管理地理信息系统,并与...
Oracle Spatial 是 Oracle 数据库的一个组件,专门用于处理和分析地理空间数据。这个组件提供了丰富的功能,包括地理坐标系统的转换、空间查询、空间分析以及地图显示等。在Java开发环境中,Oracle Spatial 提供了...
### 一、Oracle Spatial简介 Oracle Spatial是Oracle数据库的一个扩展功能,用于存储、索引和管理空间数据。空间数据是指在地理信息系统(GIS)中使用的数据类型,包括点、线、多边形等几何对象。通过使用Oracle ...
[Packt Publishing] Oracle Spatial 应用扩展 (英文版) [Packt Publishing] Applying and Extending Oracle Spatial (E-Book) ☆ 图书概要:☆ Overview Understand how to develop Oracle Spatial data models ...
1. **Oracle Spatial简介**:Oracle Spatial是Oracle数据库的一个组件,它提供了对地理空间数据的支持,使得数据库能够处理点、线、面等几何对象,以及相关的属性数据。这使得Oracle数据库能够用于地理信息系统(GIS...
### Oracle Spatial9i介绍 #### 一、Oracle Spatial9i概览 Oracle Spatial9i是Oracle数据库系统中的一项强大功能,专门用于处理地理信息系统(GIS)数据。它为GIS相关开发人员提供了一套完整的工具集,使他们能够...
Oracle Spatial 是Oracle数据库的一个扩展模块,专门用于处理和分析地理空间数据。这个用户指南和参考文档是学习和掌握Oracle Spatial技术的重要资源,尽管它是英文版的。以下是对Oracle Spatial的一些核心知识点的...
Oracle Spatial 是 Oracle 数据库的一个重要组件,专门用于处理地理空间数据和执行空间分析。这个官方文档是英文版,对于非英语母语者来说可能阅读起来有些困难,但它是理解 Oracle Spatial 功能和操作的关键资源。...
### 一、Oracle Spatial简介 Oracle Spatial是Oracle数据库的一个组件,专门用于处理空间数据。它提供了丰富的功能集,使得开发人员能够有效地存储、检索和操作地理空间数据。这些功能包括但不限于空间对象的创建、...
11. **培训与资源**:提供的教程和书籍,如“Oracle Spatial 简介 Oracle教程 Oracle函数 Oracle命令 Oracle入门”等,可以帮助初学者快速理解和掌握Oracle Spatial的基本概念和操作。 以上是Oracle Spatial的主要...
"使用Oracle Spatial对ArcSDE中的SDO_GEOMETRY类型数据进行空间操作" Oracle Spatial 是 Oracle 数据库中的一个空间数据处理组件,用于存储、管理和操作空间数据。ArcSDE 是一个空间数据引擎,用于存储和管理大规模...
Oracle Spatial是Oracle数据库的一个扩展模块,专门用于处理地理空间数据,提供高级的空间查询、分析和可视化功能。在“Oracle Spatial学生指导”中,你将深入理解如何利用这个强大的工具进行地理信息系统(GIS)的...
Oracle Spatial是Oracle数据库的一个扩展模块,专为处理地理空间数据而设计。它提供了对空间对象的存储、查询、分析和可视化的能力,使得开发者能够构建基于地理位置的应用程序。本用户指南详细介绍了如何有效地利用...
《Oracle Spatial Developer's Guide》是Oracle公司为开发者提供的一份详尽指南,专注于其空间数据库解决方案——Oracle Spatial。Oracle Spatial是Oracle数据库的一个扩展模块,它提供了处理地理空间数据的能力,...
Oracle Spatial 11g GeoRaster Oracle Spatial 11g GeoRaster Oracle Spatial 11g GeoRaster Oracle Spatial 11g GeoRaster