




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、?空间数据库?实验指导书班级学号姓名评分表实验一实验二实验三总评空间数据库实验预备知识一一 OracleSpatial 简介OracleSpatial 主要通过元数据表、 空间数据字段(即 sdo_Geometry 字段)和空间索引来治理空间数据,并在此根底上提供一系列空间查询和空间分析的程序包,让用户进行更深层次的 GIS 应用开发 .OracleSpatial 使 用 空 间 字 段 sdo_Geometry 存 储 空 间 数 据 , 用 元 数 据 表 来 治 理 具 有sdo_Geometry字段的空间数据表,并采用R树索引和四叉树索引技术来提升空间查询和空间分析的速度.、元数据表说
2、明OracleSpatial 的元数据表存储了有空间数据的数据表名称、空间字段名称、空间数据的坐标范围、坐标系以及坐标维数说明等信息.用户必须通过元数据表才能知道 Oracle 数据库中是否有 OracleSpatial 的空间数据信息.通过元数据视图(USER_SDO_GEOM_METADATA)访问元数据表.元数据视图的根本定义为:字段名字段名艇TableNameVarcrar2(32)表名Column_NaineVarcrar2(1024)字段名Diminfo1一J-.Mdsys.sdodimarray一/空间信息的坐标靶围,用于定于所操作的空间信息的 MBR(Minimumboundi
3、ngrectangles)#小座盖的矩形框大小Sria空间坐标参萼系字葭名字葭名碗碗是空间维名称(匚叨盘)Sdo_LBNumberMBK 的左下角更标Sdo,UBNumberMB 艮的右上角坐标SdoToleranceNumber容忍的精度I其中,TABLE_NAME 为含有空间数据字段的表名,COLUMN_NAME 为空间数据表中的空问字段名称,DIMINFO 是一个根据空间维顺序排列的 SDO_DIM_ARRAY 对象的动态数组,SRID 那么用于标识与几何对象相关的空间坐标参考系.SDO_DIM_ELEMENT 对象的定义如下所示:CreateTypeSDO_DIM_ARRAYasOBJ
4、ECT(SDO_DIMNAMEVARCHAR2(64),SDO_LBNUMBER,SDO_UBNUMBER,SDO_TOLERANCENUMBER);其中,SDO_DIMNAME 是空间维名称,SDO_LB 为该空间维的左下角坐标,SDO_UB 为该空间维的右上角坐标,SDO_TOLERANCE 为几何对象的表示精度.二、空间字段解析字浮名翱簸SdoGtypeNumber几何对象的类型SdoSridNumber几何对象的坐标系SdoPointSdoPointType表示几何类型为点的几何对象Sdo_ElemJnfoSdo_Elem_lnro_Array是一个可变长度的效俎,S3 个数作为一个元
5、素单位,用于解释坐标是如何存储在SDO_ORDINATES 中国Sdo_OrdinatesSdo_0rdinatE_Anray是一个可变长度的数蛆,用于存储几何对象的克网坐标,该数组的类型为 NUMBER 型OracleSpatial 的空间数据都存储在空间字段 sdo_Geometry 中,理解 sdo_Geometry 是编写OracleSpatial 程序的关键.sdo_Geometry 是根据 OpenGIS 标准定义的一个对象,其原始的创立方式如下所示.1 sdo_Gtype是一个NUMBER型的数值,用来定义存储几何对象的类型.sdo_Gtype是一个4个数字的整数,其格式为 dl
6、tt,其中 d 表示几何对象的维数;l 表示三维线性参考系统中的线性参考值,当 d 为 3 维或者 4 维时需要设置该值,一般情况下为空;tt 为几何对象的类型,OracleSpatial 定义了 7 种类型的几何类型,目前,tt 使用了 00 到 07,其中 08 到 99 是 OracleSpatial 保存的数字,以备将来几何对象扩展所用.数值几何类型指述DLD0用于存放自定义类型的几何对象.DL01点几何对象包含一个点DL02直线或曲线几何对象由直线段或曲线殿组成DL03多边形几何对象由一个多边先.该多边形可能内部含有洞DLM复合形状集几何对象由点、线、变边形组成的复合集DL05复合点
7、几何对象由一个点或多个点组成DL06复合域或曲续几何对象由一条续或多条线组成DL07复合多边形几何对象包含多个外环、多个不相交的多边形DL08-99OracleSpatial 暂且保凿2 sdo_Sridsdo_Srid 也是一个 NUMBER 型的数值,它用于标识与几何对象相关的空间坐标系.如果 sdo_Srid 为空null,那么表示没有坐标系与该几何对象相关;如果该值不为空,那么该值必须为 MDSYS.CS_SRS 表中 SRID 字段的一个值,在创立含有几何对象的表时,这个值必须力口入至 IJ描述空间数据表元数据的 USER_SDO_GEOM_METADATA 视图的 SRID 字段中
8、.对于我们通常使用国际标准的 Longitude/Latitude8307,OracleSpatial 规定,一个几何字段中的所有几何对象都必须为相同的 sdo_Srid 值.3 sdo_Pointsdo_Point 是一个包含三维坐标 X,Y,Z 数值信息的对象,用于表示几何类型为点的几何对象.如果 sdo_Elem_Info 和 SDO_ORDINATES 数组都为空,那么 sdo_Point 中的 X,Y,Z为点对象的坐标值,否那么,sdo_Point 的值将被忽略用 NULL 表示.OracleSpatial 强烈要求用sdo_Point 存储空间实体为点类型空间数据,这样可以极大的优
9、化 OracleSpatial 的存储性能和查询效率.4 sdo_Elem_Infosdo_Elem_Info是一个可变长度的数组,每3个数作为一个元素单位,用于表示坐标是如何存储在 SDO_ORDINATES 数组中的.本文把组成一个元素的 3 个数称为 3 元组.一个 3 元组包含以下 3局部的内容:SDO_STARTING_OFFSETSDO_STARTING_OFFSET 说明每个几何元素的第一个坐标在 SDO_ORDINATES 数组中的存储位置.它的值从 1 开始,逐渐增加.SDO_ETYPESDO_ETYPE 用于表示几何对象中每个组成元素的几何类型.当它的值为 1,2,1003
10、 和2003 时,说明这个几何元素为简单元素.如果 SDO_ETYPE 为 1003,说明该多边形为外环第一个数为 1 表示外环,坐标值以逆时针存储;如果 SDO_ETYPE 为 2003,说明该多边形为内环第一个数为 2 表示内环,坐标值以顺时针存储.当 SDO_ETYPE 为 4,1005 和 2005 时,说明这个几何元素为复杂元素.它至少包含一个 3 元组用以说明该复杂元素具有多少个几何简单元素.同样,1005 表示多边形为外环,坐标值以逆时针存储;2005 表示多边形为内环,坐标值以顺时针存储.SDO_INTERPRETATIONWOJTYPESmjNTEGPmAIION含义0任意值
11、用于为0皿k即毗d不支持的几何类型建模11点11nl具有II个点的点集21由直纥麴成峨串,一W段由搦艘翻成22螂线蝴微黑MS由起点,弧比盍一点以及终点组成.楙两段弧的接点不慧低存储,1眼或20好1由直魅就边形,起点与终点必须相同1MB典MB2由峨麴成海边形,超点与终点必须相同.WK线段由起点、弧E任意一点以及终蠲成.相邻两段弧的接点不需要重复存储lonsUMB3痔弗由左下角和右上翩点确定1003爽0034圆,由圆周上的不同三点确定4nl由直线段和玉纥段连成的复合线,逋表示组成复合线的相邻子元素的个我,子元素的SDOTYPE必须为2,一个子元素的最后一点是下一个子元素的第一个点,并且该点不能重氮
12、1005或加05nl由直线段和瞒段连成的复合多边捌n新躯复合多边形的相邻子元素的个数,子元素的SDOJTYH必须为3一个子元素的最后一点是下一个子元素的第一个点,并且该点不能重复.多边形的起点和终点必须相比SDO_INTERPRETATION 具有两层含义,具体的作用由 SDO_ETYPE 是否为复杂元素决定.如果SDO_ETYPE 是复杂元素4,1005 和 2005,贝 USDO_INTERPRETATION 表示它后面有几个子3 元 组 属 于 这 个 复 杂 元 素 . 如 果 SDO_ETYPE 是 简 单 元 素1,2,1003 和 2003 , 贝USDO_INTERPRETAT
13、ION 表示该元素的坐标值在 SDO_ORDINATES 中是如何排列的.需要注意的是,对于复杂元素来说,组成它的子元素是连续的,一个子元素的最后一个点是下一个子元素的起点.最后一个子元素的最后一个坐标要么与下一个元素的SDO_STARTING_OFFSET值减1 所对应的坐标相同,要么是整个 SDO_ORDINATES 数组的最后一个坐标.sdo_OrdinatesSDO_ORDINATES 是一个可变长度的数组,用于存储几何对象的实际坐标,是一个最大长度为1048576,类型为 Number 的数组.SDO_ORDINATES 必须与 sdo_Elem_Info 数组配合使用,才具有实际意
14、义.SDO_ORDINATES 的坐标存储方式由几何对象的维数决定,如果几何对象为二维,那么SDO_ORDINATES 的坐标以x1,y1,x2,y2,顺序排列,如果几何对象为三维,那么SDO_ORDINATES 的坐标以x1,y1,z1,x2,y2,z2,的顺序排列.三、空间索引技术OracleSpatial 提供 R 树索引和四叉树索引两种索引机制来提升空间查询和空间分析的速度.用户需要根据不同空间数据类型创立不同的索引,当空间数据类型比拟复杂时,如果选择索引类型不当,将使 OracleSpatial 创立索引的过程变得非常慢.实验一熟悉 OracleSpatial 的主要数据库对象、实验
15、目的1, 了解 Oracle 数据库中 MDSYS 方案的空间元数据表的结构及用途;2, 了解对象类型 MDSYS.SDO_DIM_ARRAY 以及和空间元数据表的关系;3, 掌握通过元数据视图 USER_SDO_GEOM_METADATA 查看空间元数据表的内容;4, 了解对象类型 MDSYS.SDO_GEOMETRY 的结构及用途;5, 了解数组类型 MDSYS.SDO_DIM_ELEMENT 结构及用途;6, 了解数组类型 MDSYS.SDO_ORDINATE_ARRAY 结构及用途;、实验环境选择“独立启动选择按钮,点击确定进入 EnterpriseManagerConsole#面如以
16、下图所示:U咄!1*iJrii:flinifc4.0run|忆 XOrachsEntorpflsoMiinagerOracleE-Lerpris.ehlzriEiqTI毫.F五IFUiImarirTirlP-肉植柄册诉JTBJW幅攻印役事任10E-.咖事.修部汽优上图,1押厘置13=fi1不沉上后手FIE叶司两隔,一事度p匕网电濯加晅辜许.H 国丰口许室L2酹立i-F拈.占同雇不小苴化治理品型享任第r聘制美511他里告*-44.*十:Ama.CrazlB和叁三方工在Oracle的EnterpriseManagerConsole中进行实当翻开EnterpriseManagerConsole的方法
17、:开始一程序一 Oracle-ora92-EnterpriseManagerConsole 出现如下登录界面:看关匚5齿已N的号祖-右 W阜由速选修*VHk点击数据库中的实例上图中实例为 ORACLE01,进行连接,出现如以下图所示的连接界连接后实例名将改变为以下图所示:网络LJ翻格库*号例程方案中备史主性中戮存绪 s马身分用数据仓库+4-r 作三问菖 XIUtL 数福库面:OFUCLENITEHPRISEMANAGEH填入正确的用户名和口令,连接身份A选择 SYSDBA,如以下图:口门八 CL 匚口 1oytomACCYQDDAI不杵加本地苜选白府证蚂用户名 fU:口令旧:服寻.连接身精因确
18、定:即消格助三、实验步骤及分析(2 课时)1.了解 Oracle 数据库中 MDSYS 方案的空间元数据.(1)翻开 MDSYS.SDO_GEOM_METADATA_TABLE 空间元数据表,并记录表结构下来,同时给出每个属性代表的实际意义:(2)MDSYS.SDO_GEOM_METADATA_TABLE 空间元数据表中的 SDO_DIMINFO 属性的类型是SDO_DIM_ARRAY,在用户类型.数组类型中查看 SDO_DIM_ARRAY 的一般信息,SDO_DIM_ARRAY 这个数组的元素是什么类型?(3)查看用户类型 SDO_DIM_ELEMENT 的结构并记录下来并说明每个属性代表的
19、实际意义.它和元数据表中的 SDO_DIMINFO 属性有何关系?(4)翻开 SQL-Plus(以后步骤中的 SQL 都在此程序中执行),并运行如下 SQL 语句,建立一个包含 MDSYS.SDO_GEOMETRY 属性的表:VARCHAR2(20)PRIMARYKEY,VARCHAR2(100),VARCHAR2(200),VARCHAR2(50),LOCMDSYS.SDO_GEOMETRY);在对应方案中找到数据表 SPATIALTEST,双击查看表结构,可以看到 LOCATION 的数据类型是 MDSYS.SDO_GEOMETRY,所以,LOCATION 需要在元数据表中填写一条相关记录
20、.CREATETABLESPATIALTEST(IDNAMEADDRESSTELEPHONE(5)根据用户表填写空间元数据,并说明其实际意义.INSERTINTOUSER_SDO_GEOM_METADATAVALUES(SPATIALTEST,LOC,MDSYS.SDO_DIM_ARRAY(MDSYS.SDO_DIM_ELEMENTLongitude,-180,180,10),MDSYS.SDO_DIM_ELEMENTLatitude-90,90,10),8307);(6)禾 1J 用 USER_SDO_GEOM_METADATA 视图查看元数据表并记录内容:SELECT*FROMUSER_S
21、DO_GEOM_METADATA查看对象类型MDSYS.SDO_GEOMETRY的结构并记录下来,说明每个属性代表的实际意义.完成时间实验过程、结果及分析得分教师签名(8)查看数组类型 MDSYS.SDO_ELEM_INFO_ARRAY 的结构并记录下来.它和MDSYS.SDO_GEOMETRY 对象类型有何关系?(9)查看数组类型 MDSYS.SDO_ORDINATE_ARRAY 的结构并记录下来.它和MDSYS.SDO_ELEM_INFO_ARRAY 数组类型有何关系?实验二空间查询一、实验目的1 .掌握空间数据表的建立的过程;2 .掌握空间数据的输入方法;3 .掌握空间索引的建立方法;4
22、 .掌握 filter 和 related 两个查询过程.二、实验环境实验中的SQL语句均在SQL-PLUS中执行.三、实验步骤及内容(2 课时)Stepl.创立一张表,其中shape用来存放空间数据CREATETABLEmylake(feature_idNUMBERPRIMARYKEY,nameVARCHAR2(32),shapeMDSYS.SDO_GEOMETRY);Step2.在user_sdo_geom_metadata表中插入新记录,用于描述空间字段-INSERTINTOuser_sdo_geom_metadataAVLUES(mylake,/-表名shape,/-字段名MDSYS.
23、SDO_DIM_ARRAY(MDSYS.SDO_DIM_ELEMENT(X,0,100,0.05),/-X 维最小,最大值和容忍度.MDSYS.SDO_DIM_ELEMENT(Y,0,100,0.05)/-Y 维最小,最大值和容忍度),NULL/-坐标系,缺省为笛卡尔坐标系);Step3.创立空间索引CREATEINDEXmylake_idxONmylake(shape)INDEXTYPEISMDSYS.SPATIAL_INDEX翻开创立的空间索引 mylake_idx,记录索引的一般信息.Step4,插入空间数据OracleSpatial 用 MDSYS.SDO_GEOM 或 RYW 空间数
24、据,/插入包含一个岛屿的湖泊INSERTINTOmylakeVALUES(10,LakeCalhoun,MDSYS.SDO_GEOMETRY(2003,NULL,NULL,MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,1,19,2003,1),MDSYS.SDO_ORDINATE_ARRAY(d,0,0,10,10,0,10,0,0,4,4,6,4,6,6,4,6,4,4);/插入两艘小船INSERTINTOmylakeVALUES(11,TheWindswept,MDSYS.SDO_GEOMETRY(2003,NULL,NULL,MDSYS.SDO_ELEM_INFO_A
25、RRAY(1,1003,1),MDSYS.SDO_ORDINATE_ARRAY(2,2,3,2,3,2,2,3,2,2);INSERTINTOmylakeVALUES(12,BlueCrest,MDSYS.SDO_GEOMETRY(2003,NULL,NULL,MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,1),MDSYS.SDO_ORDINATE_ARRAY(7,7,8,7,8,7,7,8,7,7);运行 SELECT*FROMMYLAK 讣记录运行结果,并说明每条记录代表什么Step5.查询OracleSpatial 查询数据包括二个处理过程:只通过索引查询候选项.通过
26、函数 SDO_FILTE 效现:SDO_FILTER(geometry1MDSYS.SDO_GEOMETRY,ometry2MDSYS.SDO_GEOMETRY,paramsVARCHAR2)geometry1:必须是被索引的几何数据geometry2:不一定是表中的空间字段,也不要求被索引params:Filter 类型querytype=WINDOWgeometry2 不要求来自表querytype=JOIN:geometry2 必须来自表运行以下 SQL 语句,并记录结果,并说明这个结果这代表什么意义?SELECTnameboatnameFROMmylaketWHEREfeatureid
27、=11ANDSDO_FILTER(t.shape,mdsys.sdo_geometry(2003,NULL,NULL,mdsys.sdo_elem_info_array(1,1003,1),mdsys.sdo_ordinate_array(2,2,5,2,5,5,2,5,2,2),querytype=WINDOW)=TRUE;再检查每个候选项是否和条件精确匹配.通过函数 SDO_RELA 佞现:SDO_RELATE(geometry1MDSYS.SDO_GEOMETRY,geometry2MDSYS.SDO_GEOMETRY,paramsVARCHAR2)params:masktypeDISJ
28、OINTtheboundariesandinteriorsdonotintersectTOUCH-theboundariesintersectbuttheinteriorsdonotintersectOVERLAPBDYDISJOINTtheinteriorofoneobjectintersectstheboundaryandinterioroftheotherobject,butthetwoboundariesdonotintersect.Thisrelationshipoccurs,forexample,whenalineoriginatesoutsideapolygonandendsin
29、sidethatpolygon.OVERLAPBDYINTERSECTtheboundariesandinteriorsofthetwoobjectsintersectEQUALthetwoobjectshavethesameboundaryandinteriorCONTAINStheinteriorandboundaryofoneobjectiscompletelycontainedintheinterioroftheotherobjectCOVERStheinteriorofoneobjectiscompletelycontainedintheinterioroftheotherobjec
30、tandtheirboundariesintersectINSIDEtheoppositeofCONTAINS.AINSIDEBimpliesBCONTAINSA.COVEREDBKtheoppositeofCOVERS.ACOVEREDBYBimpliesBCOVERSA.ONtheinteriorandboundaryofoneobjectisontheboundaryoftheotherobject(andthesecondobjectcoversthefirstobject).Thisrelationshipoccurs,forexample,whenalineisonthebound
31、aryofapolygon.ANYINTERACTtheobjectsarenon-disjoint.运行以下 SQL 语句,并记录结果,并说明这个结果这代表什么意义?/选择在定义矩形内的所有小船SELECTnameboat_nameFROMmylaketWHEREfeature_id=12ANDSDO_FILTER(t.shape,mdsys.sdo_geometry(2003,NULL,NULL,mdsys.sdo_elem_info_array(1,1003,1),mdsys.sdo_ordinate_array(2,2,5,2,5,5,2,5,2,2),querytype=WINDOW)=TRUEANDSDO_RELATE(t.shape,mdsys.sdo_geometry(2003,NULL,NULL,mdsys.sdo_elem_info_array(1,1003,1),mdsys.sdo_ordinate_array(2,2,5,2,5,5,2,5,2,2),mask=INSIDEquerytype=WINDOW)=TRUE;运行结果和分析:/masktype 可联合使用SELECTnameboat_nameFROMmylaketWHEREfeature_id=11ANDSDO_FI
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 与政府签订广告合同范本
- 商品新房购买合同范本
- 农村机井使用合同范本
- 合同范本固定内容包括
- 厂房装修维修合同范本
- 农村合并工程合同范本
- 核心素养导向下小学美术大单元教学实践
- 人工搬运合同范例
- 外科年度工作总结
- 土木工程材料试题库及答案
- 2024年安徽省公务员【申论】考试真题及答案-(A卷+B卷+C卷)三套
- 2025年中央一号文件参考试题库100题(含答案)
- DeepSeek的应用与部署
- 图解自然资源部《自然资源领域数据安全管理办法》
- 2023-2024学年广东省广州市天河区七年级(上)期末英语试卷
- 绿色大气简约国潮动态三星堆文化宣传介绍
- 家具销售合同,家居订购订货协议A4标准版(精编版)
- 签证护照代领取委托书中英文
- 假如你爱我的正谱
- 边防检查站港口码头智能监控系统建设技术方案
- 神奇的数字治病法
评论
0/150
提交评论