Oracle Spatial空间数据库开发应用指南

出版时间:2008-6  出版社:测绘出版社  作者:何原荣,李全杰,傅文杰 编著  页数:349  

前言

为满足多媒体和地理信息系统等非传统关系数据库应用的需求,Oracle公司提供了空间数据暗盒(Spatial Cartridge,SC)用来存储和管理空间数据。从Oracle7.3.3版本就可以使用sc了。SC也就是Oracle Spatial的关系模式,是标准的C/s模式产品,提供了分布式处理能力,全部的Oracle安全管理机制,SQL方式访问空间数据等功能。SC的空间数据管理和空间数据分析完全由Oracle来执行,对图形数据的管理采用的是一种开放的方式,任何授权用户可以通过SQL数据管理语言(DML)进行空间数据的添加和删除等操作;SC采用多记录多字段存储空间数据。随着Oracle 8i的推出,Oracle公司把SC升级为Oracle Spatial。在Oracle Spatial中,引入了SDO GEOMETRY等抽象数据类型来表示空间数据,SDO_GEOMETRY可以存储在一个字段中,与普通的自定义类型没有什么区别,可以作为字段的类型使用,这样就可以在Oracle数据库中快速有效地存储、访问和分析空间数据。也方便了应用开发人员在行业标准的数据库服务器中存储所有位置(地理位置)信息,而无须再求助于定制的外部索引和函数去实现他们所需要的此类功能。Oracle spatial提供对象-关系模式和关系模式两种方式来存储空间数据。前者的特征是空间表中有一个类型为MDSYS.	SDO_GEOMETRY的字段,后者也就是空间数据暗盒,其特征是每一个空间几何图层对应4个表,分别为_SDOLAYER、_SDODIM、_SDOGEOM、_SDOINDEX。这些表并不包括属性数据,属性数据需建立连接。本书深入讲解对象-一关系模式的Oracle Spatial。从Spatial的版本上来看,本书不仅涉及从Oracle 7.3.3开始到0racle 8.1.6之间的SC,而且还涉及Oracle 8i、9i Spatial以及最近推出的Oracle 10g Spatial,并以Oracle 10g Spatial为依据。内容主要包括矢量数据的存储与管理、空间数据的上载、空间坐标系。拓扑数据模型、网络数据模型、栅格数据模型是Oracle 10g Spatial提供的,对空间数据的存储和管理提供了较为完备的支持。

内容概要

本书以Oracle 10g Spatial为范本,深入讲解了对象-关系模式的0racle-Spatial。内容主要包括空间索引与空间查询、空间数据(包括矢量数据与栅格数据)的存储与管理、空间坐标系、拓扑数据模型、网络数据模型、栅格数据模型等理论,还包括使用Java API、PL/SQL API,以及从Oracle 9i开始提供的开发方式OCCI如何开发基于Oracle Spatial的应用程序。最后在本书的附录中解析了Oracle 10g Spatial几乎所有的包、函数与过程。    本书的读者对象包括从事GIS、CAD、CAM、RS行业的工作者,高校中GIs专业、交通专业、环境专业、测绘专业等有空间数据库课程的本科生、硕士生、博士生,深入学习Oracle-数据库的读者,深入学习对象-关系数据库的读者以及正在使用Oracle Spatial的用户。也可以作为空间数据库课程的参考用书。

作者简介

何原荣,男,汉族,中南大学地图制图学与地理信息工程博士研究生,1977年8月生,福建省龙海市人,现任教于桂林旅游高等专科学校,主要从事资源环境GIS与遥感应用研究,主持完成省部级项目1项,参与国际合作项目1项、省厅级项目8项,发表研究论文10余篇,参编教材2部。李全杰,男,汉族,桂林工学院地图制图学与地理信息工程硕士研究生,1978年3月生,河南商丘人,任教于桂林工学院,主要从事webGIS、Grid GIS的研究。傅文杰,男,汉族,1967年2月生,福建省莆田市人,2006年6月获中南大学国土资源信息工程专业博士学位,高级工程师,现任教于莆田学院环境与生命科学系,主要从事国土资源信息工程与3S应用研究,主持完成省部级项目2项,参与国家“十五”攻关科技项目1项、省部级项目5项,获得部级科技进步一等奖1项,2007年被评为“福建省新建本科院校跨世纪人才”。已在核心刊物上发表研究论文10多篇。

书籍目录

第1章 Oracle Spatial概述 1.1 Oracle Spatial  1.1.1 什么是Oracle Spatial  1.1.2 两种模式及其特点  1.1.3 空间索引  1.1.4 空间查询  1.1.5 地理信息系统、空间数据库与Oracle Spatial 1.2 Oracle Spatial矢量数据模型  1.2.1 元素  1.2.2 空间对象  1.2.3 空间对象的数据类型  1.2.4 Oracle Spatial空间对象数据类型  1.2.5 图层  1.2.6 大地基准  1.2.7 容差 1.3 Oracle Spatial的安装 1.4 Oracle Spatial示例程序第2章 矢量数据的存储与管理 2.1 SDO_GEOMETRY空间数据类型  2.1.1 SDO_GTYPE属性  2.1.2 SDO_SRID属性  2.1.3 SDO_POINT属性  2.1.4 SDO_ELEM_INFO属性  2.1.5 SDO_ORDINATES属性  2.1.6 GETDIMS方法  2.1.7 GET_GTYPE方法  2.1.8 GET_LRSDIM方法  2.1.9 使用SDO_GEOMETRY数据类型时需要注意的问题  2.1.10 类型有效性 2.2 存储示例  2.2.1 线串的存储线  2.2.2 中间含有矩形的多边形的存储  2.2.3 组合多边形的存储 2.3 Oracle Spatial系统元数据视图  2.3.1 TABLE-NAME属性  2.3.2 COILUMN-NAME属性  2.3.3 DIMINFO属性  2.3.4 SRID属性  2.3.5 OWNER属性 2.4 空间索引系统元数据视图  2.4.1 空间索引基本信息元数据视图  2.4.2 空间索引详细信息元数据视图  2.4.3 对象关系模式空间索引数据数据表的结构与含义 2.5 空间操作  2.5.1 查询两个空间对象是否相交  2.5.2 查看两个空间对象的空间关系  2.5.3 查询空间对象的面积  2.5.4 查询两个空间对象之间的距离  2.5.5 验证空间对象的有效性  2.5.6 验证图层的有效性 2.6 Oracle Spatial Java API示例程序第3章 空间数据的上载与浏览 3.1 上载原理与上载方法  3.1.1 上载原理  3.1.2 上载方法 3.2 Easy Loader  3.2.1 窗口下的Easy Loader  3.2.2 命令行下的Easy Loader  3.2.3 Mapcatalog  3.2.4 MapInfo与Oracle Spatial基本图元之间的关系 3.3 SQL*Loader  3.3.1 SQL*Loader语法  3.3.2 控制文件  3.3.3 数据文件 3.4 Shp2SDO  3.4.1 数据转换  3.4.2 数据上载 3.5 Maplnfo与ESRI的外部交换格式  3.5.1 Mif文件格式  3.5.2 shp文件格式 3.6 SQL存储示例  3.6.1 点的存储  3.6.2 线的存储  3.6.3 由线组合而成的线的存储  3.6.4 矩形的存储  3.6.5 中间含有矩形的多边形的存储  3.6.6 中间含有圆形的组合多边形的存储  3.6.7 由基本空间对象组合而成的闭合多边形的存储 3.7 地图浏览  3.7.1 Maplnfo Professional  3.7.2 MapX  3.7.3 LayerInfo对象  3.7.4 MapXtreme for Java  3.7.5 Spatial Index Advisor  3.7.6 Map Viewer第4章 空间索引与空间查询 4.1 空间索引  4.1.1 创建空间索引  4.1.2 修改空间索引  4.1.3 重建空间索引  4.1.4 重命名空间索引  4.1.5 删除空间索引  4.1.6 创建四叉树索引时注意事项  4.1.7 创建R一树索引的注意事项  4.1.8 四又树索引与R一树索引的比较 4.2 不同模武下空间索引的建立 4.3 扩展空间索引  4.3.1 自定义类型中的SDO_GEOMETRY属性索引的建立  4.3.2 返回值类型是SDO_GEOMETRY的函数索引  4.3.3 返回值是用户自定义类型函数的索引 4.4 空间查询  4.4.1 基本查询  4.4.2 再查询 4.5 基于不同类型空间索引的空间查询  4.5.1 基于四叉树索引的查询  4.5.2 基于R一树索引的查询  4.5.3 两类空间索引对查询的影响比较 4.6 一定距离内空间对象的查询 4.7 空间连接 4.8 交叉模式的查询第5章 空间坐标系及其实现 5.1 空间坐标系基本概念 5.2 物理存储结构  5.2.1 MDSYS.CS-SRS  5.2.2 WKTEXT格式  5.2.3 MDSSYS.SD0ANGIEUNITS  5.2.4 MDSYS.SD0_DIST-UNITS  5.2.5 MDSYS.SD0_DATUMS  5.2.6 MDSYS.SD0_ELLIPSOIDS  5.2.7 MDSYS.SDO_PROJECTIONS 5.3 创建用户自定义的坐标系 5.4 坐标系转换函数 5.5 坐标系的转换示例第6章 拓扑数据模型 6.1 拓扑的基本概念  6.1.1 拓扑与拓扑学  6.1.2 矢量数据的简单数据结构与拓扑数据结构  6.1.3 拓扑元素  6.1.4 空间数据库中的拓扑关系  6.1.5 拓扑示例  6.1.6 空间对象与拓扑对象  6.1.7 0racle 10g Spatial的拓扑与拓扑图层  6.1.8 拓扑图层的层次化存储 6.2 拓扑数据类型  6.2.1 SD_0TOPO_GEOMETRY数据类型  6.2.2 SD0_TOP0_GEOMETRY的构造函数  6.2.3 GETGEOMETRY成员函数  6.2.4 SDO_LIST_TYPE数据类型  6.2.5 SDO_EDGE_ARRAY与SDO_NUMBER_ARRAY数据类型 6.3 存储结构    6.3.1 弧段表  6.3.2 结点表  6.3.3 面表  6.3.4 要素拓扑关系表  6.3.5 编辑历史信息表  6.4 系统元数据视图  6.4.1 XXX_SD0_TOPO_INF0视图  6.4.2 XXX_SD0_TOPO_METAATA 6.5 拓扑编辑  6.5.1 编辑结点  6.5.2 编辑弧段  6.5.3 拓扑缓冲区  6.5.4 拓扑缓冲对象  6.5.5 使用PL/SQLAPI直接操作缓冲区的过程 6.6 拓扑示例程序  6.6.1 向(topology_name)_EDGE$表中存储数据  6.6.2 向_NODE$结点表中存储数据  6.6.3 向(topology_name)_FACE$面表中存储数据  6.6.4 创建要素表  6.6.5 把要素与拓扑关联起来,并向拓扑CIT_Y_DATA中添加3个拓扑图层  6.6.6 初始化Oracle Spatial拓扑元数据  6.6.7 向类型为SDO_TOPO_GEOMETRY的字段中装载要素类  6.6.8 查询数据 6.7 使用拓扑数据模型的基本步骤 6.8 拓扑数据模型的Java API  6.8.1 Java开发接口类  6.8.2 使用JAVAAPI直接操作缓冲区的过程第7章 网络数据模型 7.1 网络与网络分析  7.1.1 网络的定义  7.1.2 网络分析 7.2 基本概念  7.2.1 网线(1ink)  7.2.2 结点(node)  7.2.3 路径(path)  7.2.4 网络(network)  7.2.5 要素  7.2.6 代价(cost,也叫权重或者网络权重)  7.2.7 可抵达结点(reachable nodes)与连通点(reaching nodes)  7.2.8 度、出度与入度  7.2.9 网络约束  7.2.10 最小生成树与最短路径 7.3 网络抽象模型与抽象网络  7.3.1 网络抽象  7.3.2 几何模型与几何网络  7.3.3 逻辑网络 7.4 PL/SQL示例程序  7.4.1 SDO网络示例  7.4.2 LRS网络示例  7.4.3 逻辑网络示例  7.4.4 具有分层结构的网络示例 7.5 网络数据模型编辑器  7.5.1 java虚拟机与CLASSPATH的设置  7.5.2 网络数据模型编辑器的使用 7.6 网络表结构  7.6.1 结点表  7.6.2 网线表  7.6.3 路径表与路径-链接表 7.7 元数据视图 7.8 网络数据模型Java API简介与示例程序  7.8.1 网络示例程序一  7.8.2 网络示例程序二 7.9 使用网络数据模型的基本步骤  7.9.1 CREATE__NETW0RK创建网络  7.9.2 手工创建网络第8章 栅格数据模型 8.1 栅格数据模型  8.1.1 维度与分层  8.1.2 波段与图层  8.1.3 栅格数据与元数据  8.1.4 图像坐标系与地面坐标系 8.2 物理存储结构  8.2.1 数据块  8.2.2 SDO_GEORASTER与SDO_RASTER数据类型  8.2.3 SDO_GEORASTER数据类型  8.2.4 SD_ORASTER数据类型  8.2.5 栅格数据表格  8.2.6 栅格表与栅格数据表的关系  8.2.7 物理存储结构 8.3 栅格图像的装载、浏览与导出  8.3.1 配置java虚拟机  8.3.2 设置CLASSPATH  8.3.3 GeoRasterLoader  8.3.4 处理栅格图像时可能出现的问题  8.3.5 GeoRasterViewer  8.3.6 GeoRasterExporter  8.3.7 使用工具注意事项 8.4 同色的与空的栅格图像  8.4.1 同色的栅格图像  8.4.2 空的栅格图像 8.5 地理参照  8.5.1 定义  8.5.2 原理  8.5.3 方法  8.5.4 查看地理参照信息 8.6 影像金字塔  8.6.1 影像金字塔的类型  8.6.2 层次大小  8.6.3 分块金字塔  8.6.4 操作金字塔的函数 8.7 其他栅格数据类型 8.8 系统视图与XML模式  8.8.1 系统视图  8.8.2 XML模式 8.9 PL/SQL示例 8.10 栅格数据模型Java示例程序第9章 用OOCI开发Oracle 10g Spatial应用程序 9.1 OCCI数据类型 9.2 OCCI应用程序接口  9.2.1 OCCI类的使用方法  9.2.2 OCCI类 9.3 OCCI示例与OCCI的类  9.3.1 VC++环境设置  9.3.2 OCCI各类之间的关系  9.3.3 环境变量Environment  9.3.4 连接对象Connection  9.3.5 连接池对象(ConnectionPool与StatelessConnectionPool)  9.3.6 Statement对象  9.3.7 ResultSet对象  9.3.8 Metadata对象 9.4 对象类型翻译器(OTT)  9.4.1 OTT环境设置  9.4.2 OTT翻译类的使用  9.4.3 在多文档程序中使用OTT翻译过来的类  9.4.4 OTT可用的参数 9.5 OTT示例程序  9.5.1 翻译数据类型  9.5.2 示例程序附录1 空间操作附录2 SDO_GEOM包附录3 SDO_CS包附录4 SDO_TUNE包附录5 SDO_UTIL包附录6 SDO_MIGRATE包附录7 SDO_TOPO包附录8 SDO_TOPO_MAP包附录9 SDO_NET包附录10 SDO_GEOR包附录11 SDO_GEOR_UTL包附录12 SDO_ADMIN包附录13 空间聚合函数参考文献

章节摘录

插图:关系模式有如下特点:①允许对数据库进行复制操作;②支持分布式数据库;③支持对象的分割与索引的并行装载。如一个很长的线对象在-条记录中不能完全存储时,可以使用两条或多条记录来存储。2.对象-关系模式及其特点了解Spatial的对象-关系模式之前先了解对象-关系型数据库。对象-关系数据库是当前的主流数据库,是扩展关系数据库的数据库。Oracle从8i开始就是一个对象-关系型数据库。(1)对象-关系数据库面向对象数据库管理系统(OODBMS)必须满足两个条件:①支持一个核心的面向对象数据模型;②支持传统数据库系统所有的数据库特征。也就是说00I)BMS必须保持第二代数据库系统已有的技术。OODBMS不仅能很好地支持对象管理和规则管理,而且能更好的支持原有的数据管理。对象-关系数据库系统就是按照这样的目标将关系数据库系统与面向对象数据库系统两方面的特征相结合。对象-关系数据库除了具有关系数据库的各种特点以外,还有其自身的特点:①扩充数据类型无论是网状与层次数据库,还是关系型数据库管理系统,它们只支持固定的数据类型集,如字符型、整型等,不能依据某一应用所需的特定数据类型进行扩展出新的类型集。对象-关系数据库则允许用户根据应用需求定义自己的数据类型、函数和操作符,对原有数据类型进行扩充。在Oracle中,纯粹的关系模式中不能表达一个3维向量对应的数据类型,因为在数据库中没有一个数据类型能包含三个实数;而在对象-关系数据库中,就可以定义这样的对象类型。

编辑推荐

《Oracle Spatial空间数据库开发应用指南》:国家旅游发展基金项目“桂林旅游信息决策系统建设”资助。

图书封面

评论、评分、阅读与下载


    Oracle Spatial空间数据库开发应用指南 PDF格式下载


用户评论 (总计3条)

 
 

  •   书写的不错,对于学习oracle spatial的实现原理,有一定 帮助
  •   内容精细,书的印刷质量也很好,值得一读。
  •   还不错吧,正在学习这些内容,希望有一些帮助
 

250万本中文图书简介、评论、评分,PDF格式免费下载。 第一图书网 手机版

京ICP备13047387号-7