1引言 Oracle Spatial主要通过元数据表、空间数据字段(即sdo_Geometry字段)和空间索引来管理空间数据,并在此基础上提供一系列空间查询和空间分析的程序包,让用户进行更深层次的GIS应用开发。Oracle Spatial使用空间字段sdo_Geometry存储空间数据,用元数据表来管理具有sdo_Geometry字段的空间数据表,并采用R树索引和四叉树索引技术来提高空间查询和空间分析的速度。 2 Spatial数据库安装 2.1没有安装Oracle时Spatial的安装 在Oracle安装时需要选择安装Spatial组件,然后: 1. 以sys用户执行D……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号

TechTarget
官方微博

TechTarget中国
1引言
Oracle Spatial主要通过元数据表、空间数据字段(即sdo_Geometry字段)和空间索引来管理空间数据,并在此基础上提供一系列空间查询和空间分析的程序包,让用户进行更深层次的GIS应用开发。Oracle Spatial使用空间字段sdo_Geometry存储空间数据,用元数据表来管理具有sdo_Geometry字段的空间数据表,并采用R树索引和四叉树索引技术来提高空间查询和空间分析的速度。
2 Spatial数据库安装
2.1没有安装Oracle时Spatial的安装
在Oracle安装时需要选择安装Spatial组件,然后:
1. 以sys用户执行D:oracleproduct10.2.0db_1ordadminordinst.sql创建MDSYS用户并相应的权限。
2. 以sys用户再执行D:oracleproduct10.2.0db_1mdadminmdinst.sql创建所需的地理信息相关的包。
2.2已经安装Oracle时Spatial的安装
如果之前在安装数据库的时候没有安装对oracle Spatial的支持!
可以:
1.在高级安装->定制,添加上spatial组件。
2. 以sys用户执行D:oracleproduct10.2.0db_1ordadminordinst.sql创建MDSYS用户并相应的权限。
3. 以sys用户再执行D:oracleproduct10.2.0db_1mdadminmdinst.sql创建所需的地理信息相关的包。
3 Spatial数据库使用
首先,oracle 支持自定义的数据类型,您能够用数组,结构体或带有构造函数,功能函数的类来定义自己的对象类型。这样的对象类型能够用于属性列的数据类型,也能够用来创建对象表。而oracle Spatial也正是基于此种特性所研发的一套空间数据处理系统。
Spatial的自定义数据类型有很多,都在mdsys方案下,经常使用的是sdo_geometry类型。sdo_geometry表示一个几何对象,能够是点、线、面、多点、多线、多面或混合对象。
Spaital在此数据类型的基础上,实现了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; |
4结论
空间数据库技术用关系数据库管理系统(RDBMS) 来管理空间数据,主要解决存储在关系数据库中的空间数据与应用程序之间的数据接口问题, 即空间数据库引擎( Spatial Database Engine) 。更确切地说,空间数据库技术是解决空间数据对象中几何属性在关系数据库中的存取问题,其主要任务是:
1) 用关系数据库存储管理空间数据;
2) 从数据库中读取空间数据,并转换为GIS 应用程序能够接收和使用的格式;
3) 将GIS 应用程序中的空间数据导入数据库,交给关系数据库管理。因此空间数据库技术是空间数据进出关系数据库的通道。
以上介绍了Oracle空间数据库的安装和简单应用,希望能对今后开发GIS类项目起到抛砖引玉的作用。
相关推荐
-
SQL Server目录视图教程:数据库和文件目录视图
SQL Server 2008提供了上百个系统视图,这些视图可以让你查看数据库和服务器元数据,而无需访问真正的数据源。
-
利用T-SQL元数据函数检查属性设置(下)
如果你想查看有关索引的属性,你可以利用“INDEXPROPERTY ”函数。该函数有三个参数:索引定义于其上的对象ID,索引名称和属性名称。
-
利用T-SQL元数据函数检查属性设置(上)
本系列文章的第一部分介绍了元数据的基本情况,以及如何利用它们查看对象名称和ID。本文讲解了其它元数据函数的用法,比如如何查看各种对象的属性设置。
-
探索SQL Server 2008中的T-SQL元数据函数(下)
“OBJECT_ID”函数接收一个参数:对象名称。如果你没有指定完整修饰的名称,那么该对象被认为是属于当前活动的数据库。