面朝大海,春暖华开

focus on scientific computue, 3dgis, spatial database
专注于科学计算、GIS空间分析

 

Oracle Spatial 翻译第一漳

叶科峰本科毕业设计的翻译部分,我稍微改了一下,也放进来。内容是Oracle Spatial 文档的第一部分,《基本概念》,也可能是最重要的部分。

 

空间概念

Oracle Spatial Oracle9i数据库中是能对空间数据进行存取,快速有效分析的一系列完整的函数和过程的集合。

空间数据描述真实或语义上的事物在他们存在的空间的基本位置特征。

1.1 什么是Oracle Spatial

Oacle Spatial通常称为Spatial, 主要涉及空间数据,在Oracle9i数据库中提供了能够很容易的对空间元素进行存储、获取、更新、查询的SQL计划和函数。

Spatial由以下几个方面组成:

1.一个计划(mdsys):规定了支持几何数据类型的存储,语法和语义。

2.一种空间索引机制。

3.一系列的操作和函数:实现面积查询、空间连接查询以及其他的空间分析操作

4.一套有效的管理实用工具

一个空间元素的空间组成是它在一些空间坐标中的形状几何表示。这被称为几何学。

1.2 对象-关系模型

Spatial支持对象-关系模型来表达几何类型。对象-关系模型用带有单一MDSYS.SDO_GEOMETRY列以及一行表示一个几何实体的表来存储空间数据。对象-关系模型符合“SQL with Geometry Types”,在OpenGIS ODBC/SQL空间几何特征的规范书内操作带有空间特征的数据表。

对象-关系模型有以下优点:

1.支持多种几何类型,包括弧、圆、复合多边形、复合线、以及优化矩形。

2.容易创建和维护索引以及执行空间查询。

3.利用Oracle9i数据库服务器维护索引。

4.几何结构数据保存在单一的行和列

5.优化的执行效率。

1.3 空间数据简介

Oracle Spatial 的设计使得空间数据的管理更加容易,用户使用带有位置功能的应用程序荷地理信息系统更加自然。Oracle Spatial使空间数据很容易进行管理以及给位置激活应用软件或GIS应用软件提供空间数据。一旦空间数据存储在Oracle数据库里,就可以很容易的进行操作,获取以及描述和数据库存储的其他数据建立关系。

一张道路地图就是一个普通的空间数据的例子,一张道路地图是一个二维的对象,它包括代表城市、道路以及像州、省界这样的行政边界的点,线,面。道路地图很清楚的表达了地理上的信息。地球上存在的城市、道路、行政边界投影在二维的屏幕或者纸上,保留了这些对象的位置关系和距离关系。

这些包含了地球位置(经度、纬度、高度、深度)的数据就是空间数据。当这幅地图完成后,这些空间数据用来在二维纸上投影基本物体的位置。一个地理信息系统通常被用来存储、查询、表达这些表现地理关系的空间数据。

各种存储在Spatial中的空间数据不同于那些来自CADCAMGIS数据。CAD/CAM系统是用的是很小的坐标,与地理坐标不同,它们只能用于制作汽车发动机或者电路印刷板的图纸。

这些系统的不同并不在于他们数据的复杂程度,而是数据相对的大小。这些系统事实上可能包含了相同数量的点,在地理坐标中,一座桥的地理位置在一英寸变化了十分之几不会给道路施工人员带来明显的问题,然而如果一个发动机的活塞直径一英寸有十分之几的空隙,这个发动机就不能运作。一个印刷电路板在它的表面很可能有数千条蚀刻的物体,这些物体比道路施工人员的设计图上最小的细节都还要小。

这些应用软件都能存储、获取、更新、或者查询一些元素的非空间和空间属性。非空间属性比如:姓名、土壤类型、土地利用分类、编码等等。空间属性是指元素的几何坐标或者基于向量的形状。

 

几何类型

几何是指一系列规则由直线段或者圆弧连接起来的点。几何的语义有它的类型定义。Spatial支持几种原始的类型。以及这些类型的组合,包括二维:

1,点以及点集。

2.直线和折线。

3.多变形。

4.弧线(所有的弧都是指圆弧)。

5.有弧多边形。

6.复合多变形。

7.复合线。

8,圆。

9.优化的矩形。

二维点有两个坐标,XY,通常对应经度和纬度。折线由一个点或者多个点定义的直线段组成。多边形是指连接的折线形成的一个闭合环并且多边形的内部是隐含的。尽管支持自相交折线,但不支持自相交多变形。如果一条折线自相交,则不会形成多边形。一条自相交折线没有隐含的内部空间。

 

1.5数据模型

Spatial 数据模型是由元素、几何物体、层组成的分等级的结构,符合空间数据的表示方法。层由几何物体组成,几何物体由基本元素组成。例如:一个点可能代表一个建筑物的位置,一条线可能代表一条路或者一条飞行路线,一个多边形可能代表一个州、一个城市、一个区域或者一个城市的街区。

1.5.1元素

元素是几何的基本组成部分。Spatial支持的空间元素类型包括点、线、面。例如:基本元素可以模拟星群(点集),道路集(线集)或者国家边界(多边形集合)。在所有的坐标中基本元素都保存XY坐标对。有洞多边形的外部边界环和内部边界环被看作两个明显不同的基本元素,这些元素组合成一个复杂多边形。

点数据由一个坐标对组成。线数据由两个坐标对表示的直线段组成。多边行由一系列的坐标对组成,这些坐标对围绕多边形按一定的顺序排列(多边形的外部边界坐标按反时针方向排列,内部边界按顺时针方向排列)。

1.5.2几何体

一个几何物体代表一个由一系列最简单的基本元素组成的有空间特征的物体。一个几何物体可能由一个基本元素组成,这是一个支持原始类型的实例,或有可能由同类的或不同类基本元素集合组成。一个多边形集合用来表示一系列的岛屿,这是同类的集合。在不同类集合中各个元素的类型不同。例如:一个点和一个面。另外一个例子几何对象可以描述一个镇的可用地。这样可以描述一个有洞的多边形,这个洞可能是水塘或者另外一个分区。

1.5.3

层是有相同属性的几何对象的集合。例如:一个层在地理信息系统中可能包含了地形特征,另外一个层可能描述人口的密度,第三个层可能描述了一个地区的道路和桥梁的网络关系(线和点)。所有层的几何对象和相关的空间索引都存储在数据库标准的数据表中

1.5.4坐标系统

坐标系统是把坐标对分配到具体的位置并使所有的坐标对都产生联系的方法。它能够使坐标对表示真实世界的具体位置。

任何的空间数据都有一个坐标系统。坐标系统可以是与地理有关的(描述地球的特殊表示方法),也可以与地理无关(缺省为笛卡尔坐标系)。如果坐标系统与地理有关,则有一个缺省的度量单位与它对应(比如米)。但也可以自由定义指定的单位(比如公里)。

Oracle Spatial8.1.6以前的版本,几何数据(SDO_GEOMETRYE类型)就存储了一系列的坐标对而没有和任何的坐标系统关联。Spatial的操作和函数总是假定直角坐标系为空间数据的坐标系。如果地理几何数据储存时是经纬度坐标,就不会提供纠正的结果。在8.1.6版本以后,Spatial支持许多不同的坐标系统,并且支持数据在不同坐标系统的自由转换。

空间数据可以用笛卡尔坐标系统,地理学坐标系统,工程坐标系统或者地方的坐标系统来表示

1.笛卡尔坐标用几条互相垂直的轴来描述二维或者三维空间点的位置。如果一个坐标系统没有明确的表示与地理位置有关,那么笛卡尔坐标系统是默认的坐标系统。

2.大地坐标系统(有时候称为地理学坐标)是用角度作为单位的坐标系统(经度和纬度),接近球面坐标,用来表示特殊的地球地理数据(地理数据是表示地球外形的一种方法并且与地理学坐标有关)。

3.投影坐标系是平面笛卡儿坐标系,来自对地球表面上的点实施一种数学操作,映射到平面。有各种不同的数学映射方式,每一种有不同的用途。

4.地方坐标系统是与地理学无关的笛卡尔坐标系统,一般用与CAD等应用软件或者一些地方的测量。

当进行几何操作的时候,Spatial用笛卡尔变换或者曲面模型来为空间数据选择合适的坐标系统。

1.5.5 公差

公差与一定精度的空间数据有关。公差值是一个不能忽略的数字。值的范围和值的重要性依靠空间数据是否与测量学坐标系统有关。

对于测量数据(例如经纬度数据),公差值是用米来计算的。例如公差值是100就表示公差是100米。

对于不是测量学数据,公差值可以是1,在使用中涉及到距离单位的小数部分。(如果坐标系统是特定的,则距离单位是缺省的)。例如,一个公差值是0.005就表示这个距离单位是0.005

对于这两种数据,公差值越小,数据的精度越高。

公差值在两个地方指定:

定义图层的元数据表。

作为一个函数的可选择参数。

1.5.5.1 定义图层的元数据表

一个图层的空间信息包括公差。xxx_SDO_GEOM_METADATADA表中的DIMINFO列存储公差值。

如果一个函数带有可选择的公差参数并且这个公差参数是null或者没有指定,则使用图层中SDO_TOLERANCE的值。在第二章第一节有一个使用不是地理学数据的例子,两个几何形状cola_bcola_d之间的真实距离是0.846049894。如果使用SDO_GEOM.SDO_DISTANCE函数来查询这两个几何形状的距离但并没有指定公差参数值,结果就依靠图层中SDO_TOLERANCE指定的公差值。例如:

如果图层的SDO_TOLERANCE指定的值为0.005,那么查询结果返回0.846049894.

如果图层的SDO_TOLERANCE指定的值为0. 5,那么查询结果返回0

查询结果为0,是因为Spatial首先围绕被查询的几何形状创建公差为0.5的缓冲区,在这个例子中,cola_bcola_d的缓冲区交叠

因此你可以在一个图层中选择任意一个接近SDO_TOLERANCE的值

这个值可以使你得到两个物体间你想要的精度距离。例如:如果两个几何物体的距离是0.8个单位,则认为它们是分开的,需指定更小的SDO_TOLERANCE值比如0.05或者更小。

这个值可以反映图层中与几何数据有关的值的精度。例如:如果所有的几何数据在一个不是地理学的图层里面,并且两个物体的距离为0.8个单位,则认为这两个物体不是分开的SDO_TOLERANCE的值定义为0.5就合适了。为你达到更好的精度,你必须重写(覆盖)缺省的公差参数。

在非地理学数据中,大多数都使用第二个实例(图层中几何几何数据的精度)是:在几何数据中使用最高精度。在 下一个标准使用0.5作为SDO_TOLERANCE的值。例如,如果几何数据定义为整数,那么精度值使用0.5。然而,如果几何数据用有4个小数点的值来表示位置(例如31.2587,

比如经度纬度值,那么SDO_TOLERANCE的值定义为0.00005

 

1.5.5.2 作为输入参数

许多的Spatial函数都接受一个可选择的公差参数,在指定的情况下不考虑图层缺省的公差值。如果两个点的距离小于或者等于公差值,则Spatial认为这两个点是一个点。因此,公差通常反映了数据使用者对空间数据精度的要求。

例如,假定你想知道距你家5公里范围的所有饭店,再假定Maria比萨饼店距离你家5.1公里。如果空间数据有地理坐标并且你有一定的要求,找到5公里范围内的所有饭店使用公差为100或者500,那么Maria的比萨饼店将包括在内,因为5.1公里在5.1公里范围内。然而如果指定的公差小于100(比如50),那么Maria的比萨饼店将不包括在内。

Spatial 函数的公差值一般都很小。尽管最佳公差值依靠具体的应用软件或集体的数据应用。

.6 查询模式

Spatial使用两种查询模式解决空间查询和空间连接。通常是这两种查询操作完成需要的查询。这两种操作的结合使得查询的结果更精确。

这两种操作涉及到一级和二级过滤操作:

初级过滤快速选择大概符合要求的记录传递给二级过滤。初级过滤对接近要求几何数据进行比较,减少了计算的复杂程度,被称为一种低成本的过滤方法。因为初级过滤比较的是接近要求的几何数据,返回的是精确结果的超集

二级过滤对来自一级过滤的几何数据进行精确的计算。二级过滤的结果是空间查询的正确结果。二级查询操作是一种比较高成本的计算,但它仅应用于一级查询的结果,不是整个数据集。

Spatial使用一种空间索引来执行一级过滤。Spatial不需要同时使用一级和二级过滤。在一些事例中,使用一级过滤就已经足够了。例如,在地图中的对数据缩放请求利用矩形的可见边界进行交互作用。一级过滤很快就返回查询的超集。地图请求应用于常规的快速的显示目标区域。

一级过滤的目的创建数据的子集以及减少二级过滤处理负担。因此一级过滤是有效率的操作。这决定于数据空间索引的特征。

1.7 空间数据索引

Oracle数据库引入空间索引对于Spatial产品起到关键性作用。空间索引像其他任何索引一样,提供一种限制查询的机制,但空间索引是基于空间标准的,例如交集或者并集。空间索引需要:

在索引数据空间内查找于给定的点或特定区域相互作用的目标.

两个索引数据空间查找成对的目标,这个索引数据空间是各种空间相互作用(空间结合)。

空间索引是一种合理的索引。空间索引的条目依靠坐标系空间几何目标的具体位置,但索引值在不同的范围。索引目录可能在线性规则的范围,并且几何目标的坐标对可能是成队的整型、浮点型的点,或者是双精度的数值。

Oracle Spatial允许使用R树索引(缺省)或者四叉树索引,或者两者的结合。所有的索引类型都适合不同的情况。你可以同时在同一列几何目标使用R树索引和四叉树索引。利用add_index参数和ALTER INDEX声明,你可以选择一种索引的带有特定参数的空间操作来完成查询,比如SDO_RELATE操作。

1.7.1 R树索引

SpatialR树索引可以索引四维的空间数据。R树索引用一个最接近几何目标的矩形(叫作最小范围矩形或者MBR)来近似作为几何目标。

对于一个图层的几何,R树索引由在图层里的几何体的MBR上的层次索引组成。

一个R树索引存储在空间索引表中(USER_SDO_INDEX_METADATA视图的表SDO_INDEX_TABLE)。R树索引维持一个数字序列发生器(SDO_RTREE_AEQ_NAME在视图USER_SDO_INDEX_METADATA中)保证当用户创建一个索引时候能够同步更新。

1.7.2 四叉树索引

在线形四叉树索引中,坐标系空间(对于图层是所有几何目标存在的地方)被划分为很多的小方格。这些小方格覆盖了存储的每一个几何目标。小方格按一定的有规则的分等级的样式分解坐标系空间。一系列的坐标对,坐标系空间被认为是一个矩形。第一次分解,矩形被分开为四个相同的方格,这些通过几何物体相互关系的方格又各自被分解为四个相同的方格。这个过程一直持续只到达到一定的标准为止,比如方格的大小或者方格的数量覆盖几何物体。

Spatial使用固定大小或者可变大小的方格来覆盖几何物体:

固定大小的方格有一定的标准,如果这个决定因素是唯一的决定因素,那么当坐标系空间被分解一定次数则停止分解。因此,所有的小方格都是固定的大小和形状。

可变大小的方格的决定依靠提供的最大数量的方格的值。如果每个几何物体有n个小方格是唯一的决定因素,那么当n个小方格覆盖特定的几何物体就停止方格分解。覆盖几何目标的固定方格大小的决定因素和可变大小方格的数量作为可选参数分别叫作SDO_LEVELHSDO_NUMTILES.越小的固定大小方格或越多可变大小方格将更好的近似几何物体。

Spatial支持两种四叉树索引类型,反映SDO_LEVELSDO_NUMTILES有效结合的值。

固定索引:一个非空非零的SDO_LEVEL值和一个为空或为零的SDO_NUMTILES值决定固定大小方格的大小

混合索引;非空非零的SDO_LEVELSDO_NUMTILES的值,每个几何物体将导致两列方格。一列包含固定大小的方格,另一列包含可变大小的方格。混合索引在许多的Spatial应用软件中都不推荐使用

posted on 2005-05-17 22:08  风过 无痕  阅读(1601)  评论(1编辑  收藏  举报

导航

向日葵支付宝收钱码