230 likes | 503 Views
Oracle Spatial 特性讨论. 1301210262 郑培晨. 目录. 发展历史及简介 SDO_GEOMETRY 对象类型 主要功能 几何结构和空间参照 空间索引 空间关系运算 其它功能. Oracle Spatial 发展历史. Oracle Spatial 简介. Oracle Spatial 是 Oracle 公司推出的空间数据库组件,通过 Oracle 数据库系统存储和管理空间数据
E N D
Oracle Spatial 特性讨论 1301210262 郑培晨
目录 • 发展历史及简介 • SDO_GEOMETRY对象类型 • 主要功能 • 几何结构和空间参照 • 空间索引 • 空间关系运算 • 其它功能
Oracle Spatial 简介 • Oracle Spatial 是 Oracle 公司推出的空间数据库组件,通过Oracle数据库系统存储和管理空间数据 • Oracle Spatial 把纯关系型数据库改造为对象关系型数据库,在数据类型中添加 SDO_GEOMETRY类型,把空间信息作为一个字段存储
SDO_GEOMETRY对象类型 在图层表中用SDO_GEOMETRY类型的列存储对象的空间数据,该类型的定义为: CREATE TYPE SDO_GEOMETRY AS OBJECT( SDO_GTYPE NUMBER, SDO_SRID NUMBER, SDO_POINT SDO_POINT_TYPE, SDO_ELEM_INFO SDO_ELEM_INFO_ARRAY, SDO_ORDINATES SDO_ORDINATES_ARRAY);
SDO_GEOMETRY对象类型 • SDO_GTYPE:几何实体类型(符合OpenGIS的SQL • 简单要素规范) • 由4位数字组成,格式为DLTT: • D表示维数,可能的取值为2,3,4 • L代表线性参考,如果没有取值为0 • TT标识集合体的类型,取值为00到09
SDO_GEOMETRY对象类型 SDO_GTYPE的约定
SDO_GEOMETRY对象类型 • SDO_SRID:标识几何实体所关联的坐标系统 • 如果SDO_SRID值为空,则几何实体不与空间坐标系相关联; • 如果值为非空,则该值必须来自于MDSYS.CS_SRS表的SRID列,并且这样的值必须插入到USER_SDO_GEOM_METADATA视图的SRID列中 • 同一图层,各几何实体的SRID值必须相同
SDO_GEOMETRY对象类型 • SDO_POINT:包含X,Y,Z数值信息,用于表示几何 • 类型为点的几何对象 • 如果SDO_ELEM_INFO和SDO_ORDINATE数组都为空,则 SDO_POINT中的X,Y,Z为点对象的坐标值;否则, SDO_POINT可以忽略 • 当图层中几何体全部为点时,建议用SDO_POINT来存储坐标数据而不用SDO_ELEM_INFO和SDO_ORDINATE,这样可以极大地优化存储性能
SDO_GEOMETRY对象类型 • SDO_ELEM_INFO:指定在SDO_ORDINATES属性中 • 存储的坐标应当如何解释 • 每3个值一组,用于解释一个“Element”,每组中的3个值分别是: SDO_STARTING_OFFSET、SDO_ETYPE、SDO_INTERPRETATION • SDO_STARTING_OFFSET代表了从SDO_ORDINATES中开始解析的坐标序号 • SDO_ETYPE和SDO_INTERPRETATION则需配合起来解析
SDO_GEOMETRY对象类型 • SDO_ORDINATES:记录几何对象坐标的变长数值数组, • 需与SDO_ELEM_INFO配合使用 (0,15) (10,15) SDO_GTYPE=2003,表示几何对象为二维多边形 SDO_SRID=NULL,表示采用平面笛卡尔坐标系 SDO_POINT=NULL,表示几何对象不是点类型 SDO_ELEM_INFO=(1,1003,3),表示几何对象为矩形,包含两个点:左下角和右上角 SDO_ORDINATES=(0,0,10,15),给出左下角和右上角的坐标 (10,0) (0,0)
SDO_GEOMETRY对象类型 对于多边形来说,外环坐标点应按逆时针排列,内环坐标点应按顺时针排列,且都需要闭合 SDO_GTYPE=2003,表示几何对象为二维多边形 SDO_SRID=NULL,表示采用平面笛卡尔坐标系 SDO_POINT=NULL,表示几何对象不是点类型 SDO_ELEM_INFO=(1,1003,1,19,2003,1) SDO_ORDINATES=(2,4,4,3,10,3,13,5,13,9,11,13, 5,13,2,11,2,4,7,5,7,10,10,10,10,5,7,5)
ORACLE SPATIAL功能 ORACLE SPATIAL将所有的地理空间数据类型(矢量、栅格、网格、影像、网络、拓扑)统一在单一、开放、基于标准的数据管理环境中,将空间过程和操作直接转移到数据库内核,使其不但具有传统GIS的所有特性,而且还具有关系数据库的特性,因而能支持更广泛的应用程序并提高空间计算的性能。
ORACLE SPATIAL功能 1、几何结构和空间参照ORACLE SPATIAL 支持三种基本的几何形状,这些几何形状可分别用于表示那些通常构成空间数据库的特征,包括:点和点簇:点可以表示建筑、消防栓、电线杆、钻井、货车车厢或移动的交通工具等位置。线和线串:线可以表示道路、铁路线、公用设施管线或故障线等。多边形和带孔的复杂多边形:多边形可以表示城市、街区、河漫滩或油田和天然气田的轮廓。带孔的多边形可以表示由一片沼泽环绕的一小块土地。
ORACLE SPATIAL功能 2、空间索引 ORACLE SPATIAL提供了R树索引和四叉树索引两种索引机制来提高空间查询和空间分析的速度,用户根据空间数据的不同类型来创建不同的索引。 1)R树索引 MBR:Minimum Bounding Rectangle
ORACLE SPATIAL功能 在Oracle Spatial中,一个空间表里所有的几何对象就是通过它们的MBR的R树索引进行管理的。从下面的图中很容易可以理解,MBR索引的根节点包括A、B两个较大的MBR,当一个查询可以很快速地找到A后,再查找其中的a或b这两个比较小的MBR,如果找到了a,那么再最终找到1或者2这两个最小的MBR。
ORACLE SPATIAL功能 2)四叉树索引 四叉树空间索引的原理类似地图切片,如下图。可以想象,分级的级别越多,对几何对象的描述会更准确。
ORACLE SPATIAL功能 Oracle Spatial并不鼓励使用四叉树空间索引,除了某些特殊场景并且你确认采用四叉树索引会带来好处。Oracle提供了一个表格对比了R树索引和四叉树索引的一些特点。
ORACLE SPATIAL功能 3、空间关系运算各种几何特征的交互作用可以通过各种空间关系操作来确定,在Oracle Spatial中,主要的空间关系操作在下表中列出:
ORACLE SPATIAL功能 此外,Oracle Spatial还提供了基于SDO_RELATE不同参数代表的不同空间关系的一些操作,如下表:
ORACLE SPATIAL功能 • 其他功能 • 基于函数的索引支持 • 大地坐标支持 • 空间索引的分区支持 • 并行创建空间索引 • 线性参照支持 • 空间聚集 • 网络数据模型 • 拓扑数据模型 • GeoRaster • 空间分析函数 • 地理编码器