空间数据库 - 精品课程信息中心

Download Report

Transcript 空间数据库 - 精品课程信息中心

第三章:空间数据管理
一、前言
1.数据管理的几个阶段
 人工管理阶段
 文件系统阶段
 数据库阶段
 高级数据库阶段
1) 人工管理阶段(五十年代中期以前)
(1)没有专用的软件对数据进行管理;
(2)没有文件的概念;
(3)数据是面向应用的,不共享。
2) 文件管理阶段
(1)数据可以长期保存在文件中;
(2)由文件系统管理数据;
(3)数据共享性差,冗余度大;
(4)数据独立性差。
数据独立性的含义
(1)物理独立性:用户的应用程序不会因为物理表示和
访问技术的改变而改变。
(2)逻辑独立性:用户的应用程序与数据库的逻辑结构
是相互独立的,也就是说,数据的逻辑结构改变了,用
户程序也可以不变。
应用程序 1
应用程序 2
文件 1
存取
方法
文件 2
应用程序 3
3) 数据库阶段
特点:
(1)数据结构化是数据库与文件系统的根本区别;
(2)数据的共享性高,冗余度低,易扩展;
(3)数据独立性高;
(4)数据库系统为用户提供了方便的用户接口;
(5)数据由DBMS统一管理和控制。
—数据的安全(Security)保护
—数据的完整性(Integrity)检查
—并发(Concurrency)控制
—数据库恢复(Recovery)
数据库系统阶段
应用程序 1
数据
应用程序 2
DBMS
数据
应用程序 3
数据
数据
各阶段的比较
阶段
人工管理阶段
文件处理阶段
时间
50年代
60年代
数据共享性
无共享
共享差
数据独立性
无独立性
独立性差
数据库系统
70年代
共享好
物理独立性高
一定逻辑独立性
数据结构化
无结构化
纪录内有结构
整体结构化
整体结构化差
用数据摸型描述
4) 高级数据库阶段
• 分布式数据库
• 空间数据库
• 面向对象数据库
• 数据仓库
2. 数据文件
常用的数据文件顺序文件、索引文件、随机文件
、倒排文件。
GIS中常自定义数据文件来组织空间数据。
1)、顺序文件(Sequential File)
最简单的文件组织形式顺序文件中数据按记
录中主关键字的顺序组织。
顺序文件的记录,逻辑上是按主关键字排序
的,而在物理存储上可以有不同的方式,包括:
向量方式、链方式、块方式。
向量方式 : 逻辑结构同物理结构一致;
链方式 : 通过指针连结逻辑顺序;
块方式 : 上述两种方式的结合(块内是向量方式 ,块间是链方
式)
物理地
址
盘地址
4200
4205
4210
4215
逻辑地
址
关键字
1001
1002
1003
1004
链方式
内容
数据项
4210
1003
4200
1001
1002
1004
顺序文件的查找主要为顺序查找、折半查找等
4205
4215
2)索引文件(Index File)
存储内容包括:
1.记录本身(主文件)
2.若干索引表
这种带有索引表的文件叫索引文件。
 索引表中列出:
1.记录的关键字
2.记录在文件中的位置(地址)。
弧段数据文件
弧段号
左多边形
右多边形
1
3502
0
2
3402
0
3
1201
401
弧段坐标数据
302
弧段号
物理地址
1
74
2
126
3
214
302
弧段索引表
如已知一多边形坐标数据文件,可建立索引文件
多边形号 坐标点数
1001
x1 y1
X2 y2
x3 y3
102
….
x101 y101
x1 y1
200
65
x1 y1
x2 y2
….
x64 y64
x1 y1
2006
86
x1 y1
索引文件
多边形号
索引有序文件
物理地址
多边形号
1001
200
200
1001
2006
2006
无序
有序
物理地址
 读取记录时,只要提供记录的关键字值,系
统通过查找索引表获得记录的位置,然后取
出该记录。
索引表一般都是经过排序的,也可以是非顺
序的;可以是单级索引,也可以是多级索
引,多级索引可以提高查找速度,但占用的
存储空间较大.
3)、随机文件(Direct Access File)
随机文件又称直接文件,其存储是根据记录
关键字的值,通过某种转换方法得到一个物理
存储位置,然后把记录存储在该位置上。查找
时,通过同样的转换方法,可以直接得到所需
要的记录 。
通过HASH函数(哈希函数)
把关键字转换为地址进行存取的文件。
D= F(Key)
哈希函数
4)倒排文件(Inverted File )
 倒排文件是带有辅索引的文件,其中辅索引是按
照一些辅关键字来组织索引的(注意:索引文件
是按照记录的主关键字来构造索引的,也叫主索
引)。
 倒排文件是一种多关键字的索引文件,其中的索
引不能唯一标识记录,往往同一索引指向若干记
录。通过辅索引不能直接读取记录,而要通过主
关键字才能查到记录的位置。
 倒排文件的主要优点:
在处理多索引检索时,可以在辅检索中先完成查
询的‘交’、‘并’等逻辑运算,得到结果后再
对记录进行存取,从而提高查找速度.
土地资源文件
地段号
地貌类型
坡度
坡向
利用现状
1
缓坡
5-10
半阴
林地
2
垣面
<3
阳
农地
3
陡坡
>15
阳
牧地
4
沟道
<5
半阳
林地
5
缓坡
5-10
阴
林地
6
缓坡
5-10
半阳
林地
7
陡坡
>15
阴
牧地
8
垣面
<3
阳
农地
9
宽梁顶
<3
阳
农地
10
缓坡
5-10
半阳
林地
次关键字
地块号
次关键字
地块号
次关键字
地块号
阴
5,7
陡坡
3,7
农地
半阳
4,6,10
垣面
2.8.9
2,8
半阴
1
沟道
4
林地
1,4,5,6,10
阳
2,3,8,9
宽梁顶
9
牧地
3,7
缓坡
1,5,6,10
3、数据库(Database,简称DB)
数据库是是存储在计算机中、
按一定数据模型组织、可共享
的数据集合,这些数据用于各
种应用系统中。
应用程序1
应用程序2
应用程序3
数据库中数据的特点:
 数据是持久的
 数据是集成的
 数据是共享的
 数据按一定的数据模型组织、描述和储存
4、数据库管理系统(DBMS)
DBMS(DataBase Management System)是位
于用户与操作系统之间的一层数据管理软件,它提
供了数据库的访问接口。
DBMS的主要功能:
 数据定义功能
 数据操作功能
 数据库运行管理(恢复、并发控制、安全性、完整性)
数据库的建立和维护功能
DBMS的目的:
提供方便地、有效地存取数据库信息的环境。
DBMS在信息系统中的位置
应用开发系统
DBMS
操作系统
硬件
5、数据库系统(Database System DBS)
数据库系统是指在计算机系统中引入数据库后的
系统,包括:
数据库
数据库管理系统(及其开发工具)
应用系统
数据库管理员 Database Administrator
用户
DBS = DB + DBMS + APPLICATION + DBA + USER
最终用户
应用系统
应用开发工具
应用程序员
数
据
库
系
统
构
成
DBMS
操作系统
数据库
数据库管理员
小知识点:文件处理系统和数据库管理系统
文件处理系统
 数据定义使用特定的数据结构定义,利用文
件形式存储,称之为文件处理系统。
文件处理系统缺点:
 首先每个应用程序都必须直接访问所使用
的数据文件,应用程序完全依赖于数据文
件的存储结构,数据文件修改时应用程序
也随之修改;
 其次的是数据文件的共享程度差;
 另外缺乏集中控制也会带来一系列数据库
的安全问题。
 数据库管理系统
 数据库管理系统(Database Management
System,DBMS)是在文件处理系统的基础
上进一步发展的系统。
可以认为,DBMS在用户应用程序和数据文
件之间起到了桥梁作用。
 DBMS优点:
DBMS优点是提供了数据独立性,即应用
程序访问数据文件时,不必知道数据文件
的物理存储结构。当数据文件的存储结构
改变时,不必改变应用程序 。
小知识点:空间数据库与空间数据库管理系统
 空间数据库指的是地理信息系统在计算机
物理存储介质上存储的与应用相关的地理
空间数据的总和,一般以特定结构的文件
的形式组织在存储介质之上的。
 空间数据库管理系统则是指对物理介质上
存储的地理空间数据进行语义和逻辑上的
定义,提供必需的空间数据查询检索和存
取功能,以及能够对空间数据进行有效的
维护和更新的一套软件系统。
二、空间数据模型
传统的地理数据模型
 1)层次模型
树数据结构
描述了各类客体及客体之间的联系。
然而,层次模型限制每个客体类最多只能有
一个双亲客体类,而一个双亲客体则可有多
个子女客体类。
双亲和子女客体类之间即形成了所谓的层次
关系。
用户区
A
A
B
N1
C
a3
B
N4
a5
a1
a3
a4
a6
a3
a5
a1
a5
a6
a2
a4
N3
C a6
a2
N2
N1N4 N1N3 N3N4 N1N4 N2N4 N1N2 N2N4 N3N4 N2N3
优点:层次分明,组织有序;
缺点:数据独立性较差;难以表达多对多的关系;导
致数据冗余
2)网络模型 图数据结构
优点:能描述多对多关系
缺点:结构复杂,限制它在空间数据表达中的应用
用户区
A
N1
A
B
a3
N4
C
B
a5
a1
a1
N1
a2
N2
a3
a4
N3
a5
a6
N4
N2
a4
C a6
a2
N3
3)关系模型 表数据结构
80年代后主导数据库是基于关系模型。关系模型的
理论基础是关系理论,它通过关系运算操作数据。
优点:概念简单,结构灵活,易理解,易维护;有标
准的关系查询语言SQL支持。
缺点:不适合描述非结构特征数据
A
a3 a4 a6
B
a1 a3 a5
C
a2 a5 a6
A
N1
a3
B
N4
a5
a1
N2
a1
N1 N2
a2
N2 N3
a3
N1 N4
a4
N1 N3
a5
N2 N4
a6
N3 N4
a4
C a6
a2
N3
 关系模型中的有关概念
关系:关系是一个二维表,表的每行对应一个元组,表的每
一列对应一个域。
关键字:关系中的某一属性组,若它的值唯一地标识了一个
元组,则称该属性组为候选关键字。若一个关系中有多个
候选关键字,则选定一个为主关键字。
关系数据库:一系列关系的集合构成一个关系数据库。关系
数据库有型、值之分。
关系完整性:即指关系的正确性、相容性和有效性。它是给
定的关系模型中数据及其联系的所有制约和依存规则,用
以限定数据库状态及状态变化,从而保证数据的正确、相
容和有效。
关系模型的完整性有三类:实体的完整性、
参照完整性和用户定义的完整性
范式:关系满足某种规范化的形式称为范式。
从一个低一级范式的关系模式,通过模式
分解转换为若干个高一级关系模式集合的
过程,叫做规范化。
第一范式:关系中的每个属性是原子的、
不可分割的数据项。在关系数据库中,若
一个关系模式满足1NF,它就是合法的。
非第一范式关系表
ARCS
Polygon#
Polygon1
Polygon2
ARC#
ARCLENGTH
Arc1
100
Arc2
133
Arc3
150
Arc1
100
Arc4
166
第一范式关系表
POLYGON# ARC#
Polygon1
Arc1
ARCLENGTH
100
Polygon1
Arc2
133
Polygon1
Arc3
150
Polygon2
Arc1
100
Polygon2
Arc4
166
第二范式:是指关系在满足1NF的基础上,
每一个非主属性完全函数依赖于该关系的
关键字。即当一个非关键字字段部分地函
数依赖于关键字时,就违反了2NF。
非第二范式关系表
分解为第二范式
的关系表
*学生学号
*学生学号
*学生学号
学生姓名
学生姓名
*课程名称
性别
性别
成绩
籍贯
籍贯
课程名称
成绩
 第三范式:指关系在满足第二范式的基础
上,其非关键字属性(即非主属性)既非
函数依赖,也不传递依赖于关键字,即属
于3NF的关系,其非关键字属性之间都是
独立的,不存在函数依赖关系
非第三范式关系中
的传递依赖
*
分解成两个第三范
式关系
生学号
学生姓名
* 生学号
性别
学生姓名
出生日期
性别
籍贯
出生日期
学生所在系
籍贯
系所在地点
学生所在系
*学生所在系
系所在地点
传统数据模型存在的主要问题(黄杏元,地
理信息系统概论)
1.以记录为基础的结构不能很好的面向用户和应用
2.不能以自然的方式表示客体之间的联系
3.语义贫乏
4.数据类型太少,难以满足应用需要
面向对象的地理数据模型(自学)
1、概念
a.基本思想:面向对象的基本思想是通过
对问题领域进行自然分割,用更接近人类
通常思维的方式建立问题领域的模型,并
进行结构模拟和行为模拟,从而使设计出
的软件能尽可能地直接表现出问题的求解
过程。
b.一些术语的基本概念:
 对象
Polygon-object
对象标识
arc-object
对象状态
Function(perimeter)
对象功能
私有消息
公有消息
类
 消息
 方法
2.面向对象数据模型的四种核心技术
 分类
 概括
空间对象类
Is a
多边形对象类
弧段对象类
 聚集
图层对象类
 联合
Is-part-of
多边形对象类
弧段对象类
3、面向对象的地理数据模型和数据结构
a.基本含义:(见课本)
面向对象的地理模型的核心是对复杂对
象的模拟和操作
b.复杂对象定义及其特点:
面向对象的地理模型的核心是对复杂对
象的模拟和操作
定义:所谓复杂对象是指具有复杂结构
和操作的对象。复杂对象可以由多种关系
聚合抽象而成,或由不同类型的对象构成,
或具有复杂的嵌套关系等。
复杂对象的特点:
 一个复杂对象由多个成员对象构成,每个
成员对象又可参与其他对象的构成
 具有多种数据结构
 一个复杂对象的不同部分可由不同的数据
模型所支持。
c.面向对象地理模型的特点
 可充分利用现有数据模型的优点
 具有可扩充性
 可以模拟和操纵复杂对象
d.GIS中面向对象的数据模型和数据结构
在GIS的面向对象的数据结构中,通常可以把
空间数据抽象为点、线、面三种简单的地物类型,
作为三种简单对象:
 点状地物
 线状地物
 面状地物
一个地理实体可以由这三种简单对象之一构成,复
杂的地理实体可以由多种简单对象构成,甚至可
以由其他复杂对象构成
工作区1
工作区2
图层1
图层2
地物1
地物2
点状地物
结点
结点坐标
工作区3
工作区n
图层3
图层n
地物n
地物3
线状地物
弧段
面状地物
标识码
始点
终点
注记
左面
标识码
属性表
属性表
右面
标识码
三、 空间数据管理中的数据库技术
(一)、关系数据库技术
1970年IBM公司的E.F.Codd提出了关系模型理论,
奠定了关系数据库的理论基础;
20世纪70年代末,IBM公司在IBM370系列机上成功
实现了原型系统System R;
20世纪80年代以来,关系数据库成为数据库主流。
1、关系数据模型的数据结构
关系数据库系统是建立在关系模型上的数
据库系统;
在关系模型中,现实世界中的实体以及实
体间的各种联系均用关系表示;
关系数据库是表的集合。
关系数据模型的数据结构为:
 关系模式:关系名(属性1,属性2….属性n)
 关系: 通常说的表;
 元组: 关系表中的一行;
 属性: 关系表中的一列;
 主码: 能唯一确定元组的某属性组;
 域:
属性的取值范围;
 分量: 元组中的一个属性值
关
系
地块号
面积km2 使用类型 植被
1001
0.3
绿化
草地
1002
0.5
小区
树木
1003
0.8
绿化
灌木
属性
关系模式:土地利用(地块号、面积、使用类型、植被)
元
组
2、关系的基本性质
1)列是同质的(Homogeneous),即每一列中的
分量是同一类型的数据,来自同一个域。
3)列的顺序无所谓,即列的次序可以任意交换。
3)任意两个元组不能完全相同。
4)行的顺序无所谓,即行的次序可以任意交换。
5)分量必须取原子值,即每一个分量都必须是不可
分的数据项。
(二)、 SQL查询语言(结构化查询语言)
数据库的核心应用是数据库的查询,查询语言从数
据库中请求获取信息的语言, 是过程化的查询语言。
SQL(Structure Query Language)是数据库查询语
言,1986年由美国国家标准化协会(ANSI American
National Standards Institute),国际标准化组织(
ISO International Organization for Standardization)批
准作为关系数据库查询标准语言。
1、 SQL查询语言概述
1) SQL查询语言的发展




SQL-86、
SQL-89、
SQL-92(SQL2)、
SQL-99(SQL3)
SQL数据库查询语言已是国际标准,大部分DBMS
产品都支持SQL,成为操作数据库的标准语言。
它对其它领域产生很大影响。
它是综合的、通用的、功能强、简单易学的语言。
2) SQL查询语言的主要功能
SQL提供的主要功能包括:
• 数据的定义;
• 数据的操作;
• 数据的控制;
• 数据的查询。
SELECT 的简单查询功能是对一个数据库表进行查
询,以便选择表中某些列或某些行。
2、SQL查询语言中核心——SELECT语句
SQL查询语言中数据的查询动词是SELECT
1) SELECT 的简单查询功能
当数据库查询只涉及到一张表时,查询的目的是选
择符合条件的某些列或行。
SELECT语句的一般形式为:
目标列表达式
SELECT
选择形成的结果表
ALL
*
所查询的表
DISTINCT
选择表
FROM 基表名
查询条件
WHERE 条件表达式
[GROUP BY 列名1 [HAVING条件表达式]]
ORDER BY 列名2
ASC
DESC
对查询结果按《列名》
对查询结果《列名》
排序
分组
根据WHERE 子句的条件表达式,从FROM子句的表中,找出
满足条件的元组,按SELECT子句的目标列表达式选出元组中
的属性,形成结果表。
2)Where 子句
• Where 子句中写条件表达式
• Where 子句中可嵌套select 语句
3)group by(对元组进行分组)

GROUP子句,则将结果按< 列名1 >的值进行
分组,该属性列值相等的元组为一组,占结果
表的一条记录。
 GROUP子句可带HAVING短语,输出指定条件
的组。
 having子句作用于组,从中选择满足条件的组,
having子句中可使用聚集函数
4)Order By子句(对查询结果排序)
将结果按< 列名2 >的值进行升序或降序排序
升序ASC(缺省)、降序DESC
对于空值,若升序,含空值的元组最先显示;
若降序,含空值的元组最后显示.
3、SQL查询中的聚合函数
聚合函数把一列中的值进行聚合运算,然后返回
值的函数。
五个预定义的聚合函数为:
● 平均值:Avg(字段名)
● 总和: Sum(字段名)
● 最小值:Min(字段名)
● 最大值:Max(字段名)
● 计数: Count(字段名) 如Count(country)
4、 GIS中SQL查询---例1
Select
from
where
GIS中SQL查询例2
查世界地图属性表中有多少国家?总人口?总面积?
5、SQL 的多表查询功能
1)多表的连接查询
对数据库进行查询涉及到几张表时,称连接查询。
多表的连接查询:
表格的连接查询其数据需要从多个表中获取,它实
际上是将具有公共字段的表合并成一个表,再进行
SELECT 查询。
具体的说,在SELECT语句中基表名多于一个;
SELECT语句条件表达式中要添加匹配不同表的记
录的语句。
多表的连接查询例
多表连接查询:
• 在SELECT语句中基表名多于一个;
• SELECT语句条件表达式中要添加匹配不同表的记
录的语句。
如查出美国地图数据中总人口大于1000万 且洲府人
口大于20万的洲 。
SELECT
FROM
WHERE
*
States, Statecap
States.state = Statecap .State
States.pop_1990>10000000
Statecap.pop_1990 >200000
and
and
2) SQL 的嵌套查询功能
SQL的嵌套查询是指在SQL查询语句的where功能
中嵌入另一个SELECT查询子语句。
当进行SQL的嵌套查询时,自下而上 (由里向外)的
进行,即通常首先进行SELECT的子查询,而后再作
进一步的查询。这种层层嵌套方式,真是SQL“结构
化”的含义。
嵌套查询功能例
例 Mapinfo中的嵌套查询
求世界地图中同伊拉克处于同一州的国家
SELECT country,continent
FROM world
WHERE continent = (select continent from world
where country=“Iraq”)
首先求出伊拉克处于那个州;
之后求出同伊拉克处于同一州的国家
6、非标准SQL查询
非标准SQL查询主要指对空间数据的查询.
在Mapinfo中表示在SELECT语句中增加了地理
函数和地理运算符.
例 Mapinfo中的嵌套查询
求美国“I 10”号高速公路经过哪几个洲?
• 先美国高速公路中找出 “I10”号高速公路;
• 再找“I 10”号高速公路经过哪几个洲。
地理运算符
Where States.obj contains Us_Hiway.obj and
(States.obj Intersect (Select obj from Us_Hiway where
us_Hiway.highway= “I 10”))
将两表建立联系
实现求交
从选择出Us_Hiway中选出I 10
(三)、面向对象的数据库管理系统
面向对象的数据库管理系统被称为第三代数据库
系统,它吸取了面向对象程序设计概念和思想。
它支持面向对象的数据模型和传统数据库系统所
有的数据库特征。
它自1989年出现曾很活跃,试图成为标准,但未
成气候。
1、面向对象的数据库管理系统的特点
• 能完整的描述现实世界的数据结构,表达数据间的
嵌套、递归。
• 利用面向对象的技术的封装性,继承性,从提高了
软件的可重用性。
2、面向对象数据库系统的实现
 以关系数据库和SQL为基础的扩展关系型
例如美国加州伯克利分校的POSRGRES就是以INGRES关
系数据库系统为基础,扩展了抽象数据类型
ADT(Abstract Data Type),具有面向对象的特性。
 以面向对象的程序设计语言为基础, 支持面向对象模
型。 例如美国Ontologic公司的Ontos是以面向对象
程序设计语言C++为基础的。
 建立新的面向对象数据库系统,支持面向对象数据模
型。 例如法国O2 Technology 公司的O2。
(四)、对象---关系数据库技术
对象---关系数据库是介于关系数据库系统和对
象数据库管理系统中间,由关系数据库系统和面向
对象的数据库管理系统结合而成的数据库管理系统。
1、对象---关系数据库的优点
对象---关系数据库除了具有关系数据库的特点外,
将其进行扩充,使其能直接存储和管理空间几何数
据。表现在:
 允许用户扩充基本数据类型;
 支持SQL查询;
 支持类、数据、函数的继承;
 提供功能强大的同其它对象---关系集成的规则系
统。
2、对象---关系数据库的实现方法
 开发新的对象---关系数据库系统,不现实。
 在现有关系数据库系统基础上,进行扩展:
 对关系数据库系统核心扩充,增加对象特性;
 不改变关系数据库系统核心,而是在关系数据库
系统外提供对象---关系应用编程接口,实现到关
系数据库系统的映象查询。
 将关系数据库系统同其它对象---关系数据库系统
或对象---关系型引擎连接。
目前著名的对象---关系数据库系统
如ORACLE 8.0;
INFORMIX 9.0
(五)、网络数据库技术
1、数据库系统的三种主要结构模式
 单用户结构库式
 客户/服务器(C/S)结构模式
 WEB(B/S)结构模式
1)单用户结构库式
应用程序、DBMS、数据、都在一台机器上,有一
个用户独占。
2)客户/服务器(C/S)结构模式
将数据库系统分成前台的客户应用程序和后台的服
务部分,其间通过网络连接,由客户机和服务器共同
完成处理任务。
客户/服务器结构数据库管理系统的核心是客户应用
程序只通过SQL向服务器发服务请求,服务器完成任
务后,将结果发回给客户应用程序,服务器的工作对
客户应用程序是透明的。
服务器的任务
为多个用户管理和维护一个独立的数据库;
管理并处理客户的请求;
管理数据和系统的安全等。
客户的任务
提供用户界面;
建立同服务器的连接;
向服务器提交和接受请求;
数据的输入输出及验证等。
客户/服务器结构
客户机(用户界面、应用程序)
数据库服务器
数据库
数据库
3)WEB(B/S)数据库结构模式
WEB(B/S)数据库结构模式是构成WEB的技
术基础,是WEB技术和数据库技术相结合的新技
术。它实现开发环境和应用环境的分离,用户端
用统一的浏览器代替客户软件。
用户通过浏览器的表单(FORM)向WEB服务
器发送HTTP 协议方式的请求, WEB服务器收
到请求后向数据库服务器发请求,数据库服务器
执行接收的请求,并将结果返回WEB服务器。
WEB(B/S)数据库结构
HTTP
协议请求
数据请求
数据库
服务器
WEB
服务器
浏览器
返回
浏览器
返回数据
结果
2、网络数据库技术(略)
网络信息系统中访问数据库技术
1)Microsoft提出了一系列访问数据库接口
ODBC(Open Database Connectivity,开放数据
库连接)技术
2)Java数据库访问技术
JDBC(Java Database Connectivity,Java数据库
连接),作为Java语言的数据库访问API
四、空间数据库及其管理
空间数据库的理论和方法是GIS技术的核心。
空间数据库模型是数据库中对数据的逻辑组织形式的
描述。
(一)、传统DBMS管理和空间数据管理
1、从数据管理的角度看GIS中数据的特点
 数据量大,常要作查询,因此必需注意提高查询效
率,如建立索引等;
 数据类型和关系复杂 常要记录拓扑关系;
 GIS数据常具有非结构化特征,如描述线面状地物
的长度不等;数据要嵌套;一个对象可能包含多个对
象。
2、关系模型描述空间数据存在的问题
缺乏构造复杂对象的能力
以记录为单位的数据模型不能很好的面向用户,不能描述嵌
套和递归等复杂关系。
数据类型少 不支持抽象数据类型
如不能定义几何数据类型(点,线,面)和空间操作算子(
相交,包含等),无法完成地理意义上的分析查询;
缺乏语义表达能力,即语义贫乏
它表达实体和 实体间关系只能在表内,,或通过公共值的跨
表连接, 实现效率低,不利于建立数据的概念模型。
表形式不适用表示图形数据
图形数据涉及的坐标、属性、拓朴关系用表格表示使问题显
得复杂化。
(二)、空间数据管理系统的模式的类型
1、全文件管理系统
将属性数据和空间数据均放
在文件系统中进行管理。
程序依赖于数据文件的存储
结构,数据文件修改时,应
用程序也随之改变。
GIS应用1
GIS应用2
空间、属性
数据文件1
空间、属性
数据文件2
空间、属性
数据文件3
全文件管理系统的优缺点
优点:
(1)厂商可根据自己要求定义文件格式,管理数据;
(2) 有利于存储非结构化不定长数据。
缺点:它具有文件系统的缺点
(1)不利于数据查找,如系统开发者要编写程序实现
数据的更新、查询;
(2) 数据共享性等差。
多个程序共享一数据文件时,文件的修改,需得到所
有应用的许可。不能达到真正的共享,即数据项、记
录项的共享。
2、文件和关系数据库混合系统(Hybrid model
文件和关系数据库混合系统是传统GIS所用的方式。
如arcinfo ,mapinfo等.
系统中,图形用数据文件存储,属性用关系数据库表
存储。两者通过标识符相联结,
这种方式实际上不能建立真正意义上的空间数据库
OID
图形数据
属性数据
1)文件和关系数据库混合系统的模式
文件和关系数据库混合应用
GIS应用软件
Arc/Info
图形用户界面
ArcEdit
属性用户界面
Tables
图形处理
系统
数据库管理
系统
ID
图形数据
文件库
属性数据库
2)文件和关系数据库混合系统的优缺点
优点:
GIS 可通过DBMS提供的高级编程语言的接口,
直接操纵属性数据,查询属性数据库,并在GIS的
用户界面下,显示查询结果。
在ODBC(Open DataBase Connectivity,开放式
数据库互连)推出后,GIS软件商只需开发GIS与
ODBC的接口软件,就可将属性数据与任何一个支
持ODBC的RDBMS连接。这样用户可在一个界面
下处理图形和属性数据。
缺点:
(1)属性数据和图形数据通过ID联系起来,使查
询运算,模型操作运算速度慢;
(2) 数据分布和共享困难;
(3)属性数据和图形数据分开存储,数据的安全
性、一致性、完整性、并发控制以及数据损坏后的
恢复方面缺少基本的功能;
(4)缺乏表示空间对象及其关系的能力。
目前,空间数据管理正在逐步走出文件管理模
式
3、全关系型数据库系统管理
图形数据和属性数据都用现有的关系数据
库管理系统管理,管理数据库管理系统不作任
何扩展,由GIS软件商在此基础上进行开发
1)全关系型数据库系统两种模式:
基于关系模型的方式,将图形数据按关系数据
模型组织。
将图形数据的变长部分处理成Binary Block字
段(多媒体或变长文本)。
(1)基于关系模型组织图形数据
E
多边形编号
边号
P1
P1
P1
P1
a
b
c
d
边长
P1
P2
N
边号
起结点号
终结点号
a
b
…
1
2
7
1
C
结点号
x
y
1
2
…
..
…
…
…
要找出组成多边形的采样点
坐标,涉及多个关系表,作
多次连接投影运算。
Business Table
Feature-ID
Column 1
Column 2
Geometry ID
101
1
102
2
103
3
…
…
Geometry Table
Geometry ID
ETYPE
X Coordinate
Y Coordinate
1
3
10.00
10.00
1
3
10.00
15.00
1
3
15.00
15.00
1
3
15.00
10.00
1
3
10.00
10.00
2
3
100.00
100.00
2
3
100.00
150.00
2
3
150.00
150.00
2
3
150.00
100.00
2
3
100.00
100.00
2
3
120.00
120.00
…
…
…
…
(2) 图形数据和属性数据统一存储在通用关系数据库
中,也就是说将图形文件转成关系存放在目前大部分
关系型数据库提供的二进制块中(即将图形数据的变
长部分处理成Binary二进制块Block字段) 。
用户界面
GIS
空间数据访问接口
数据库访问接口
RDBMS
空间数据库
Geometry Table
Business Table
Feature- Column
ID
1
Column
2
Geometr
y ID
101
1
102
2
103
3
…
…
Geometry ID
Binary
Geometry
1
(x,y,…,x,y)
2
(x,y,…,x,y)
3
(x,y,…,x,y)
…
…
Spatial Index Table
Geometry ID
Index Key
1
2
3
…
…
2)全关系型数据库系统管理的优缺点
优点:
(1)在全关系型数据库中加入了二进制数据块形式
省去大量关系连接操作,可提高查询速度;
(2)便于数据的维护;
缺点:
(1)不定长记录造成存储效率的下降;
(2)实现SQL查询要附加接口;因此它只适用于功
能简单的GIS。
4、对象---关系型数据库系统(Extended Model)
采用通用关系数据库管理系统效率低,面向对象
型空间数据库管理系统又不够成熟,随着空间信息
系统的发展,许多数据库管理系统的软件商纷纷对
关系数据库进行扩充,使之能直接存储非结构化的
空间数据,形成对象---关系型数据库GIS系统。
 对象—关系型空间数据库是在标准的
RDBMS上加了一层空间数据管理专用模块
如Oracle在其数据库中加入了oralce
Spatial 组件,以支持空间数据;Informix
为用户定义数据类型,提供了Data Blade
插件。定义了操作点、线、面等空间对象
的函数,解决了空间数据的变长记录管理。
DBMS软件商在RDBMS中进行扩展,
使之能直接存储和管理非结构化的
空间数据,如Informix 和Oracle等
都推出了空间数据管理的专用模块,
定义了操纵点、线、面、圆等空间
对象的API函数。
主要解决空间数据的变长记录
的管理,效率比二进制块的管理高
得多,但仍没有解决对象的嵌套问
题,空间数据结构不能由用户定义,
用户不能根据GIS要求再定义,
使用上受一定限制。
GIS应用
商用DBMS
空间数据管理的
专用模块
空间和属性
数据库
1)对象---关系型空间数据库优点
 解决了空间数据的变长记录管理,使数据管理效率
大大提高;
 空间和属性之间联结有空间数据管理模块解决,不
仅具有操作关系数据的函数,还具有操作图形的API
函数;
 对象---关系型空间数据库是在标准的关系数据库上
加一层空间数据管理模块;用该层功能将地理结构查
询语言转化成标准的SQL查询,空间数据查询速度快
。
2)对象---关系型空间数据库缺点
空间数据对象还不能有用户任意定义,用户使用受
一定限制。如定义的空间函数支持的对象不带拓扑
关系,用户不能定义带拓扑关系的数据模型。
5、面向对象型数据库系统
面向对象型空间数据库管理系统最适合空间数据
的表达和管理。
1)面向对象型数据库系统的优点
支持变长记录,还支持对象的嵌套,信息的继承
和聚集。
面向对象数据库管理系统允许定义合适的数据结
构和数据操作。
2)面向对象型数据库系统的缺点
 不支持SQL语言,在通用性上受局限。
 面向对象型空间数据库管理系统还不够成熟,价
格又昂贵,目前在GIS领域还不通用。
6、空间数据的查询---扩展SQL
扩展SQL是实现空间数据查询的一种方式,
为了实现对空间数据的查询。
它通过用户自定义类型和相关函数,为空
间数据提供高层次的抽象。如通过定义
多边形和相关函数,帮助判断多边形之
间是否有公共边界等。
OpenGIS定义的有关扩展SQL的一些操作
基本函数
SpatialReference 基本坐标系
Envelope 最小外接矩形
Export
其它形式几何体
IsEmpty 几何体是空集
IsSimple 简单几何体
Boundary 几何体边界
拓扑/集合运算符
Equal 几何体相等
Disjoint 几何体内部和边界均不相交
Intersect 几何体不相交
Touch
几何体边界相交相邻又不相交
Cross
一条线和面的内部相交
Within
几何体内部不和另一几何体外部相交
Contains 几何体包含另一几何体
Overlap 两个几何体内部有非空交集
OpenGIS定义的有关扩展SQL的一些操作(续)
空间分析
Distance 两个几何体间最短距离
Buffer几何体的距离小于或等于指定几何体的点集合
ConvexHull 几何体的最小闭包
Intersection 两个几何体的交集构成的几何体
Union 两个几何体的并集构成的几何体
Difference 几何体与给定几何体不安相交的部分
SymmDiff 两个几何体同对方互不相交
例1、查出中国的邻国有哪些?
Select A1 Name As “中国的邻国“
From Country A1, Country A2
Where Touch (A1.Shape,A2. Shape)=1 AND A2=“中
国“
其中谓词Touch是OGIS标准定义的拓扑谓词,用来检查
两个几何体边界相邻而不相交。
例2、查出长江流经中国的哪些省?
Select R Name ,C Name
From River R, Country C
Where Cross(R.Shape,C. Shape)=1
其中谓词Cross 是OGIS标准定义的拓扑谓词,用来检查
一条线和多边形是否相交。
五、 空间数据的分层和空间数据索引机制
1、 空间数据的分层
1)空间数据分层的方法
按专题分层;
按时间序列分层;
按地面垂直高度。
2)空间数据按专题分层例
森林分布图
行政区图
水系图
图层1
图层2
公路图
图层3
树种分布图
图层n
2.空间索引机制
 1).定义:空间索引就是指依据空间对象
的位置和形状或空间对象之间的某种空间
关系按一定的顺序排列的一种数据结构,
其中包含空间对象的概要信息,如对象的
标识、外接矩形及指向空间对象实体的指
针。
作为一种辅助性的空间数据结构,空间索
引介于空间操作算法和空间对象之间,它
通过筛选作用,大量与特定空间操作无关
的空间对象被排除,从而提高空间操作的
速度和效率。空间索引的性能的优劣直接
影响空间数据库和地理信息系统的整体性
能,它是空间数据库和地理信息系统的一
项关键技术。
 常见大空间索引一般是自顶向下、逐级划
分空间的各种数据结构空间索引,比较有
代表性的包括BSP树、R树、R+树和
CELL树等。此外,结构较为简单的格网
型空间索引有着广泛的应用。
2)索引类型
a. 格网型空间索引 :
基本思想是将研究区域用横竖线条划分
大小相等和不等的格网,记录每一个格网
所包含的空间实体。当用户进行空间查询
时,首先计算出用户查询对象所在格网,
然后再在该网格中快速查询所选空间实体,
这样一来就大大地加速了空间索引的查询
速度。
空间属性表(Attribute Table,or Business Table)描述要素
的一般信息,如湖泊的深度,空间索引表(Spatial Table)描
述要素所在格网的信息,要素描述表(Spatial Table)描述要
素的点数,范围等信息,三张表通过FID(Feature ID)关联
b)基于四叉树的格网索引
 四叉树有两种:线形四叉树和层次四叉树
 对于线形四叉树而言,先采用MORTON编
码(peano键),然后根据空间对象覆盖
的范围进行四叉树分割,如图,空间对象E,
它的最大最小范围,涉及到由叶结点0开始
的4*4个结点,所以索引表
举例1
5
7E
13
15 G
B
4F
6
12
14
1A
3
9
11
0
2D
8
10
C
Peano 边长
键集
0
4
空间对
象
E
0
2
D
1
1
A
4
1
F
8
2
C
15
1
B、G
举例2
B
A 0
1
4
5
16 17 20 21
2
3
6
7
18 19 22 23
8
9
12 13 24 25 28 29
10 11 14 15 26 27 30 31
32 33 36 37 48 49 52 53
C 34 35 38 39 50 51 54 55
40 41 44 45 56 57 60 61
42 43 46 47 58 59 62 63
D
空间索引
空间对象
代码
A
3
B
13
B
15
B
24-27
B
37
B
48
C
35
C
40-42
D
61
5
7E
13
15 G
B
4F
6
12
14
1A
3
9
11
0
2D
8
10
C
0
0 D
4
1 A
4
E
8 C
F
12
15 GB
C)BSP树空间索引
BSP树是一种二叉树,它将空间逐级进
行一分为二的划分。BSP树能很好地与
空间数据库中空间对象的分布情况相适
应,但对一般情况而言,BSP树深度较
大,对各种操作均有不利影响。
BSP树
d)R树和R+树
R树根据地物的最小外包矩形建立,可以直
接对空间中占据一定范围的空间对象进行索
引。
R树
 由于R树兄弟结点对应的空间区域可以重
叠,因此,R树可以较容易地进行插入和
删除操作;但正因为区域之间有重叠,空
间索引可能要对多条路径进行搜索后才能
得到最后的结果,因此,其空间搜索的效
率较低。
正是这个原因促使了R+树的产生。
在R+树中,兄弟结点对应的空间区域没有
重叠,而没有重叠的区域划分可以使空间
索引搜索的速度大大提高;但由于在插入
和删除空间对象时要保证兄弟结点对应的
空间区域不重叠,而使插入和删除操作的
效率降低。
R+树
E)CELL树
 CELL树 :考虑到R树和R+在插入、删除和空间
搜索效率两方面难于兼顾,CELL树应运而生。它
在空间划分时不再采用矩形作为划分的基本单位,
而是采用凸多边形来作为划分的基本单位,具体
划分方法与BSP树有类似之处,子空间不再相互
覆盖。CELL树的磁盘访问次数比R树和R+树少,
由于磁盘访问次数是影响空间索引性能的关键指
标,故CELL树是比较优秀的空间索引方法 。
CELL树
采用标准DBMS存储空间数据的主要问题
1)在GIS中,空间数据记录是变长的,而一般数据库
要求记录为固定长度。另外,在存储和维护空间数据
拓扑关系方面,DBMS也存在着严重的缺陷。
2)DBMS一般都难以实现对空间数据的关联、连通、
包含、叠加等基本操作。
3)GIS需要一些复杂的图形功能,一般的DBMS不能支
持。
4)地理信息是复杂的,单个地理实体的表达需要多个
文件、多条记录、或许包括大地网、特征坐标、拓扑
关系、空间特征量测值、属性数据的关键字以及非空
间专题属性等,一般的DBMS也难以支持。
5)具有高度内部联系的GIS数据记录需要更复杂的安
全性维护系统,否则一条记录的改变就会使其他数据
文件产生错误。一般的DBMS都难以保证这些。
GIS数据管理方法主要4种类型
1)对不同的应用模型开发独立的数据管理服务,这是一种基
于文件管理的处理方法。
2)在商业化的DBMS基础上开发附加系统。开发一个附加软
件用于存储和管理空间数据和空间分析,使用DBMS管理属
性数据。
3)使用现有的DBMS,通常是以DBMS为核心,对系统的功
能进行必要扩充,空间数据和属性数据在同一个DBMS管理
之下。需要增加足够数量的软件和功能来提供空间功能和图
形显示功能。
4)重新设计一个具有空间数据和属性数据管理和分析功能的
数据库系统。
关于空间数据管理小结
图幅1
DRG
图幅2
...
图幅1
地
DEM
理
图幅1
空
间
DOM
信
息
成
DLG
数
库
图幅2
...
图幅1
果
据
图幅2
...
图幅2
...
图幅1
TD
图幅2
...
图幅1
MD
图幅2
...
光
盘
等高线
或
道路
磁
水系
带
境界
居民地
其他要素
或
磁
盘
图幅1
DRG
图幅2
...
图幅1
地
DEM
理
图幅1
空
间
DOM
信
息
历
DLG
数
库
图幅2
...
图幅1
史
据
图幅2
...
图幅2
...
图幅1
TD
图幅2
...
图幅1
MD
图幅2
...
光
盘
等高线
或
道路
磁
水系
带
境界
居民地
其他要素
或
磁
盘