在知识传播途中,向涉及到的相关著作权人谨致谢意!
文章目录
【数据库】数据库是长期储存在计算机内的、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享
1 数据模型
数据库领域中最常用的数据模型有四种
- 层次模型(Hierarchical Model)
- 网状模型(Network Model)
- 关系模型(Relational Model)
- 面向对象模型(Object Oriented Model)
1.1 层次数据库模型
【特点】是将数据组织成一对多关系的结构
【层次结构】采用关键字来访问其中每一层次的每一部分
【适用于】文献目录、土壤分类、部门机构等分级数据的组织
【优点】 层次模型中各数据之间构成一种依次的、从上至下的层次关系,层次清楚,数据存取、检索方便。
【缺点】
- 不能表示多对多的联系,结构缺乏灵活性;
- 在GIS中,不能顾及公共点、线数据共享和实体元素间的拓扑关系;
- 需要采用大量的索引文件,
- 实体元素重复存储,导致大量的冗余数据
1.2 网络数据库模型
网络模型用连接指令或指针来确定数据间的显式连接关系,是具有多对多类型的数据组织方式 。
【特点】采用双向指针来表示数据间的连接关系,可表示多对多关系
【优点】
- 网络模型 类似于拓扑数据模型,可表示相邻的图形特征;
- 在复杂的拓扑结构中搜索,双向环路指针很有效;
- 避免了数据冗余。
【缺点】
- 间接的指针占用大量存贮空间;
- 数据更新时,指针也需变化,其建立和维护困难
1.3 关系数据库模型
【关系数据库模型】
- 是以记录组或数据表的形式组织数据,以便于利用各种地理实体与属性之间的关系进行存储和变换,不分层也无指针
- 是建立空间数据和属性数据之间关系的一种非常有效的数据组织方法
【特点】
它把数据的逻辑结构归结为满足一定条件的二维表中的元素,关系表通过共同的特征联系起来。
【优点】
- 对实体描述具有一致性,不需指针;
- 结构灵活,易于理解和维护,
- 可以用布尔逻辑运算和数学运算来操作数据;
【缺点】
- 操作要求在文件中顺序查找满足特定关系的数据,当数据库庞大时,效率降低;
- 模型扩充困难
1.4 面向对象模型
【面向对象】GIS中的地物可根据国家分类标准或实际情况划分类型
【优点】面向对象的数据模型从概念上将人们对GIS的理解提高到了一个新的高度
- 一方面,它巧妙地容纳了GIS中拓扑数据结构的思想,能有效地表达空间数据的拓扑关系
- 另一方面,面向对象数据模型在表达和处理属性数据时,又具有许多独特的优越性。
2 空间数据库
【地位与作用】
- 空间数据库时地理信息系统中用于存储和管理空间数据的场所
- 在数据获取过程中,空间数据库用于存储和管理空间信息及非空间信息
- 在数据处理系统中,它既是资料的提供者,也可以是处理结果的归宿处
- 在检索和输出过程中,它是形成绘图文件或各类地理数据的数据源
- 在整个GIS中占有及其重要的地位,是在GIS发挥功能和作用的关键
- 用户在决策过程中,通过访问空间数据库获得空间数据,在决策过程完成后在将决策结果存储到空间数据库中。所以在空间数据库的布局和存储能力对GIS功能的实现和工作的效率影响极大
【地理信息系统的数据库(简称空间数据库或地理数据库)】
- 是某一区域内关于一定地理要素特征的数据集合;
- 是地理信息系统在计算机物理存储介质存储的与应用相关的地理空间数据的总和
- 一般是以一系列特定结构的文件的形式组织在存储介质之上的
【空间数据库与一般数据库相比,具有以下特点】
- 数据量特别大;
- 数据内包包括空间数据、属性数据以及二者之间的关系;
- 数据应用广泛;
【类型】
- 栅格数据库:航空遥感影像数据、DEM数据
- 矢量数据库:各种空间实体数据
【空间数据库的组成】
3 空间数据仓库
【空间数据仓库】Spatial Data Warehouse,简称SDW集成的、面向主题的、相对稳定的、反映时间变化和地理空间变化的空间数据存储,以支持各级管理人员基于空间数据的分析和决策
- 是GIS、空间数据库与数据仓库技术相结合的产物,它在普通数据仓库基础上,引入空间数据,增加对空间数据的存储、管理和分析能力,根据主题从不同的空间数据源中截取不同规模的时空尺度上的信息,从而为地学研究以及有关资源环境政策的制定等空间决策支持过程提供了最好的信息服务
- 空间数据仓库是数据仓库与空间处理分析的综合,具有空间,时间和主题的高度集成
- 从信息科学的角度来说,它是对数据仓库加进了非结构化信息处理
4 标准查询语言SQL
【背景】
- 查询语言是与数据库交互的主要手段
- 是数据库管理系统的一个核心要素
【SQL】structured query language
- 1974年提出,由IBM公司在其数据库管理中初次实现该中语言
- 是用于关系数据库管理系统的常见结构化查询语言,具有易用、直观、通用的特点
- 它不仅用于查询,也是一个通用的、综合的、功能极强又简洁的关系数据库语言
【特点】
- SQL集数据定义、操纵、控制功能于一体,能很好地满足数据操作要求
- 高度非结构化,SQL进行数据操作时,只需要提出“做什么”,操作由系统自动完成
- 语言简洁,易学易用
- 但SQL只提供简单的数据类型如整型、日期型、字符串型等,为了扩展其应用,后来OGIS协会又对SQL语言进行了扩展
【功能】SQL语言集数据查询(Data Query)、数据操纵(Data Manipulation)、数据定义(Data Definition)和数据控制(Data Control)功能于一体
【发展历程】
- 1974年由Boyce和Chamberlin提出的。
- 1975年~1979年IBM公司在其关系数据库管理系统原型system R并实现了这种语言
- 由于它功能丰富、语言简捷而被众多计算机公司和软件公司所采用,经不断修改、扩充和完善,从最初的SQL-86,经历SQL-89、SQL-92(SQL-2)发展到SQL-99(SQL-3,支持空间数据)SQL发展成为关系数据库的标准语言
- 其中SQL-86为SQL的最初版本,亦称为SQL-1;
- SQL-92是SQL成为关系数据库标准语言的版本,也称为SQL-2;
- 而在设计SQL-99时则主要考虑对通用SQL进行扩展,以支持空间数据,是SQL的第三个版本,也称为SQL-3
5 扩展SQL处理空间数据
【SQL面临的问题】SQL不足之处是只提供简单的数据类型:整型、日期型、字符串型等。空间数据库(SDB)的应用必须能处理多点、线和多边形这样的复杂的数据类型。亟需对SQL语言进行空间扩展。SQL的空间扩展,需要一项普遍认可的标准
【OGC】(OpenGISConsortium,OGC) 是由一些主要GIS 软件供应商组成的联盟,负责制定与GIS 互操作相关的行业标准
【OGIS】开放式地理空间数据互操作规范(open geodata interoperability specification,OGIS) 。由OGC制定
【扩展SQL】OGIS的空间数据模型可以嵌入到各种编程语言中,例如C、Java、SQL等等,提出了一套规范,把二维地理空间ADT(abstract data type, 抽象数据类型)整合到SQL之中,并且包括了指定拓扑的操作和空间分析操作
【在OGIS标准中,操作可分为三类】
- 用于所有几何类型的基本操作
- 用于空间对象间拓扑关系的操作测试。例如,overlay判断两个对象内部是否有一个非空的交集。
- 用于空间分析的一般操作。例如,distance返回两个空间对象之间的最短距离
【缺点】OGIS 规范SQL-99(SQL-3)在一定程度上解决了将通用SQL扩展到空间的目标,但仍存在以下问题。
- OGIS规范仅仅局限用于空间的对象模型,考虑到空间信息可以映射到场模型,OGIS正在开发针对场数据类型和操作的统一模型。
- 即使在对象模型中,对于简单的选择-投影-连接查询来说,OGIS的操作也存在局限性。
- OGIS标准过于关注基本拓扑的和空间度量的关系,而忽略了对度量操作的类的支持,不支持那些基于方位(例如,北、南、左、前等)谓词的操作。
- OGIS标准不支持动态的、基于形状以及基于可见性的操作
6 空间索引
【为什么需要索引】
- 存储介质性能的差异
- 计算机将存储器分为内存、外存,而访问外存所花费的时间是访问内存的十万倍以上。在实际的应用中,大量的数据是存储在外存上的,如果对外存上数据的位置不加以记录和组织,每查询一个数据项就要扫描整个数据文件,这种访问磁盘的代价就会严重影响系统的效率
【空间索引】空间索引是对存储在介质上的数据位置信息的描述,用来提高系统对数据获取的效率
- 依据空间对象的位置和形状或空间对象之间的某种关系按一定的顺序排列的一种数据结构
- 空间索引通过筛选,将无关的空间对象排除,从而提高空间操作的速度和效率
- 空间索引性能的优劣直接影响空间数据库和GIS的整体性能,所以它是很关键的一个技术
【作用】对存储在介质上的数据位置信息的描述,用来提高系统对数据获取的效率
【传统索引的原理】
- ISAM(Indexed Sequential Access Method)、VSAM(Virtual Storage Access Method)
多级主索引、柱面索引、磁道索引和主文件
- 索引记录的查找:发展了各种查找方法(顺序、折半、各种树、哈希表等)
6.1 分类
6.1.1 对象范围索引
【方法】记录空间实体的最大最小范围。根据范围,将不处于该范围的数据剔除,最后只检索那些真正符合范围要求的空间实体
【缺点】由于该索引只是对数据文件增加了最大最小范围,所以对于复杂对象,仍需花时间进行检索
6.1.2 格网索引
【目的】提高空间查询速度
【方法】将研究区划分为一定的格网,记录每一格网所对应的空间实体。当用户进行查询时,先计算格网位置,再快速查询所对应空间实体
【格网索引文件】为了提高查询速度,将每个格网进行编码(Peano码),建立编码与空间实体之间的关系,该表格成为格网索引文件
- 对格网进行Monton码进行编码
- 建立编码与空间对象之间的关系,没有包含空间对象的格网为空格网,在索引表中不记录
- 包含多个对象的格网,则要分别记录这些对象的标识号
【注意】按个格网法对空间数据进行索引时,所划分的格网数不能太多,否则,索引表本身太大而不利于数据的索引和检索
6.1.3 四叉树空间索引
【方法】在建立四叉树索引时,根据所有空间对象覆盖的范围,进行四叉树分割,使每个子块中包含单个实体,然后根据包含每个实体的子块层或子块大小,建立相应的索引。
6.1.4 R树
【R树】一种动态索引结构:它的查询可与插入或删除同时进行,而且不需要定期地对树结构进行重新组织
【原理】与对象范围索引类似
- R树认为N个实体也就有N个外接矩形所包围,利用空间实体的外接矩阵来进行空间索引
- 但R树不仅利用单个实体的外接矩形,还将空间位置相近的实体的外接矩形重新组织为一个更大的虚拟矩形
- 索引时,先对虚拟矩形进行判断,而后对实体进行检索
【缺点】由于空间对象的复杂性,实体的外接矩形通常是相互重叠的,使包含它们的虚拟矩形难免会重叠
【具体实现】
- 在构造虚拟矩形时,虚拟矩形方向与坐标方位轴一直,同时满足以下条件
- 包含尽可能多的空间实体
- 矩形间的重叠率尽可能少
- 允许在每个虚拟矩形内进一步细分
- 一个空间实体通常仅被一个同级虚拟矩形包围
- 索引:首先判断哪些虚拟矩形落入查询窗口内,再进一步判别哪些实体是被检索的内容,这样可以提高数据检索的速度
6.1.5 R+树
【R+树】对R树索引的一种改进
- 允许虚拟矩形可以相互重叠,并分割下层虚拟矩形
- 允许一个空间实体被多个虚拟矩形所包围
- 通过对多个虚拟矩形同等程度的检索,以达到索引重叠区域空间实体的目的
6.1.6 Cell树
针对R树和R+树在插入、删除与空间搜索效率两个方面难于兼顾的问题,产生了CELL树索引。它在空间划分时不再采用矩形作为划分的基本单位,而是采用凸多边形来作为划分的基本单位,具体划分方法与BSP树有类似之处,子空间不再相互覆盖,如图:
CELL树的磁盘访问次数比R树和R+树少,由于磁盘访问次数是影响空间索引性能的关键指标,因此大大提高了搜索性能,故CELL树是比较优秀的空间索引方法。
6.2 索引方式总结
类型 | what | 优点 | 缺点 |
---|---|---|---|
对象范围索引 | 记录每个空间实体的XY最大值最小值,检索时查询坐标范围实现索引 | 这种查询方式数据结构简单易于操作 | 但是计算效率低 |
格网索引 | 将空间划分为大小相等或不等的格网,记录每个格网包含的空间实体 | 这种方法思路简单查询速度提高 | 但格网数量不能太多,否则影响检索速度 |
四叉树空间索引 | 是对格网索引的一种改进,它对空间进行四叉树分割,使得每个子块只包含一个空间实体 | 检索速度显著提高 | 但索引的建立和维护难度较大 |
R树、R+树 | 利用空间实体的外接矩形来建立索引。思路:将多个矩形组成一个大的虚拟矩形,以此形成树状结构 | 这使得检索速度大大提高 | 但建树和维护难度很大 |
6.3 SQL Server2008
http://msdn.microsoft.com/zh-cn/library/bb964712.aspx
暂无评论内容