《空间数据库》实验指导书----实验三----郭明

上传人:第*** 文档编号:55272102 上传时间:2018-09-26 格式:DOC 页数:24 大小:6.72MB
返回 下载 相关 举报
《空间数据库》实验指导书----实验三----郭明_第1页
第1页 / 共24页
《空间数据库》实验指导书----实验三----郭明_第2页
第2页 / 共24页
《空间数据库》实验指导书----实验三----郭明_第3页
第3页 / 共24页
《空间数据库》实验指导书----实验三----郭明_第4页
第4页 / 共24页
《空间数据库》实验指导书----实验三----郭明_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《《空间数据库》实验指导书----实验三----郭明》由会员分享,可在线阅读,更多相关《《空间数据库》实验指导书----实验三----郭明(24页珍藏版)》请在金锄头文库上搜索。

1、空间数据库空间数据库课程实验指导书课程实验指导书班级 学号 姓名 编制人:郭明单位:北京建筑大学测绘与城市空间信息学院2015 年 9 月评分表实验一实验二实验三实验四总评目目 录录实验指导书.1空间数据库实验预备知识Oracle Spatial 简介2一、元数据表说明.2二、空间字段解析.3三、空间索引技术.6实验一 认识 Oracle Spatial 的主要数据库对象.7一、实验目的.7二、实验环境.7三、实验步骤及分析(2 课时)9实验二 空间查询.14一、实验目的14二、实验环境.14三、实验步骤及内容(2 课时)14Step1. 创建一张表,其中 shape 用来存放空间数据14St

2、ep2. 在 user_sdo_geom_metadata 表中插入新记录,用于描述空间字段.14Step3. 创建空间索引.14Step4. 插入空间数据.15Step5. 查询.16实验三 简单的空间数据库示例 .20一、实验目的.20二、实验环境.20三、实验内容和要求(2 课时)20实验四 空间数据库设计与开发示例 .22一、实验目的.22二、实验环境.22三、实验内容和要求(4 课时)22空间数据库实验预备知识空间数据库实验预备知识Oracle Spatial简介简介Oracle Spatial 主要通过元数据表元数据表、空间数据字段空间数据字段(即 sdo_Geometry字段)和

3、空间索引空间索引来管理空间数据,并在此基础上提供一系列空间查询和空间空间查询和空间分析分析的程序包,让用户进行更深层次的 GIS 应用开发。Oracle Spatial 使用空间字段 sdo_Geometry 存储空间数据,用元数据表来管理具有sdo_Geometry 字段的空间数据表,并采用 R 树索引和四叉树索引技术来提高空间查询和空间分析的速度。一、元数据表说明Oracle Spatial 的元数据表存储了有空间数据的数据表名称、空间字段名数据表名称、空间字段名称、空间数据的坐标范围、坐标系称、空间数据的坐标范围、坐标系以及坐标维数说明坐标维数说明等信息。用户必须通过元数据表才能知道 O

4、racle 数据库中是否有 Oracle Spatial 的空间数据信息。通过元数据视图元数据视图(USER_SDO_GEOM_METADATA)访问元数据表。元数据视图的基本定义为:其中,TABLE_NAME 为含有空间数据字段的表名,COLUMN_NAME 为空间数据表中的空间字段名称,DIMINFO 是一个按照空间维顺序排列的SDO_DIM_ARRAY 对象的动态数组,SRID 则用于标识与几何对象相关的空间坐标参考系。SDO_DIM_ELEMENT 对象的定义如下所示:Create Type SDO_DIM_ARRAY as OBJECT (SDO_DIMNAME VARCHAR2(6

5、4),SDO_LB NUMBER,SDO_UB NUMBER,SDO_TOLERANCE NUMBER);其中,SDO_DIMNAME 是空间维名称,SDO_LB 为该空间维的左下角坐标,SDO_UB 为该空间维的右上角坐标,SDO_TOLERANCE 为几何对象的表示精度。 二、空间字段解析Oracle Spatial 的空间数据都存储在空间字段 sdo_Geometry 中,理解sdo_Geometry 是编写 Oracle Spatial 程序的关键。sdo_Geometry 是按照 Open GIS 规范定义的一个对象,其原始的创建方式如下所示。 sdo_Gtype是一个 NUMBER

6、 型的数值,用来定义存储几何对象的类型。sdo_Gtype是一个 4 个数字的整数,其格式为 dltt,其中 d 表示几何对象的维数;l 表示三维线性参考系统中的线性参考值,当 d 为 3 维或者 4 维时需要设置该值,一般情况下为空;tt 为几何对象的类型,Oracle Spatial 定义了 7 种类型的几何类型,目前,tt 使用了 00 到 07,其中 08 到 99 是 Oracle Spatial 保留的数字,以备将来几何对象扩展所用。 sdo_Sridsdo_Srid 也是一个 NUMBER 型的数值,它用于标识与几何对象相关的空间坐标系。如果 sdo_Srid 为空(null)

7、,则表示没有坐标系与该几何对象相关;如果该值不为空,则该值必须为 MDSYS.CS_SRS 表中 SRID 字段的一个值,在创建含有几何对象的表时,这个值必须加入到描述空间数据表元数据的USER_SDO_GEOM_METADATA 视图的 SRID 字段中。对于我们通常使用国际标准的 Longitude/Latitude(8307),Oracle Spatial 规定,一个几何字段中的所有几何对象都必须为相同的 sdo_Srid 值。 sdo_Pointsdo_Point 是一个包含三维坐标 X,Y,Z 数值信息的对象,用于表示几何类型为点的几何对象。如果 sdo_Elem_Info 和 SD

8、O_ORDINATES 数组都为空,则 sdo_Point 中的 X,Y,Z 为点对象的坐标值,否则,sdo_Point 的值将被忽略(用 NULL 表示) 。Oracle Spatial 强烈要求用 sdo_Point 存储空间实体为点类型空间数据,这样可以极大的优化 Oracle Spatial 的存储性能和查询效率。 sdo_Elem_Infosdo_Elem_Info 是一个可变长度的数组,每 3 个数作为一个元素单位,用于表示坐标是如何存储在 SDO_ORDINATES 数组中的。本文把组成一个元素的 3 个数称为 3 元组。一个 3 元组包含以下 3 部分的内容: SDO_STAR

9、TING_OFFSETSDO_STARTING_OFFSET 表明每个几何元素的第一个坐标在SDO_ORDINATES 数组中的存储位置。它的值从 1 开始,逐渐增加。 SDO_ETYPE SDO_ETYPE 用于表示几何对象中每个组成元素的几何类型。当它的值为 1, 2, 1003 和 2003 时,表明这个几何元素为简单元素。如果SDO_ETYPE 为 1003,表明该多边形为外环(第一个数为 1 表示外环) ,坐标值以逆时针存储;如果 SDO_ETYPE 为 2003,表明该多边形为内环(第一个数为 2 表示内环) ,坐标值以顺时针存储。当 SDO_ETYPE 为 4, 1005 和 2

10、005 时,表明这个几何元素为复杂元素。它至少包含一个 3 元组用以说明该复杂元素具有多少个几何简单元素。同样,1005 表示多边形为外环,坐标值以逆时针存储;2005 表示多边形为内环,坐标值以顺时针存储。 SDO_INTERPRETATIONSDO_INTERPRETATION 具有两层含义,具体的作用由 SDO_ETYPE 是否为复杂元素决定。如果 SDO_ETYPE 是复杂元素(4, 1005 和 2005) ,则SDO_INTERPRETATION 表示它后面有几个子 3 元组属于这个复杂元素。如果 SDO_ETYPE 是简单元素(1, 2, 1003 和 2003) ,则SDO_I

11、NTERPRETATION 表示该元素的坐标值在 SDO_ORDINATES 中是如何排列的。需要注意的是,对于复杂元素来说,组成它的子元素是连续的,一个子元素的最后一个点是下一个子元素的起点。最后一个子元素的最后一个坐标要么与下一个元素的 SDO_STARTING_OFFSET 值减 1 所对应的坐标相同,要么是整个 SDO_ORDINATES 数组的最后一个坐标。 sdo_OrdinatesSDO_ORDINATES 是一个可变长度的数组,用于存储几何对象的实际坐标,是一个最大长度为 1048576,类型为 Number 的数组。SDO_ORDINATES 必须与 sdo_Elem_Inf

12、o 数组配合使用,才具有实际意义。SDO_ORDINATES 的坐标存储方式由几何对象的维数决定,如果几何对象为二维,则 SDO_ORDINATES 的坐标以 x1, y1, x2, y2, 顺序排列,如果几何对象为三维,则 SDO_ORDINATES 的坐标以x1, y1, z1, x2, y2, z2, 的顺序排列。 三、空间索引技术三、空间索引技术Oracle Spatial 提供 R 树索引和四叉树索引两种索引机制来提高空间查询和空间分析的速度。用户需要根据不同空间数据类型创建不同的索引,当空间数据类型比较复杂时,如果选择索引类型不当,将使 Oracle Spatial 创建索引的过程

13、变得非常慢。实验一实验一 认识认识 Oracle Spatial 的主要数据库的主要数据库对象对象一、实验目的一、实验目的1. 了解 Oracle10g 数据库中 MDSYS 方案的空间元数据表空间元数据表的结构及用途;2. 了解对象类型对象类型 MDSYS.SDO_DIM_ARRAY 以及和空间元数据表的关系;3. 掌握通过元数据视图元数据视图 USER_SDO_GEOM_METADATA 查看空间元数空间元数据表据表的内容;4. 了解对象类型对象类型 MDSYS.SDO_GEOMETRY 的结构及用途;5. 了解数组类型数组类型 MDSYS.SDO_DIM_ELEMENT 结构及用途;6.

14、 了解数组类型数组类型 MDSYS.SDO_ORDINATE_ARRAY 结构及用途;二、实验环境二、实验环境在 Oracle 的 Enterprise Manager 中进行实验,打开 Enterprise Manager 的方法:登陆页面 https:/WJ-T:1158/em,出现如下登录界面:填入正确的用户名:system 和口令:SYS123abc,如下图:点击下方“我同意”之后,连接主界面为下图所示:三、实验步骤及分析(三、实验步骤及分析(2 课时)课时)1了解 Oracle 数据库中 MDSYS 方案的空间元数据。(1)打开 MDSYS. SDO_GEOM_METADATA_TA

15、BLE 空间元数据表,并记录表结构下来,同时给出每个属性代表的实际意义:(2) MDSYS. SDO_GEOM_METADATA_TABLE 空间元数据表中的SDO_DIMINFO 属性的类型是 SDO_DIM_ARRAY,在用户类型.数组类型中查看 SDO_DIM_ARRAY 的一般信息,SDO_DIM_ARRAY 这个数组的元素是什么类型?(3)查看用户类型 SDO_DIM_ELEMENT 的结构并记录下来并说明每个属性代表的实际意义。它和元数据表中的 SDO_DIMINFO 属性有何关系?(4)打开 SQL-Plus(以后步骤中的以后步骤中的 SQL 都在此程序中执行都在此程序中执行)

16、,步骤为:打开开始-程序等路径,如下图:注意改写*.ora 文件中的内容,复制一段代码后将主机名改写为 wJ-T 登陆,填入正确的用户名:system 和口令:SYS123abc,主机字符串:orcl,如下图:并运行如下 SQL 语句,建立一个包含 MDSYS . SDO_GEOMETRY 属性的 表:CREATE TABLE SPATIALTEST _自己名字缩写自己名字缩写(ID VARCHAR2(20) PRIMARY KEY,NAME VARCHAR2(100),ADDRESS VARCHAR2(200),TELEPHONE VARCHAR2(50),LOC MDSYS . SDO_GEOMETRY);在对应方案中找到数据表 SPATIALTES

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 事务文书

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号