空间数据库基础.ppt
《空间数据库基础.ppt》由会员分享,可在线阅读,更多相关《空间数据库基础.ppt(68页珍藏版)》请在三一办公上搜索。
1、空间数据库基础,陈斌,主要内容,概述(1)数据库系统(3)空间数据库基础(3)Oracle Spatial简介(1)课程重点,Oracle Spatial简介,1-Oracle Spatial概念2-数据类型和元数据3-索引和查询空间数据4-坐标系统,1 Oracle Spatial概念,Oracle Spatial数据模型查询模型空间数据索引空间关系和条件空间聚集函数地理编码Geocoding,1.1 Oracle Spatial,Oracle Spatial是什么?一系列函数和过程的集合,在Oracle9i数据库中实现了对空间信息的存储、访问和分析提供了SQL模式和函数来实现Feature
2、 Collection的存储、检索、更新和查询Oracle Spatial的组成实现模式(MDSYS)规定了支持的几何数据类型的存储、语法和语义空间索引机制,1.1 Oracle Spatial,Oracle Spatial的组成一套运算符和函数进行感兴趣区域查询,空间连接查询和其它空间分析操作管理工具对象关系模型Object Relational ModelSpatial采用对象关系模型表示几何对象定义类型为MDSYS.SDO_GEOMETRY的字段每个几何对象无需占用多行存储对应OpenGIS Feature实现规范中的“SQL92+Geometry”Feature实现方案,1.1 Ora
3、cle Spatial,对象关系模型的优势支持丰富的几何对象类型包括圆弧arc,圆circle,混合多边形compound polygon,混合折线段compound line string,以及优化的矩形易于创建和维护空间索引以及构造空间查询空间索引由Oracle9i数据库服务器自动维护几何对象可以保存在单条记录的单个字段优化的性能,1.1 Oracle Spatial,Spatial支持的几何对象类型Point,point clusterLine stringPolygonArc line stringArc polygonCompound polygonCompound line str
4、ingCircleRectangle,1.1 Oracle Spatial,Spatial支持3维和4维几何对象类型仅实现存储和索引空间函数仅对前两维坐标操作空间运算符对多于两维的对象无效Spatial的层次结构数据模型高层次的对象由低一层次的对象构成包括元素element,几何形geometry和图层layer三个层次,1.2 数据模型,元素Element构成几何形对象的零件,包括点、折线段和多边形多边形按照顶点排列顺序分为外部多边形和内部多边形,顺时针为内,逆时针为外一个内多边形和若干外多边形组成带洞的多边形几何形GeometryGeometry代表一个地物,由若干顺序排列的元素构成构成元
5、素可以是单个、多个同类型或者多个不同类型,1.2 数据模型,图层Layer图层是若干具有相同属性的几何形的集合人口密度、道路桥梁网络等图层的几何形和相关的空间索引都保存在标准的数据库表中坐标系Coordinate System(空间参照系)空间数据都具有坐标系属性,坐标系可以是地理相关的,也可以和地理无关地理相关的坐标数据有长度单位地理无关即平面直角坐标(笛卡尔坐标),1.2 数据模型,坐标系Coordinate System(空间参照系)Spatial支持四种坐标笛卡尔坐标Cartesian coordinate平面直角坐标,是几何形的缺省坐标系地理坐标geodetic coordinate
6、经纬度坐标,与大地基准点相关投影坐标projected coordinate对应不同的应用目的,有多种投影方式局部坐标local coordinate非地理应用,如CAD等,1.2 数据模型,容差Tolerance容差值用来设定空间数据在运算时的精度反映了两个分离的点被考虑为重合的距离对于地理数据,容差值的单位是米对于非地理数据,容差值的单位和坐标系的单位一致越小的容差值对应越高的运算精度可以在图层元数据和某些空间运算参数中设定容差值,地理数据的容差值和具体的应用相关对于非地理数据,容差值可以设定为数据最高精度的0.5倍,1.2 数据模型,容差Tolerance在地理数据中设定过大的容差可能引
7、起多边形相对边重合而错误容差示例a,b的实际距离为0.846049894,应用距离函数SDO_GEOMETRY.DISTANCE如果图层容差为0.005,返回0.846049894如果容差设定为0.5,返回0,0.5,1.3 查询模型,Spatial采用两级查询模型来实现空间查询和空间连接空间查询分为两个独立的操作,两次操作的结果合成为最终结果两个操作分别称为主过滤Primary filter和次过滤Secondary filter主过滤先进行粗略的比较,快速生成查询结果的候选几何对象集合,计算代价小次过滤对来自主过滤的候选集合进行精确的匹配,生成精确的最终结果,计算代价高,但主过滤大大降低了
8、计算复杂度,1.3 查询模型,Spatial采用空间索引来实现主过滤,快速从大量数据集中找出查询结果的候选集某些操作可以只进行代价低的主过滤,如地图显示的缩放所需进行的查询,1.4 空间索引,Oracle Spatial的两种空间索引R树R-tree四叉树quadtree分别适合不同的应用场合可以在一个几何字段上同时创建两种索引使用ALTER INDEX的add_index参数在空间运算中可以指定使用哪个索引如SDO_RELATE的idx_tab1/idx_tab2选项,1.4 空间索引,R-tree和quadtree比较,1.5 空间关系和条件,Spatial在次过滤中实现几何形之间的空间关
9、系运算Spatial提供了几个次过滤方法实现空间关系SDO_RELATE测试拓扑关系SDO_WITHIN_DISTANCE测试两个空间对象是否在指定的距离范围内SDO_NN确定一个空间对象的最近邻居SDO_RELATE采用9交叉模型来表达点线面之间的空间关系空间关系可以进行组合,1.5 空间关系和条件,SDO_RELATE,1.5 空间关系和条件,SDO_WITHIN_DISTANCE先创建B的缓冲区D,再判定A和D是否相离SDO_NN返回指定个数的距离A最近的对象,1.6 空间聚集函数,定义空间聚集函数作用于包含若干几何对象的查询结果,返回单个SDO_GEOMETRY对象示例:返回查询结果的
10、最小包围盒select SDO_AGGR_MBR(shape)from cola_marketSDOAGGRTYPE类型多数空间聚集函数以SDOAGGRTYPE类型为参数,CREATE TYPE sdoaggrtype AS OBJECT(geometry MDSYS.SDO_GEOMETRY,tolerance NUMBER);,1.6 空间聚集函数,SDOAGGRTYPE类型示例SELECT SDO_AGGR_UNION(MDSYS.SDOAGGRTYPE(c.shape,0.005)FROM cola_markets c WHERE c.name cola_d;容差值确定了进行聚集操作时
11、的精确度,1.6 空间聚集函数,空间聚集函数包括了SDO_AGGR_CENTROIDSDO_AGGR_CONVEXHULLSDO_AGGR_LRS_CONCATSDO_AGGR_MBRSDO_AGGR_UNION,1.7 地理编码geocoding,定义将邮政地址转换为标准化的地址、坐标位置Spatial可以与地理编码服务供应上的软件集成,实现地理编码的功能,2 数据类型和元数据,示例:插入/索引/查询SDO_GEOMETRY对象类型Geometry示例Geometry元数据结构度量单位,2.1 示例:插入/索引/查询,可乐市场分析,2.1 示例:插入/索引/查询,创建Feature表“可乐市
12、场”,create table cola_markets(mkt_id number primary key,name varchar(32),shape MDSYS.SDO_GEOMETRY),2.1 示例:插入/索引/查询,插入记录,insert into cola_markets values(1,cola_a,MDSYS.SDO_GEOMETRY(2003,-2维多边形 NULL,NULL,MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,3),-矩形,外部 MDSYS.SDO_ORDINATE_ARRAY(1,1,5,7)-顶点数据);insert into cola
13、_markets values(.,2.1 示例:插入/索引/查询,更新元数据视图创建空间索引前必需工作,相当于创建图层,insert into USER_SDO_GEOM_METADATA values(cola_markets,shape,MDSYS.SDO_DIM_ARRAY(-20 x20网格 MDSYS.SDO_DIM_ELEMENT(X,0,20,0.005),MDSYS.SDO_DIM_ELEMENT(Y,0,20,0.005),NULL-SRID);,2.1 示例:插入/索引/查询,创建空间索引,create index cola_spatial_idxon cola_mark
14、ets(shape)indextype is MDSYS.SPATIAL_INDEX;-建立r-tree索引-下面的语句建立quadtree索引-parameters(SDO_LEVEL=8);,2.1 示例:插入/索引/查询,查询示例返回a/c市场的交select SDO_GEOM.SDO_INTERSECTION(c_a.shape,c_c.shape,0.005)from cola_markets c_a,cola_markets c_cwhere c_a.name=cola_a and c_c.name=cola_c;返回所有市场的面积select name,SDO_GEOM.SDO_
15、AREA(shape,0.005)from cola_markets,2.2 SDO_GEOMETRY类型,定义,create type SDO_GEOMETRY as object(SDO_GTYPE number,SDO_SRID number,SDO_POINT SDO_POINT_TYPE,SDO_ELEM_INFO MDSYS.SDO_ELEM_INFO_ARRAY,SDO_ORDINATES MDSYS.SDO_ORDINATE_ARRAY);create type SDO_POINT_TYPE as object(X number,y number,z number);creat
16、e type SDO_ELEM_INFO_ARRAY as varray(1048576)of number;create type SDO_ORDINATE_ARRAY as varray(1048576)of number;,2.2 SDO_GEOMETRY类型,SDO_GTYPE指明了geometry的类型,对应OGIS几何对象模型中的类型是一个4位数字,格式为dltt,其中:d代表geometry的维数:2,3,4l代表线性参照系LRS测量维度,非LRS为0tt指明了geometry的类型,00-07,08-99保留geometry的几个方法可以返回类型值GET_DIMS,GET_LR
17、S_DIM,GET_GTYPE,2.2 SDO_GEOMETRY类型,SDO_GTYPE,2.2 SDO_GEOMETRY类型,SDO_SRIDSDO_SRID用来确定geometry所对应的空间参照系null代表不对应任何参照系非空值必需参照MDSYS.CS_SRS表的SRID字段,同时需要存入USER_SDO_GEOM_METADATA表的SRID字段在同一个字段里的所有geometry对象都必须具有相同的SRID,2.2 SDO_GEOMETRY类型,SDO_POINT为了性能优化而设置的如果SDO_ELEM_INFO和SDO_ORDINATES成员都为空的话,SDO_POINT就是一个
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 空间 数据库 基础

链接地址:https://www.31ppt.com/p-5372270.html