空间数据库实验指导书
dl09ch08空间数据库实验指导书

实验一Arcsde使用及Geodatabase构建一、实验目的1.掌握SQL SERVER2000的工作机制,了解ARCSDE基本原理。
2.掌握ARCSDE的连接。
3.掌握创建个人GEODATABASE的基本步骤和方法。
二、实验任务1创建自己的ARCSDE帐户。
2查看要素类在数据库中的表。
3创建一个给定数据的个人GEODATABASE。
三、实验仪器设备1ARCCATALOG、某地区的SHP数据。
2XP操作系统的计算机一台。
四、实验方法与步骤1.在创建的地理数据库之间要完成数据库的概念设计,每一个图层对应一个数据表,在ArcCatalog中“要素类”(Feature Class)的概念与之对应。
可以将多个要素类组织成为一个“要素集”(Feature DataSet),在同一个要素集中的要素类都具有相同的地理参考(坐标系相同)。
2.ArcCatalog的目录树中,定位到E:盘,右键点击这E:盘,在出现的菜单中,选择<新建>-<文件夹>,文件夹名称改为myGeoDB 。
右键选中这个文件夹,在出现的菜单中,点击<新建>-<个人Geodatabase>,这时会创建一个名称为“新建个人Geodatabase.mdb”的数据库文件,将之改名为:“YY”。
3. 右键点击数据库文件“YY.mdb”,在出现的菜单中,选择<导入>-<要素类multiple>,在出现的对话框中,打开要导入要素:YY县界prj.shp/YY县城prj.shp/YY道路prj.shp 。
4.右键点击数据库文件“YY.mdb”,在出现的菜单中,选择<新建>-<要素集>5.在出现的对话框中输入要素集的名称、点击按钮“编辑”为其指定一个坐标系6.在这里,我们设定坐标系为:GCS_WGS_1984(即GeographicCoordinate System->World->WGS 1984.prj),这是一种被GPS采用的地理坐标系。
空间数据库实验报告

一、实验目的1. 了解空间数据库的基本概念和原理;2. 掌握空间数据库的建立、管理和使用方法;3. 熟悉空间数据库的查询和操作;4. 提高空间数据处理和分析能力。
二、实验环境1. 操作系统:Windows 102. 数据库管理系统:MySQL 5.73. 开发工具:Visual Studio Code4. 空间数据库驱动:MySQL Spatial Extension三、实验内容1. 空间数据库的建立与配置(1)创建数据库打开Visual Studio Code,连接到MySQL数据库服务器,执行以下SQL语句创建空间数据库:CREATE DATABASE IF NOT EXISTS spatial_db;(2)创建空间表在空间数据库中创建空间表,使用以下SQL语句:CREATE TABLE IF NOT EXISTS cities (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(50),geom GEOMETRY NOT NULL,INDEX geom_idx (geom));2. 空间数据的插入与查询(1)插入空间数据使用以下SQL语句插入空间数据:INSERT INTO cities (name, geom) VALUES ('Beijing',ST_GeomFromText('POINT(116.4074 39.9042)'));INSERT INTO cities (name, geom) VALUES ('Shanghai',ST_GeomFromText('POINT(121.4737 31.2381)'));(2)查询空间数据查询与给定坐标点距离小于10公里的城市:SELECT name FROM cities WHERE ST_Distance(geom,ST_GeomFromText('POINT(116.4074 39.9042)')) < 10000;3. 空间数据的更新与删除(1)更新空间数据使用以下SQL语句更新城市名称:UPDATE cities SET name = 'Beijing New City' WHERE name = 'Beijing';(2)删除空间数据使用以下SQL语句删除城市:DELETE FROM cities WHERE name = 'Beijing New City';4. 空间数据的聚合与分析(1)计算所有城市的面积SELECT name, ST_Area(geom) AS area FROM cities;(2)计算相邻城市的距离SELECT name, name AS neighbor, ST_Distance(geom,ST_GeomFromText('POINT(116.4074 39.9042)')) AS distanceFROM cities, cities AS neighborWHERE <> AND ST_Distance(geom, neighbor.geom) < 10000;四、实验结果与分析1. 成功创建空间数据库和空间表,并插入、查询、更新和删除空间数据;2. 空间查询和分析功能正常,可以计算城市面积和相邻城市距离;3. 实验过程中未出现异常,空间数据库运行稳定。
空间数据库实验

实验四数据更新、视图操作和数据控制一、使用SQL语言对所提供的“学生选课”数据库进行数据更新操作⏹student(学号,姓名,性别,年龄,班级)⏹teacher(教师号,姓名,性别,年龄,级别,专业)⏹course(课程号,课程名,教师号)⏹sc(学号,课程号,成绩)请在查询分析器里输入如下语句:create database 学生选课; /*创建名为学生选课的数据库*/执行以后,再输入如下语句:use 学生选课;/*1:建立学生表*/create table student (学号 char(3) primary key,姓名 char(4),性别 char(2),年龄 int,班级 char(5));insert into student values('108','曾华','男',19,'95033'); insert into student values('105','匡明','男',20,'95031'); insert into student values('107','王丽','女',20,'95033'); insert into student values('101','李军','男',19,'95033'); insert into student values('109','王芳','女',22,'95031'); insert into student values('103','陆君','男',20,'95031'); /*2:建立教师表*/create table teacher(教师号 char(3) primary key,姓名 char(4),性别 char(2),年龄 int ,级别 char(6),专业 char(8));insert into teacher values('804','李成','男',42,'副教授','计算机系');insert into teacher values('856','张旭','男',35,'讲师','电子工程');insert into teacher values('825','王萍','女',28,'助教','计算机系');insert into teacher values('831','刘冰','女',25,'助教','电子工程');/*3:建立课程表*/create table course (课程号 char(5) primary key,课程名 char(10),教师号 char(3),foreign key(教师号) references teacher(教师号));insert into course values('3-105','计算机导论','825'); insert into course values('3-245','操作系统','804'); insert into course values('6-166','数字电路','856'); insert into course values('9-888','高等数学','831');/*4:建立选课表*/create table sc(学号 char(3),课程号 char(5),primary key(学号,课程号),成绩 int,foreign key(学号) references student(学号), foreign key(课程号) references course(课程号) );insert into sc values('103','3-245',86);insert into sc values('105','3-245',75);insert into sc values('109','3-245',68);insert into sc values('103','3-105',92);insert into sc values('105','3-105',88);insert into sc values('109','3-105',76);insert into sc values('101','3-105',64);insert into sc values('107','3-105',91);insert into sc values('108','3-105',78);insert into sc values('101','6-166',85);insert into sc values('107','6-166',79);insert into sc values('108','6-166',81);/*5:所有表内容*/select * from student;select * from course;select * from teacher;select * from sc;使用批处理的形式完成以下操作1.在student表中插入元组“110,刘力,男,2295033”insertinto studentvalues('110','刘力','男',22,'95033')2.在teacher表中插入元组“888,王方”insertinto teacher(教师号,姓名)values('888','王方');3.对每一个学生,求他选修课程的平均分,并将此结果存入数据库,运用批处理一次运行所有语句提示:先创建一个名为Agrade的新表,字段为学号和平均成绩,再通过带子查询的插入操作保存数据create table agrade(学号char(15),平均成绩int);insertinto agradeselect学号,avg(成绩)from scgroup by学号;4.将student表中学号为101的元组的年龄属性值改为21,班级属性值改为95031update studentset年龄=21,班级=95031where学号=101;5.将sc表中所有成绩低于70的学生的成绩属性值统一修改为0 update scset成绩=0where成绩<70;6.将student表中姓名属性名含有“王”或“华”的相应年龄属性值增加1update studentset年龄=年龄+1where姓名like'%王%'or姓名like'华';7.将学生名为“王丽”选修的3-105课程的成绩修改为100提示:带子查询的更新update scset成绩=100where课程号='3-105'and学号=(select学号from studentwhere姓名='王丽');8.删除所有学生姓名中第二个字为“明”字的记录,并在成绩表中删除相应的记录deletefrom scwhere学号=(select学号from studentwhere姓名like'-明%')deletefrom studentwhere姓名like'-明%';二、使用SQL语言对所提供的“学生选课”数据库进行数据视图操作1.为student表的学号和姓名属性建立名为S_View的视图create view S_View(学号,姓名)asselect学号,姓名from student;2.将S_View视图中学号为101的学生名修改为“小军”update S_Viewset姓名='小军'where学号='101';3.在S_View视图中插入一个新的记录,学号为“111”,名为“陈方”insertinto S_View(学号,姓名)values('111','陈方');4.为视图S_View建立姓名的视图S_Sname_Viewcreate view S_Sname_viewasselect姓名from S_View;5.删除视图S_View,查看下视图S_Sname_View是否受影响drop view S_View;6.为student表的学号和姓名属性建立名为S_View1的加密视图,看是否能修改该视图结构CREATE view S_view(学号,姓名)with encryptionasselect学号,姓名from student;7.在sc表上按属性学号分组,求出每組在属性成绩属性上的最大值、最小值和平均值,且将它们置于视图GVE_View中,然后查询视图GVE_View中学号为“101”的记录。
(空间)数据库实验教程

《(空间)数据库实验教程》(征求意见稿)杨骏、叶健主编地球科学与环境工程学院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)根据一个具体应用,独自完成数据库模式的设计。
空间数据结构基础实验指导书

《空间数据结构基础》课程实习指导书实习周数:2 周学分数:2一、实习目的数据结构是一门重要的专业基础课,其特点是理论与实践都占据着极其重要的位置。
这门课对学生的主要要求包括要掌握各种基本数据结构的定义、抽象数据类型描述、相关的算法描述与算法的性能分析与评价,以及数据结构与算法的综合应用能力。
为了达到教学要求,以上机实验为主要形式的实践教学环节是不可缺少的。
上机实验的主要内容可分为两种,一是验证经典算法和教材中的算法例程,二是设计并检验自己设计的算法,课程中的16课时的上机实验主要是以前者为目的,而为期2周的课程实习则以后者为目的。
通过课程实习可以帮助学生正确理解所学概念,了解不同的算法特点,掌握算法性能,积累算法设计经验。
教学经验表明,学生只有通过一定时间量的算法设计和程序调试等实践活动,才能较全面和较深入地掌握数据结构的知识,在此基础上,发挥学生的想象力和创造力,设计出新颖多样的有应用价值的算法。
二、实习要求1. 通过实习,学生能够对所学的每一种数据结构正确理解,能够针对不同的问题选择合适的数据结构,在程序中将抽象数据类型实例化。
2. 深刻理解典型算法的设计思想,掌握不同算法在解题策略和流程控制逻辑等方面的不同特点和实现方法。
再进一步总结并掌握计算机处理数据和解决问题的一般规律,从而能够自行设计应用算法。
3. 学会对算法进行性能评价和分析,比较同一个问题的多种解法,针对具体问题能够设计出高效的算法。
4. 提高学生进行程序设计的综合能力,使其从初学者进阶到较有经验和专业素质的程序设计者。
5.要求学生严格遵守实习纪律,认真开发,按时提交实习报告。
三、实习内容参见“六、实习内容简介”中每章的“二、程序设计练习”和第4章的练习。
根据个人情况任选3~5题予以完成。
四、实习内容的时间分配先集中1天左右时间对实习的安排,实习分组,实习要求等作出部署,并分项讲解不同实习项目的要求;针对不同的实习项目,学生用2天左右的时间进行资料查询和开发方案设计;方案和数据结构设计完成后,利用5天左右时间进行程序编码、调试和优化,最后利用2天左右时间进行汇报讨论和提交实习报告。
空间数据库的建立实验报告

空间数据库的建立实验报告空间数据库是一种用于存储和管理空间数据的数据库系统。
它具有将空间数据与地理位置进行关联的能力,能够有效地存储和查询地理信息。
本文将介绍空间数据库的建立实验报告。
一、引言空间数据库是地理信息系统(Geographic Information System,GIS)中的重要组成部分,它可以存储和管理地理空间数据,如地图、遥感图像等。
在实际应用中,空间数据库可以广泛应用于城市规划、环境监测、交通管理等领域。
本实验旨在通过建立一个空间数据库,探索其在地理信息管理中的应用。
二、实验目的1.了解空间数据库的基本概念和原理;2.掌握空间数据库的建立方法;3.熟悉空间数据库的查询与分析功能;4.实践运用空间数据库解决实际问题。
三、实验步骤1.选择合适的空间数据库管理系统(Spatial Database Management System,SDMS),如PostgreSQL+PostGIS;2.安装和配置SDMS,确保系统正常运行;3.创建数据库,并设计空间数据表结构;4.导入地理空间数据,如地图数据、遥感图像等;5.进行数据查询和分析,验证空间数据库的功能。
四、实验结果与分析在实验中,我们选择了PostgreSQL作为SDMS,并通过PostGIS 扩展实现空间数据的存储和管理。
首先,我们创建了一个名为"gis"的数据库,并设计了三个表:地图表、地点表、线路表。
地图表存储了各个地图的名称、边界等信息;地点表存储了各个地点的名称、经纬度等信息;线路表存储了各个线路的起点、终点、长度等信息。
然后,我们导入了一份城市地图数据,并进行了一些简单的查询和分析。
通过查询地点表,我们可以找到某个地点的经纬度;通过查询线路表,我们可以计算某条线路的长度。
此外,我们还可以通过空间查询,查找某个地点周围一定范围内的其他地点。
实验结果表明,空间数据库能够有效地存储和管理地理空间数据,并提供了丰富的查询和分析功能。
《空间数据采集与管理》实习指导书

《空间数据采集与管理》实习指导书一、实习目的与要求1.巩固和加深课堂所学理论知识,培养学生理论联系实际、实际动手能力;2.熟练掌握常用测量仪器(水准仪、全站仪)的使用;3. 掌握导线测量、三四等水准测量的观测和计算方法。
二、实习任务1.水平角方向法多测回观测;2.城市二级导线测量;3.四等水准测量。
具体安排与取舍由带队老师决定。
三、方式与安排:四、仪器工具各组配备下列仪器工具:全站仪1台,棱镜觇牌2套,脚架3个,S3水准仪一台,红黑双面区格式水准尺一对。
其他:2m钢卷尺1把。
各组应自备计算器1个。
导线测量手簿、导线计算表、高程计算表、图纸等耗材由同学自行解决。
五、技术要求(一)规范:《城市测量规范》 CJJ T8-2011《三四等水准测量规范》GB/T 12898-2009(二)具体安排1.全站仪的检验⑴视准轴垂直于横轴的检验:对一个与仪器同高的目标用竖丝盘左盘右观测2测回,读水平度盘读数,分别计算视准轴误差2C,取平均值。
J2仪器2C绝对值应小于8″,J5仪器应小于20″;⑵竖盘指标差的检验:对一明显目标,用横丝盘左盘右观测2测回,计算竖盘指标差,并取平均值,其值不得超过10″;⑶测距加常数检验:按教材加常数简易测定方法检验。
2.城市二级导线测量⑴选点:由指导教师或自行沿无影山校区主干路选择一闭合导线,假定一固定点为起始点,为人身仪器安全及不影响正常学校教学工作起见,导线点应尽量埋设在路边。
以油漆为标记并编号。
⑵观测:在导线起点选一起始方向,并按实际方位鉴定起始方位角,观测连接角。
转折角采用测回法。
⑶技术要求:参考《城市测量规范》CJJ8-2011。
⑷导线计算:外业观测结束后,应对手簿进行全面检查,保证观测成果满足要求。
然后利用导线计算表计算各点坐标。
⑸成果:导线观测原始记录手簿、导线示意图(每条导线边长、转折角、方位角闭合差、导线全长闭合差都要标注)、导线平面坐标和高程计算表。
3.水平角观测:每人至少观测一测站,一测回内2C 值较差不大于13″。
空间数据库课程设计指导书

《空间数据库》课程设计指导书一、课程设计目的理解空间数据库的一般原理、方法,空间数据库管理系统的系统结构和实现技术;熟练掌握Geodatabase数据模型和面向对象技术;利用建模工具进行Geodatabase的分析、设计、建立和运行维护全过程及其技术和方法;培养学生编制软件设计文档和分析系统的能力。
二、课程设计内容1.ArcGIS Desktop软件的初步认识ArcGIG软件的安装方法;ArcGIG软件的主要功能模块及其基本操作方法,重点是ArcCatalog和ArcMap两个模块的学习和使用。
2.UML工具(Visio)的初步认识Visio软件的安装方法;Visio软件的基本功能及使用方法,重点是掌握类图的设计过程。
3.进行GeoDatabase类的设计利用ArcGIS提供的Visio模板,进行简单的空间数据库的对象类、要素类和网络要素类的设计,利用ArcCatalog导入向导建立GeoDatabase。
4.进行GeoDatabase子类的设计在前面实现的基础上,进行空间数据库的子类设计,并在ArcMap中进行简单的空间数据输入、编辑等操作。
5.进行GeoDatabase域的设计在前面实现的基础上,进行空间数据库的代码域和范围域设计,并在ArcMap 中进行域的有效性验证操作。
6.进行GeoDatabase关联类的设计在前面实现的基础上,进行空间数据库的关联规则和关联属性的设计,并在ArcMap中进行关联规则的有效性验证等操作。
7.进行GeoDatabase几何网络的设计在前面实现的基础上,进行空间数据库的简单交汇点和简单边的设计,并在ArcMap中进行网络的连通性验证等操作。
8.对GeoDatabase进行模型重用和数据加载在前面实现的基础上,对GeoDatabase模型进行修改和重用,利用ArcCatalog 和ArcMap进行数据的导入。
三、课程设计地点和单位学院GIS实验室,课程设计时间2011年6月27日至7月1日。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《空间数据库》实验指导书班级学号姓名空间数据库实验预备知识——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.了解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结构及用途;二、实验环境在Oracle的Enterprise Manager Console中进行实验,打开Enterprise Manager Console的方法:开始→程序→Oracle–ora92→Enterprise Manager Console,出现如下登录界面:选择“独立启动”选择按钮,点击确定进入Enterprise Manager Console界面如下图所示:点击数据库中的实例(上图中实例为ORACLE01),进行连接,出现如下图所示的连接界面:填入正确的用户名和口令,“连接身份(A)”选择SYSDBA,如下图:连接后实例名将改变为下图所示:三、实验步骤及分析(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都在此程序中执行),并运行如下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需要在元数据表中填写一条相关记录。
(5)根据用户表填写空间元数据,并说明其实际意义。
INSERT INTO USER_SDO_GEOM_METADATAV ALUES(‘SPATIALTEST’,‘LOC’,MDSYS.SDO_DIM_ARRAY(MDSYS.SDO_DIM_ELEMENT(’Longitude’,-180,180,10),MDSYS.SDO_DIM_ELEMENT(’Latitude’,-90,90,10)),8307);(6) 利用USER_SDO_GEOM_METADATA视图查看元数据表并记录内容:SELECT * FROM USER_SDO_GEOM_METADATA(7)查看对象类型MDSYS.SDO_GEOMETRY的结构并记录下来,说明每个属性代表的实际意义。
(8)查看数组类型MDSYS.SDO_ELEM_INFO_ARRAY的结构并记录下来。