1.基本概念
1.1 数据库
定义:是长期存储在计算机内的、有组织的、可共享的数据集合,是存放数据的仓库。
1.2 空间数据库
定义:是描述、存储和处理空间数据及其属性数据的数据库。
1.3 空间数据库的三大要素
空间数据类型、空间索引、空间分析。
1.4 空间数据库的特性
(1)综合抽象特征(描述现实世界,须经过抽象处理)
(2)非结构化特征(属性数据是定长的,是结构化的,而空间坐标和空间关系是变长结构)
(3)分类编码特征(数据分类分级编码)
(4)复杂性与多样性(数据量大、类型不一致等)
1.5 空间数据库的作用
(1)空间数据处理与更新
(2)海量数据存储与管理
(3)空间信息交换与共享
(4)空间分析与决策
2.空间数据模型
2.1 数据模型
定义:数据的结构或模式,或文件的存储。
优点:
(1)属性分析
(2)基于多样化平台上的共享数据再利用
(3)组织间的信息交换
(4)新环境下的数据转换
2.2 场/栅格数据模型
操作:局部操作Local operation、聚焦操作Focal operation、区域操作Zonal operation、全局操作Global operation
2.3 对象/矢量数据模型(点线面)
空间属性:印迹Footprint、位置Address、纬度Latitude、经度Longitude
非空间属性:Build ID、Year
2.4 九交模型Nine-Intersection Model
定义:利用3*3的布尔矩阵去描述空间对象关系的模型。(can be arranged as a 3 by 3 boolean matrix)
3.空间查询语言
3.1 空间查询
定义:利用空间索引机制,从数据库中找出符合该条件的空间数据。包括几何查询、属性查询、时态查询。
3.2 空间查询的特征
(1)回答用户的相关问题
(2)不改变空间数据库数据
(3)不产生新的空间实体和数据
3.3 空间数据库的内容
定位查询、关系查询、属性查询。
3.4 查询语言
定义:是在查询中用来描述哪些数据是我们感兴趣的内容的一种语言形式。
3.5 SQL基础
定义:SQL最早是由IBM开发的一种商用语言,目前已成为关系数据库的标准查询语言,被IBM DB2, Oracle, MS SQL Server, Sybase 等数据库系统广泛的支持。SQL是一种声明性语言,即用户只需要描述需要的结果即可,而不需要描述获得结果的过程。它至少由两部分组成:
(1)数据定义语言(DDL, data definition language):用于创建、删除和修改数据库中的表; (2)数据操纵语言(DML, data modification language): 用于查询、删除和修改DDL定义好的表中的数据。
3.6 SQL查询的基本语法
SELECT columns-names
FROM relations
WHERE tuple-constraint
当定义了表并录入数据以后,即可采用SQL语句进行查询。
4.基于PostGIS的空间查询举例
4.1 基于地址导入数据
(1) 创建表
drop table if exists uscities;
create table uscities(
gid serial primary key,
name varchar(100),
state varchar(100),
latitude numeric,
longitude numeric);
(2)通过copy语句导入uscities数据
copy uscities from 'D:\learning\sdb\Lab2\Lab2\usdata\uscity.txt' delimiter '#';
注释:delimiter是分隔符。
(3)增加几何属性列
create extension postgis;
select AddGeometryColumn('uscities', 'geom', 0, 'POINT', 2);
(4)根据每个城市的longitude和latitude,更新geom属性
update uscities set geom = ST_Point(longitude, latitude);
update uscities set geom = st_geomfromtext(ST_AsText(geom),4326);
注释:ST_point是文本类型,需转化成几何对象,把geom作为文本,更新;4326是wgs84坐标的代码。
(5)在QGIS中查看uscities
select * from uscities
(6)查询结果如下