免费视频|新人指南|投诉删帖|广告合作|地信网APP下载

查看: 4207|回复: 2
收起左侧

[资料] GIS空间数据库:ORACLE SPATIAL空间数据存储解决方案

[复制链接]

109

主题

1993

铜板

2

好友

VIP会员

Rank: 23Rank: 23Rank: 23Rank: 23Rank: 23Rank: 23Rank: 23

积分
1037
发表于 2018-2-8 16:42 | 显示全部楼层 |阅读模式
Oracle Spatial概念

Oracle spatial通常被称为Spatial,即Oracle空间组件,它提供了一个基于SQL的方案和函数集来储存、检索、更新、查询Oracle数据库中的空间数据集。

Spatial包含以下一些组件

一套用来描述空间数据存储、语义和语法的方案;
一套空间索引机制;
一组操作符和函数用来进行面相关的查询、空间相交查询和其他空间分析操作;
管理模块。

对象关系模型

Oracle 10g spatial 不再支持关系几何模型,只支持对象关系模型。在对象关系模型中用SDO_GEOMETRY类型列来描述SDO_GEOMETRY类型数据(几何图形数据)。每个实体的信息都写在表中的一行中。对象关系模型协同支持几何类型的SQL语句一起工作,来处理符合Open GIS ODBC/SQL规格的空间数据表。

优点:

支持多种几何数据类型,包括弧段、圆、复合多边形、复合线串和优化矩形;
能够方便的在空间数据查询时创建和维护索引;
数据库自身维护索引;
几何模型存储在单行单列中;
最佳的执行表现。

数据类型

点(串) Points and point clusters
线串 Line strings
多边形 n-point polygons
弧段 Arc line strings (All arcs are generated as circular arcs.)
弧段多边形 Arc polygons
复合多边形 Compound polygons
复合线串 Compound line strings
圆 Circles
优化矩形 Optimized rectangles

ORACLE SPATIAL空间数据存储解决方案

ORACLE SPATIAL空间数据存储解决方案


数据模型

Oracle 中的空间数据模型是一个层次结构,依次由层(Layer)、空间数据对象(Geometry)、元素(Element)构成,如下图:LayerGeometryElement

Layer属性: Coordinate system,Tolence
其中Element可以是Spatial支持的任何一种空间数据对象元素(点、线和多边形),一个空间数据对象有一个或者多个同类或异类的Element组成,Layer有具有相同属性的Geometry组成。

Coordinate System ,坐标系统,又称空间参考系统,负责指定位置的坐标和确定一组坐标之间的关系,可以让一组坐标对应到真实世界里的具体位置中。Tolence是容忍值,即判断两个空间数据对象是否分离的最小距离值。

ORACLE SPATIAL空间数据存储解决方案

ORACLE SPATIAL空间数据存储解决方案


查询模型

Oracle spatial提供了两层查询模型,第一层是primary filter 初级过滤,第二层是secondary filter精确过滤。

Primary Filter初级过滤,速度比较快,而且可以满足我们大多数的的查询要求,比如进行窗口查询,显示指定范围内的空间数据。

Secondary Filter精确过滤,主要用来确定多个空间数据对象之间的相关位置关系,例如两个实体之间的拓扑关系和距离。

数据索引

支持R树索引和四叉树索引。根据这两种索引的性能表形,在Oracle 10g Spatial 中,强烈推荐使用R树索引,尽量不要用四叉树索引。

R树索引 最高可支持四维空间数据的索引。

R树索引把每一个几何实体近似看作其最小外包矩形(MBR Minimum Bounding Rectangle),在一个层中,R树索引为把每个空间数据对象的最小MBR建立一个层次结构。

随着我们不断的插入和更新数据,R树索引的质量会随之下降,我们可以用SDO_TUNE.QUALITY_DEGRADATION函数来判断索引的状态,如果返回值大于2,那么我们就应该考虑用ALTER INDEX REBUILD函数来重新构建索引。

ORACLE SPATIAL空间数据存储解决方案

ORACLE SPATIAL空间数据存储解决方案


拓扑数据模型

拓扑层:一个拓扑几何体通常是由一组拓扑元素组成(节点,边,面),每个几何体有一个唯一标识码。拓扑层是某一类拓扑几何体的集合,每个拓扑层对应一个特性表(feature table)。每个拓扑几何体被定义为SDO_TOP0_GEOMETRY类型的对象,其中包含其ID,层ID,几何体类型,拓扑ID。拓扑元数据存放在USER_SDO_TOPO_METADATA和ALL_SDO_TOPO_METADATA视图中,有系统维护。

一个拓扑里面可能包含许多的拓扑层(特性表层),这些拓扑层可以建立层次关系,即一个拓扑层可以有父层和孩子层。父层包含孩子层的所有特性。

拓扑数据模型表:

在每一个特性表中都有SDO_TOPO_GEOMETRY列,SDO_TOPO_GEOMETRY类型中包含TG_LAYER_ID和TG_ID两项属性。
特性表中的每个特性在关系表中都有一个或者多行记录。

节点、边、面信息表中存储TOPO_ID和TOPO_TYPE属性,我们可以根据特性表中的TG_LAYER_ID和TG_ID找到对应的TOPO_ID和TOPO_TYPE。

141

主题

982万

铜板

3万

好友

管理员

Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

积分
621916
发表于 2018-2-8 17:28 | 显示全部楼层
谢谢分享!资料非常棒!
回复 支持 反对

使用道具 举报

2

主题

6330

铜板

8

好友

地信院士

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

积分
2047
QQ
发表于 2020-5-15 18:02 | 显示全部楼层
谢谢楼主分享
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

在线客服
快速回复 返回顶部 返回列表