空间数据库实验指导书实验三郭明
- 格式:doc
- 大小:6.72 MB
- 文档页数:24
《数据库原理》实验指导书石家庄铁道学院目录数据库原理实验安排 (1)实验一数据库和表的建立、数据操作 (2)实验二 SQL语言的使用 (5)实验三完整性、安全性实现 (7)实验四数据库编程 (9)附录一:SQL Server的安装 (11)附录二:实验二SQL语句 (23)附录三:实验一答案 (26)附录四:实验二答案 (29)数据库原理实验安排一、实验目的通过实验,使学生熟悉并掌握数据库的基本概念、基本原理、和基本技术;能够应用这些理论和技术设计合理的数据库;更重要的是通过教学活动,使学生能够把与数据库相关的先修后继知识融会贯通,初步具有开发完整可用的数据库系统的能力。
二、实验安排本门课程共分4个实验,8学时实验一数据库和表的建立、数据操作 2学时实验二 SQL语言的使用 2学时实验三完整性、安全性实现 2学时实验四数据库编程 2学时三、实验考核实验成绩通过实验报告及每次实验后的验机给出,每次实验结束后都必须写出实验报告,报告内容包括:实验名称、实验内容、实验完成情况(包括实验设计思想、主要技术问题的处理方法、实验过程等)、其他(说明、分析、建议、体会等)。
实验一数据库和表的建立、数据操作一、实验目的:掌握使用SQL语言进行数据定义和数据操纵的方法。
二、实验要求:建立一个数据库stumanage,建立三个关系表students,course,grade。
向表中插入数据,然后对数据进行删除、修改等操作,对关系、数据库进行删除操作。
三、实验步骤:1、开始----〉程序----〉Microsoft SQL Server-----〉服务管理器,服务器中输入本机器的名字,点击“开始/继续”以启动SQL Server服务管理器。
2、开始----〉程序----〉Microsoft SQL Server-----〉查询分析器,SQL Server中输入本机器的名字,选择“SQL Server身份验证”,用户名和密码为sa。
第1篇一、实习背景随着我国经济的快速发展,地理信息产业已成为国家战略性新兴产业之一。
空间数据分析作为地理信息产业的核心技术之一,在资源管理、城市规划、环境保护、灾害预警等领域发挥着重要作用。
为了更好地了解空间数据分析在实际工作中的应用,提高自身专业技能,我于2021年7月至9月在XX公司进行了为期两个月的空间数据分析实习。
二、实习单位简介XX公司成立于2000年,是一家专业从事地理信息系统(GIS)技术研发、应用与服务的高新技术企业。
公司拥有丰富的项目经验,为客户提供从数据采集、处理、分析到可视化展示的一站式解决方案。
公司业务范围涵盖城市规划、土地管理、环境保护、交通运输等多个领域。
三、实习内容1. 实习岗位:空间数据分析实习生2. 实习工作内容:(1)数据采集与处理:学习如何从不同渠道获取空间数据,包括卫星遥感数据、地面调查数据、网络地图数据等,并掌握数据预处理方法,如数据清洗、坐标转换、数据压缩等。
(2)空间数据分析:学习空间分析基本原理,掌握常用空间分析工具,如缓冲区分析、叠加分析、网络分析等,并结合实际案例进行操作。
(3)空间可视化:学习地图设计与制作方法,掌握地图符号、颜色、注记等元素的使用,制作出美观、实用的地图产品。
(4)项目参与:参与公司实际项目,协助项目经理进行项目规划、实施与验收。
四、实习收获1. 专业技能提升:通过实习,我对空间数据分析的基本原理、方法与工具有了更深入的了解,掌握了数据采集、处理、分析、可视化等技能。
2. 实践经验积累:在实习过程中,我参与了多个项目,了解了项目实施的全过程,提高了自己的项目策划、执行与沟通能力。
3. 团队协作能力:在实习期间,我学会了与团队成员协作,共同完成项目任务,提高了自己的团队协作能力。
4. 行业认知:通过实习,我对地理信息产业有了更全面的了解,认识到空间数据分析在各个领域的应用价值。
五、实习总结1. 实习期间,我认真学习了空间数据分析的相关知识,掌握了基本技能,为今后的工作打下了坚实基础。
实验三空间数据输入与编辑一、实验目的1.掌握点、线、区输入方法和相应参数的设置2.掌握线的交互式矢量化方法。
3.掌握点、线的常用编辑方法。
二、实验准备1.实验数据:本实验数据保存于文件夹Exercise-03中。
2.预备知识:空间数据的组织方式及文件的管理方式;点、线、面的输入方式;点、线、面的编辑操作。
三、实验步骤与内容1.将实验数据复制,粘贴至各自文件夹内。
2.启动MAPGIS主菜单,调用输入编辑功能。
在输入编辑系统中新创建一空工程文件,保存工程文件名为“输入编辑”,将Exercise-03中的“*.msi”添加进该工程文件,通过读图分层在此工程文件中逐一创建各项目文件。
㈠点输入与编辑本实验中点对象的参数依据图进行设置1.上下标的输入,输入注释过程中,上标的输入方式为“#+”与“#=”把上标内容括起来,下标的输入方式为“#-”与“#=”把下标内容括起来。
2.特殊符号的输入,在输入地层代号的过程中要用到很多特殊符号,可以通过在中文输入法状态下打开软键盘来进行输入。
3.输入图签中的版面,输入“图签.WT”中的版面时,先设置字高、字宽、字色号,通过拖动鼠标确定位置,输入内容,再通过修改点参数来修改版面的高度和宽度。
4.输入图例注释,输入“图例注释.WT”过程中,点对象输入中注意“阵列复制”和“对齐坐标”两功能的使用,特别采用“对齐坐标”功能时可结合CRTL键的使用来进行点对象的选取。
最终按上述参数要求逐一完成图中各点状要素的输入。
㈡线输入与编辑1.在“工程文件窗口”添加线文件。
2.按图参数设置逐一完成各图层的数据输入,在矢量化的过程中,结合F5(放大)、F6(移动)、F7(缩小)、F8(加点)、F9(退点)、F11(改向)的使用,尤其是在跟踪错误的时候用F8来加点F9来退点,还要注意等高线与地层界线与内图廓一定要相互交接,建议采用如下三种方式之一进行处理:a.要相交的时候把光标移动到母线上再按F12键,这个时候再选择在母线上加点来连接。
福建工程学院计算机与信息科学系实验报告2012 – 2013 学年第一学期任课老师:孙水华课程名称数据库实验班级软件工程0802座号11 姓名李克铭实验题目实验七用户自定义函数实验时间实验开始日期:2012.12.12报告提交日期:2012.12. 17实验目的、要求实验目的:掌握SQLServer中用户自定义函数的使用方法。
二、实验内容和要求1.创建一个返回标量值的用户定义函数RectangleArea:输入矩形的长和宽就能计算矩形的面积。
自选2种实例调用该函数。
2.创建一个用户自定义函数,功能为产生一张有关学生成绩统计的报表。
该报表显示每一门课程的课程号、课程名、选修人数、本门最高分、最低分和平均分。
调用这个函数,生成相应的报表并给用户浏览。
3.创建一个用户自定义函数,功能为产生某个系的学生信息,内容为学号,姓名,课程名,成绩。
调用这个函数,显示信息系学生的信息。
三、实验报告书写要求实验内容1和2,3的脚本,及调用语句实验设计内容create function RectangleArea(@a int,@b int)returns intasbeginreturn@a*@Bendselect dbo.RectangleArea(4,5)as面积create function baobiao ()returns @baobiao table(cno char(9)primary key not null,cname char(8)not null,num int,maxgrade char(4),mingrade char(4),avggrade char(4))asbegin insert @baobiaoselect cname,o,count(o),max(grade),min(grade),avg(grade) from course,scwhere o=ogroup by cname,oreturnendselect*frombaobiao()drop function baobiaocreate function xinxi(@sdept char(20))returns tableasreturn(select student.sno,sname,cname,gradefrom student,course,scwhere student.sno=sc.snoand o=oand sdept=@sdept)select*fromxinxi('cs')drop function xinxi调试过程记录记录每次编译出现的第一个错误以及修改情况;实验结果记录以及与预期结果比较以及分析记录每次实验结果以及分析情况创建一个返回标量值的用户定义函数RectangleArea:输入矩形的长和宽就能计算矩形的面积。
空间数据库实习报告一、实习背景与目的随着我国地理信息系统(GIS)技术的快速发展,空间数据库在各类项目中发挥着越来越重要的作用。
本次实习旨在让我们深入了解空间数据库的设计、建立和应用过程,掌握空间数据库的基本操作技能,提高我们在实际项目中运用GIS技术的能力。
二、实习内容与过程1. 空间数据库设计在实习的第一阶段,我们需要根据实际项目需求设计空间数据库。
首先,我们对成都市市区的基础地理信息进行了需求分析,确定了数据库需要存储的基本道路信息、居民点分布信息以及学校、医院等政设服务性机构信息。
接着,我们分析了这些数据之间的关联性,将居民点分布数据、道路数据、河流数据、现有公园分布数据以及市内现有基础服务设施分布数据进行了平行组织,以便建立它们之间的拓扑关系。
2. 空间数据库建立在实习的第二阶段,我们学习了空间数据库的建立过程。
首先,我们了解了ArcGIS9.3软件的基本功能,通过该软件对成都市市区的基础地理信息进行了数据采集。
然后,我们使用了Oracle数据库管理系统,将采集到的数据进行了逻辑设计,将实体转换为表结构,设置属性域,并完成了数据入库。
3. 空间数据库应用在实习的第三阶段,我们学习了如何利用空间数据库进行实际应用。
我们通过ArcGIS9.3软件,实现了对成都市市区基础地理信息的查询、缓冲区分析等操作。
例如,我们可以根据用户需求,快速查询到某个区域的学校、医院等基础设施信息,或者根据某个地点为中心,计算出一定范围内的居民点分布情况。
三、实习收获与反思通过本次实习,我们不仅掌握了空间数据库的设计、建立和应用过程,还学会了利用GIS技术进行实际项目分析。
然而,我们也认识到,空间数据库实习不仅需要理论知识的支持,还需要大量的实践操作。
因此,在今后的学习和工作中,我们将继续努力学习空间数据库相关知识,提高自己的实际操作能力,为我国GIS事业的发展贡献自己的力量。
四、实习总结本次空间数据库实习让我们对空间数据库有了更深入的了解,提高了我们的实际操作能力,为我们在未来项目中运用GIS技术奠定了基础。
《(空间)数据库实验教程》(征求意见稿)杨骏、叶健主编地球科学与环境工程学院2014年5月内容提要一、实验目的和基本要求本实验是《(空间)数据库原理与应用》课程必不可少的实践环节。
学生应在基本掌握各知识点内容的基础上同步进行相关实验,以加深对知识的理解和掌握,达到理论指导实践,实践加深理论的理解与巩固的效果。
本实验的主要目标是:1.通过上机操作,加深对数据库系统理论知识的理解;2.通过使用具体的DBMS,了解一种实际的数据库管理系统,并掌握操作技术;3.通过实际题目的上机实验,提高动手能力,提高分析问题和解决问题的能力。
本实验应在单人单机的环境下,在规定的时间之内,由学生独立完成。
出现问题时,教师需要引导学生独立分析、解决,不得包办代替。
上机总学时不少于18学时。
二、主要实验环境操作系统为Microsoft Windows 2000/XP/win7。
数据库管理系统可以选择:1.金仓数据库KingbaseES。
(默认)2.Microsoft SQL Server 2008(或以上)标准版或企业版。
3.Microsoft Access2003(或以上)。
三、实验内容1. 数据库管理系统的安装调试;2. 数据库的模式设计;数据库、表、视图、索引的建立与数据的更新;3. 关系数据库的查询,含连接查询、嵌套查询、组合查询等;4. 数据库系统的实现技术,含事务的概念及并发控制、完整性和安全性实现机制;5. 空间数据库认识实验。
目录实验一:数据库模式设计和数据库建立 (1)1.1 实验目的 (1)1.2 实验准备 (1)1.3 实验任务与要求 (1)1.4 实验内容与步骤 (2)1.5 实验报告要求 (3)实验二:数据库简单查询和连接查询 (4)2.1 实验目的 (4)2.2 实验准备 (4)2.3 实验任务与要求 (4)2.4 实验内容与步骤 (4)2.5 实验报告要求 (5)实验三:数据库嵌套查询和组合统计查询 (6)3.1 实验目的 (6)3.2 实验准备 (6)3.3 实验任务与要求 (6)3.4 实验内容与步骤 (6)3.5 实验报告要求 (7)实验四视图的定义及数据完整性 (9)4.1 实验目的 (9)4.2 实验准备 (9)4.3 实验任务与要求 (9)4.4 实验内容与步骤 (9)4.5 实验报告要求 (10)实验五:空间数据库认识实验 (11)5.1 实验目的 (11)5.2 实验准备 (11)5.3 实验任务与要求 (11)5.4 实验内容与步骤 (11)5.5 实验报告要求 (19)附录1 金仓数据库操作指导 (20)1.1.1 KingbaseES数据库的安装配置及启动停止 (20)附录2 实验报告模板 (47)实验一:数据库模式设计和数据库建立1.1 实验目的(1)选取一种数据库管理软件安装、调试(默认为金仓数据库系统);(2)根据一个具体应用,独自完成数据库模式的设计。
实验三ARCGIS空间分析的综合演习【实验内容与学时】(4 学时)[1] ArcGIS空间分析基本数据计算;[2] ArcGIS空间分析工具的综合应用;【实验目的】[1] 掌握ArcGIS空间分析基本数据计算;[2] 掌握并熟悉ArcGIS空间分析工具的应用。
【实验要求】按照要求上交上机实验报告【实验步骤与过程】注意:所有实验数据源在“Arcgis应用与实践/实验三”里。
要求:实验问题中有要输出地图的,不要与指导书中地图颜色一致。
练习问题①:找出在宅儿童数多的场所。
提示:在宅児童数=“0~5岁人口”ー(幼稚園児数+保育園児数)练习问题②:计算出“限界集落”所的个数。
提示:限界集落:65岁以上人口/总人口×100≥50%注意:选择总人口为0的地方,能否用上面公式计算?【結果】38个练习问题③:用buffer工具,做出幼稚園・保育園周围500m的缓冲区域。
所用数据:「町丁目界」,「幼稚園保育園」提示界面:结果界面:练习问题④:用dissove工具,将「水害想定区域」属性数据中相同预想水深的图形合并,然后选择预想水深小于50cm的区域。
使用数据:「浸水想定区域_100年に1度の大雨」提示界面:结果界面:练习问题⑤:用clip工具,将佐贺市道路网中被洪水(平成20年6月19日の水害)淹没的道路切出。
使用数据:「平成20年6月19日の水害」,「道路網」提示界面:结果界面:练习问题⑥:用intersect工具,提取出佐贺市道路网中被百年不遇洪水(浸水想定区域_100年に1度の大雨)淹没的道路,并将提出的道路,按照预想水深进行分类。
使用数据:「浸水想定区域_100年に1度の大雨」,「道路網」提示界面:结果界面:实验问题①:提取出平成20年6月19日水害淹没的福祉施設。
实验问题②:如果发生100年一度的水害,提取出水深小于50cm区域淹没的福祉施設的分布。
实验问题③:如果发生百年一遇的洪水,提取出可能会遇到水深50cm以上洪水的福祉施設,从施設的定員计算可能遭遇洪水的施設利用者总人数。
实验一拓扑规则实验题目:拓扑规则实验准备:相关概念解释1、拓扑关系:是指图形要素之间几何上的相互关系,图形在保持连续状态下即使变形,相互之间的关系依然不变。
2、Geodatabase的拓扑规则包括点拓扑规则、线拓扑规则、多边形拓扑规则。
3、拓扑结构:即反映拓扑关系的结构,利用拓扑关系的空间数据结构,不仅要记录要素的空间位置(坐标),而且记录不同要素在空间上的相互关系。
4、Geodatabase 用一系列的拓扑规则(Rule ,Topology Rule),在空间要素之间建立起相互关系,即拓扑结构。
5、悬结点(Dangle):仅和一个线要素相连,孤立的结点6、伪结点(Pseudo):两个线要素相连、共享一个结点7、普通结点:三个或者三个以上的线要素交汇、共享一个结点8、线簇容差(Cluster Tolerance):不相连的要素拐点之间的最小距离9、问题区(Dirty Area):建立拓扑关系后,又被编辑过的空间范围,该范围很可能存在不符合拓扑规则的要素。
10、差错(Error):不符合拓扑规则的地方,用红点、方块、线表示。
实验内容:1、拓扑规则用于同一图层内数据质量检验。
2、拓扑规则用于不同一图层内数据质量检验。
实验过程:1、拓扑规则用于同一层内数据质量检验1.1 建立线要素拓扑规则启动ArcCatalog ,将路径定位到c:\gis_ex09\ex22.mxd,利用拓扑规则Must Not Have Dangles(不能出现悬节点)为Geo_DB22\dataset1\lotlines建立拓扑关系Dataset1_Topology,建立后,成果如图1-1,意思是有三个悬节点,不符合预定义的拓扑规则图1-11.2修改拓扑错误关闭ArcCatalog,启动ArcMap,打开ex22.mxd,激活Data frame1,除了已经存在的lotlines以外,加入Dataset1_Topology,可以看出有三处拓扑错误——线过长、线过短、线多余,调动Editor,打开Topology拓扑工具条和Advanced Editing 高级编辑工具条,Start Editing开始编辑辑,此处例举线过短时的编辑情况,选中参考边界,在Advanced Editing高级编辑工具条中选择Extention工具,点击需要延长的线,如图1-2,过短的线就延伸到参照线——图1-2当将当前窗口的拓扑关系错误一一修改后,需要验证刚才编辑过的地方是否还有错误,则需勾取Dataset1_Topology图层中Properties中Symbology Dirty Areas (问题区),则地图上刚刚编辑过的地方有三个蓝色区域,如图1-3图1-3则只需再对Dirty Areas进行拓扑关系验证,即利用Vilidate Topology In Specified Area工具进行质量验证,无拓扑错误后,如图1-4——(如若有错,仍需进一步修改)图1-41.3生成地块多边形启动ArcCatalog,右击Geo_DB22\dataset1,选用New\Polygon Feature FromLines(从线要素产生多边形),生成一个新的多边形要素类lotspolygons ,预览如图1-5 图1-52、拓扑规则用于不同图层之间数据检测2.1 建立不同要素之间的拓扑关系在ArcCatalog中Geo_DB22\dataset2下为Road、Parcel建立拓扑关系Topology22.2修改拓扑错误在ArcMap中利用Topology2对Road、Parcel进行拓扑查错并修改,此处的拓扑关系主要是多边形共同边界的错误和线多余的错误,正确修改后结果如图1-6 图1-6实验小结:1、Geodatabase可以有多种线、点、多边形规则,用于控制要素类之间的特定空间关系。
一、实训背景随着地理信息系统(GIS)技术的不断发展,空间数据建库在地理信息领域发挥着越来越重要的作用。
为了提高学生对空间数据建库的认识和实践能力,我校地理信息科学专业组织了一次空间数据建库实训。
本次实训旨在让学生掌握空间数据建库的基本流程、方法和技巧,培养学生的动手能力和团队协作精神。
二、实训目的1. 理解空间数据建库的概念和意义;2. 掌握空间数据采集、处理、编辑、建库的基本流程;3. 熟悉常用的空间数据建库软件,如ArcGIS、SuperMap等;4. 培养学生的动手能力和团队协作精神。
三、实训内容1. 空间数据采集实训首先从空间数据采集入手,介绍了野外采集、航空摄影、遥感等数据获取方法。
通过实地考察,学生掌握了野外采集数据的方法和技巧,并利用航空摄影和遥感数据进行了空间数据采集。
2. 空间数据处理在数据采集的基础上,学生学习了空间数据的预处理方法,包括数据校正、投影变换、数据压缩等。
通过软件操作,学生掌握了数据预处理的基本流程,提高了数据质量。
3. 空间数据编辑空间数据编辑是空间数据建库的重要环节。
实训中,学生学习了空间数据编辑的基本原则和技巧,如拓扑关系、几何精度等。
通过实际操作,学生能够对空间数据进行编辑、更新和优化。
4. 空间数据建库空间数据建库是实训的核心内容。
学生学习了空间数据建库的基本流程,包括数据结构设计、属性数据录入、空间数据存储等。
通过软件操作,学生能够独立完成空间数据建库任务。
5. 空间数据库管理实训还介绍了空间数据库的管理方法,包括数据备份、恢复、优化等。
学生通过实际操作,掌握了空间数据库的管理技巧。
四、实训过程1. 分组讨论:实训初期,学生分为若干小组,讨论空间数据建库的相关知识和技巧。
2. 野外考察:学生分组进行野外考察,采集空间数据。
3. 数据处理:学生利用所学知识对采集到的空间数据进行处理,提高数据质量。
4. 空间数据编辑:学生根据实际需求对空间数据进行编辑、更新和优化。
《空间数据库设计》实践指导书实习一: 创建Geodatabase空间数据库一、创建Geodatabase空间数据库借助ArcCatalog可以建立两种Geodatabase:本地Geodatabase(Personal Geodatabase)和ArcSDE Geodatabase。
本地Geodatabase可以直接在ArcCatalog环境中建立;ArcSDE Geodatabase必须首先在网络服务器上安装数据库管理系统(DBMS)和ArcSDE,然后建立从ArcCatalog到ArcSDE Geodatabase 的连接。
1.1创建一个Personal Geodatabase打开ArcCatalog,在目录下右键单击,在弹出的下拉菜单栏下选择New再选择Personal Geodatabase ,输入创建的数据库名字,点击ok1.2创建数据集右键单击“空间数据库”在下拉菜单中单击New feasture Dataset确定坐标系,采用西安坐标系1.3导入数据右键单击某一个数据集,单击Import,点击Feature Class to Geodatabase (multiple) 导入多个数据。
当导入已有的Shapefile或Coverage到Geodatabase时,就会在数据库中自动生成一个要素类。
若生成独立要素类,需要为导入的数据定义坐标系统;若生成简单要素类,导入工具会自动为其建立于要素数据集相同的坐标系统,不需要重新定义。
1.4打开ArcMap 显示图层实习二:利用ArcGIS对空间数据的管理一、实习内容(1)连接数据库SQL Server(2)使用ArcSDE对SQL Server数据库进行操作,对数据进行查询、修改、添加及删除操作。
二、实习步骤2.1ArcCatalog中找到工具箱->系统工具箱->Data Management Tools->地理数据库管理->创建企业级地理数据库->双击弹出如下图所示的创建企业级地理数据库对话框,输入对应的参数,点击确定,完成创建企业级地理数据库的创建。
《空间数据库》课程实验指导书班级学号姓名编制人:郭明单位:北京建筑大学测绘与城市空间信息学院2015年9月目录实验指导书 (1)空间数据库实验预备知识—Oracle Spatial简介 (2)一、元数据表说明 (2)二、空间字段解析 (3)三、空间索引技术 (6)实验一认识Oracle Spatial的主要数据库对象 (7)一、实验目的 (7)二、实验环境 (7)三、实验步骤及分析(2课时) (9)实验二空间查询 (14)一、实验目的 (14)二、实验环境 (14)三、实验步骤及内容(2课时) (14)Step1. 创建一张表,其中shape用来存放空间数据 (14)Step2. 在user_sdo_geom_metadata 表中插入新记录,用于描述空间字段 (14)Step3. 创建空间索引 (14)Step4. 插入空间数据 (15)Step5. 查询 (16)实验三简单的空间数据库示例 (20)一、实验目的 (20)二、实验环境 (20)三、实验内容和要求(2课时) (20)实验四空间数据库设计与开发示例 (22)一、实验目的 (22)二、实验环境 (22)三、实验内容和要求(4课时) (22)空间数据库实验预备知识—Oracle Spatial 简介Oracle Spatial主要通过元数据表、空间数据字段(即sdo_Geometry 字段)和空间索引来管理空间数据,并在此基础上提供一系列空间查询和空间分析的程序包,让用户进行更深层次的GIS应用开发。
Oracle Spatial使用空间字段sdo_Geometry存储空间数据,用元数据表来管理具有sdo_Geometry 字段的空间数据表,并采用R树索引和四叉树索引技术来提高空间查询和空间分析的速度。
一、元数据表说明Oracle Spatial的元数据表存储了有空间数据的数据表名称、空间字段名称、空间数据的坐标范围、坐标系以及坐标维数说明等信息。
用户必须通过元数据表才能知道Oracle数据库中是否有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(64),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型的数值,用来定义存储几何对象的类型。
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),则表示没有坐标系与该几何对象相关;如果该值不为空,则该值必须为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和SDO_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_STARTING_OFFSETSDO_STARTING_OFFSET 表明每个几何元素的第一个坐标在SDO_ORDINATES数组中的存储位置。
它的值从1开始,逐渐增加。
◇SDO_ETYPESDO_ETYPE 用于表示几何对象中每个组成元素的几何类型。
当它的值为1, 2, 1003和2003时,表明这个几何元素为简单元素。
如果SDO_ETYPE为1003,表明该多边形为外环(第一个数为1表示外环),坐标值以逆时针存储;如果SDO_ETYPE为2003,表明该多边形为内环(第一个数为2表示内环),坐标值以顺时针存储。
当SDO_ETYPE为4, 1005和2005时,表明这个几何元素为复杂元素。
它至少包含一个3元组用以说明该复杂元素具有多少个几何简单元素。
同样,1005表示多边形为外环,坐标值以逆时针存储;2005表示多边形为内环,坐标值以顺时针存储。
◇SDO_INTERPRETATIONSDO_INTERPRETATION具有两层含义,具体的作用由SDO_ETYPE是否为复杂元素决定。
如果SDO_ETYPE是复杂元素(4, 1005和2005),则SDO_INTERPRETATION表示它后面有几个子3元组属于这个复杂元素。
如果SDO_ETYPE是简单元素(1, 2, 1003和2003),则SDO_INTERPRETATION 表示该元素的坐标值在SDO_ORDINATES中是如何排列的。
需要注意的是,对于复杂元素来说,组成它的子元素是连续的,一个子元素的最后一个点是下一个子元素的起点。
最后一个子元素的最后一个坐标要么与下一个元素的SDO_STARTING_OFFSET值减1所对应的坐标相同,要么是整个SDO_ORDINATES数组的最后一个坐标。
⑤sdo_OrdinatesSDO_ORDINATES是一个可变长度的数组,用于存储几何对象的实际坐标,是一个最大长度为1048576,类型为Number的数组。
SDO_ORDINATES必须与sdo_Elem_Info数组配合使用,才具有实际意义。
SDO_ORDINATES的坐标存储方式由几何对象的维数决定,如果几何对象为二维,则SDO_ORDINATES的坐标以{ x1, y1, x2, y2, …}顺序排列,如果几何对象为三维,则SDO_ORDINATES的坐标以{x1, y1, z1, x2, y2, z2, …}的顺序排列。
三、空间索引技术Oracle Spatial提供R树索引和四叉树索引两种索引机制来提高空间查询和空间分析的速度。
用户需要根据不同空间数据类型创建不同的索引,当空间数据类型比较复杂时,如果选择索引类型不当,将使Oracle Spatial创建索引的过程变得非常慢。
实验一认识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.了解数组类型MDSYS.SDO_ORDINATE_ARRAY结构及用途;二、实验环境在Oracle的Enterprise Manager中进行实验,打开Enterprise Manager的方法:登陆页面,出现如下登录界面:填入正确的用户名:system和口令:SYS123abc,如下图:点击下方“我同意”之后,连接主界面为下图所示:三、实验步骤及分析(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的结构并记录下来并说明每个属性代表的实际意义。
它和元数据表中的SDO_DIMINFO属性有何关系?(4)打开SQL-Plus(以后步骤中的SQL都在此程序中执行),步骤为:打开开始->程序等路径,如下图:注意改写*.ora文件中的内容,复制一段代码后将主机名改写为wJ-T登陆,填入正确的用户名:system和口令:SYS123abc,主机字符串:orcl,如下图:并运行如下SQL语句,建立一个包含MDSYS . SDO_GEOMETRY属性的表:CREATE TABLE SPATIALTEST _自己名字缩写(ID V ARCHAR2(20) PRIMARY KEY,NAME V ARCHAR2(100),ADDRESS V ARCHAR2(200),TELEPHONE V ARCHAR2(50),LOC MDSYS . SDO_GEOMETRY);在对应方案中找到数据表SPATIALTEST,双击查看表结构,可以看到LOCATION 的数据类型是MDSYS . SDO_GEOMETRY,所以,LOCATION需要在元数据表中填写一条相关记录。