地理空间数据库

2019-2020 春夏学期

课程公告板

课程简介

课程介绍地理空间数据库的空间数据类型、空间分析操作和空间索引,帮助学生理解OGC的简单要素访问规范、空间数据库的基本概念和基本设计方法,通过几何对象模型和空间网络模型在PostgreSQL/PostGIS/pgRouting上的应用实践,掌握地理信息数据建库、空间关联分析、最短路径查询、空间事件触发器等地理信息应用开发的基本技术,同时熟悉基于位置服务应用的数据库设计流程,掌握地理信息开发的技术和方法。课程将紧跟地理空间数据应用的最新发展趋势,通过引入基于位置服务等应用,例如打车出行服务、地铁换乘服务、路径导航服务等,让学生在实践中体验地理信息科学在日常生活中的基本应用,理解并关注地理信息技术对社会、经济、安全等诸多方面的影响。

主讲教师:

陶煜波

计算机学院CAD&CG国家重点实验室

对课程内容和作业有任何建议或意见,欢迎邮件联系(taoyubo[at]cad.zju.edu.cn)

上课时间与地点:

钉钉群

周二上午 9:50-12:15

课程考核方式:

作业(8个,每两周一个)占最终考评的40%

测试(8个,每个测试有两次答题机会,系统自动评分,取最高分)占最终考评的10%

期末闭卷考试,可带一张A4纸,占最终考评的50%

平时成绩 = Min((作业成绩 + 测试成绩) / 5,100)

最终成绩 = (平时成绩 + 期末成绩) / 2

课程安排和课件下载

周次 日期 课堂内容(部分课件内容来自于网上课程) 阅读材料 课后作业与测试
春学期第1周 2.25 地理空间数据库概论 PDF
关系模型与关系代数 PDF
Jupyter Notebook安装说明 Word
课堂练习1 Python
数据库系统概念 1.1-1.14,2.1-2.7,6.1
空间数据库管理系统概论 1.1-1.6
大数据的存储渊源 PDF
大数据含义解释:
空间计算 PDF
The Era of Big Spatial Data PDF
地理学碰上“大数据”:热反应与冷思考 Web
国家地理信息产业发展规划(2014-2020年) Web
GIS:揭开你神秘的面纱 Web
作业1 下载
测试1 地理空间数据库概论与关系代数
春学期第2周 3.3 关系数据库标准语言SQL PDF
PostgreSQL安装说明 Word
课堂练习2 SQL
数据库系统概念 3.1-3.10,4.1,4.4
W3C School SQL
2017年数据库技术盘点 Web
测试2 关系数据库标准语言
春学期第3周 3.10 几何对象模型与查询 PDF
课堂练习3 PostGIS
空间数据库管理系统概论 3.1,3.2
Simple Feature Access Specification Common Architecture SQL option
Chapter 3 Spatial Query Languages PDF
MOOC Module 2 Spatial Query Languages Video
作业2 下载
测试3 几何对象模型与查询
春学期第4周 3.17 几何对象模型与查询 PDF
课堂练习4 QGIS和OpenStreetMap
空间数据库管理系统概论 4.1-4.3
ArcGIS SQL空间函数 空间关系(9交模型)
PostGIS 空间函数 Cheatsheet
Openstreetmap Case Study Video
春学期第5周 3.24 数据库设计与空间扩展E/R图 PDF
课堂练习5 空间数据库设计
数据库系统概念 7.1-7.10
空间数据库管理系统概论 5.1-5.4
Simple Feature Access Specification SQL option
作业3 下载
测试4 空间数据库设计
春学期第6周 3.31 关系数据库设计理论 PDF
数据库系统概念 8.1-8.9
春学期第7周 4.7 空间存储与索引 PDF
课堂练习6 Index
数据库系统概念 10.1-10.6,11.1-11.10
Spatial Databases: A Tour Chapter 4
空间数据库管理系统概论 6.1-6.6
MySQL索引背后的数据结构及算法原理 Web
内存数据库中的索引技术 Web
作业4 下载
测试5 空间索引与查询处理
春学期第8周 4.14 空间存储与索引 PDF PostGIS中GiST-based R-Tree spatial indexes Web
超酷算法:用四叉树和希尔伯特曲线做空间索引 Web
基于Solr的空间搜索 Web
作业5 下载
夏学期第1周 4.21 查询处理与优化 PDF (自学)
空间查询处理与优化 PDF
课堂练习7 Optimization
数据库系统概念 12.1-12.7,13.1-13.4
空间数据库管理系统概论 7.1-7.5
Merge Join vs. Hash Join vs. Nested Loop比较分析验证 Web
An Experimental Analysis of Iterated Spatial Joins in Main Memory PDF
Spatial Joins in Main Memory: Implementation Matters! PDF
数据库SQL优化 Web
SQL查询语句优化 Web
SQL查询优化经历 Web
大数据量惯用优化方法 Web
夏学期第2周 4.26 空间网络模型与查询 PDF
课堂练习8 With Recursive
五一劳动节调课
Spatial Databases: A Tour Chapter 6
MOOC Module 3 Spatial Networks Video
WITH Queries in PostgreSQL
Navigation Systems: A Spatial Database Perspective PDF
作业6 下载
测试6 空间网络模型
夏学期第3周 4.28 空间数据模型 PDF
课堂练习9 pgRouting
空间数据库管理系统概论 3.3-3.6
pgRouting Manuals Web
对地观测大数据处理、挑战与思考 Web
作业8 下载
夏学期第4周 5.12 数据库安全与触发器 PDF
课堂练习10 数据库安全
数据库系统概念 4.2,4.4,4.6,5.3,13.5
10大最常见的数据库安全问题 Web
SQL Server 致程序员:容易忽略的错误 Web
实例讲解SQL注入攻击 Web
作业7 下载
测试7 数据库安全
夏学期第5周 5.19 PostgreSQL服务器编程 PDF
课堂练习11 PL/pgSQL
数据库系统概念 27.3
PL/pgSQL in PostgreSQL Web
Trigger in PostgreSQL Web
Trigger in SQL Server Web
夏学期第6周 5.26 事务处理 PDF
课堂练习12 Transaction
课堂练习13 SQL编程
数据库系统概念 4.3,14.1-14.8,16.1-16.4
Concurrency Control in PostgreSQL Web
Backup / Restore in PostgreSQL Web
Backup / Restore in SQL Server Web
CartoDB Map Design Courses Video
夏学期第7周 6.2 OLAP PDF
NoSQL PDF (自学)
课堂练习14 OLAP
作业8课堂报告
测试8 课堂综合测试
数据库系统概念 5.6,20.1-20.2
PostgresQL Cube
PostgreSQL 9.4中NoSQL特性 Web
NoSQL数据库的35个应用场景 Web
数据分析、数据挖掘、数据统计、OLAP差异讨论 Web
NoSQL Database Adoption Trends Web
Visualizing Real-time, Geotagged Data with Amazon Kinesis Web
夏学期第8周 6.9 期末复习 PDF
作业8课堂报告
地理时空数据可视化 PDF
大数据时代的地理信息科学与科研能力培养 Web
Paired With AI and VR, Google Earth Will Change The Planet Web

课程作业

地理空间数据库作业是基于PostgreSQL对象关系数据库,以及空间扩展PostGISpgRouting。空间数据展示使用QGISLeaflet。作业1-4和6-7是基于Jupyter Notebook,需要了解基本的Python语法。软件安装说明PostgreSQLPython。作业题目可以相互讨论思路,但答案抄袭或雷同要扣分。请在截止日期前将完成的作业提交到学在浙大系统中,第一次提交后会给出错误题目提示,可再提交一次,每个作业最多提交两次。作业按完成情况打分,系统中可查看作业成绩和评语。在截止日期后,作业分数按每天10%递减,直到第十天减完为止,例如在截止日期后第3天交,批改成绩为45分,则该作业最终成绩为45×0.7=31.5分。

作业内容下载发布时间截止时间
作业1关系数据库创建和查询HW12020/2/252020/3/15
作业2空间数据库创建和查询HW22020/3/102020/3/29
作业3空间数据库设计 HW32020/3/242020/4/12
作业4空间查询处理和优化 HW42020/4/122020/4/26
作业5空间索引编程 HW52020/4/122020/5/5
作业6空间网络构建和查询 HW62020/4/282020/5/17
作业7空间函数和触发器 HW72020/5/122020/5/31
作业8空间数据应用 HW82020/5/7 2020/6/9

课堂报告

课堂报告鼓励同学上台,针对某个主题做20分钟左右的报告,供选择的主题如下。课堂报告作为课程平时成绩(作业和测试)的奖励,每次报告奖励5-10分,奖励除以5累计到平时成绩达到100分为止。如果想做某个主题的报告,请先发送主题和报告内容大纲至zjusdb[at]163.com申请,主题先选先得。 本学期不提供课堂报告奖励,学长的课堂报告PPT供学习。

1. Oracle Spatial的基本几何和网络模型及空间索引,与PostGIS的差异 (陈奕君 PPT)

2. SQL Server Spatial的基本几何模型及空间索引,与PostGIS的差异 (王泺棋 PDF)

3. MySQL Spatial的基本几何类型及空间索引,与PostGIS的差异 (李岸洲 PDF)

4. SQLite Spatialite的基本几何类型及空间索引,与PostGIS的差异 (胡林舒 PDF)

5. 空间数据库在桌面GIS中的应用,如ArcGIS和Quantum GIS (张国良 PPT)

6. 空间数据库在Web GIS中的应用,如OpenLayers和Geomajas (陆晔 PPT)

7. 基于With Recursive的图算法和基于Hibernate与PostGIS在线空间数据库 (潘文韬 PPT)

8. 空间数据挖掘,从Location Predication, Outlier Detection, Co-location Mining中选择一个问题介绍

9. [空间关联] Spatial Joins in Main Memory: Implementation Matters!, PVLDB 2014

10. [时空主题分析] TopicOnTiles: Tile-Based Spatio-Temporal Event Analytics via Exclusive Topic Modeling on Social Media, CHI 2018

11. [时空数据查询] Nanocubes for Real-Time Exploration of Spatiotemporal Datasets, TVCG 2013

挑战性问题

挑战性问题包括空间数据库系统实现和具体应用问题,需要深入理解地理空间数据库中的某些主题。 挑战性问题将作为课程平时成绩(作业和测试)的奖励,每题只奖励前三位完成的同学,奖励分数递减,奖励累计到平时成绩达到100分为止。 完成挑战性问题后,请尽快将代码、测试和报告文档等内容rar打包,文件名格式为“挑战X_学号_姓名.rar”,其中X为题号, 发送至zjusdb[at]163.com,email标题为“挑战X 姓名”。如发现抄袭,抄袭者和被抄袭者都将取消获得该题的奖励。有意做数据库系统实现的同学,建议先与我联系。 本学期不提供挑战奖励。

1. 表T(A)包含正整数,可能有重复,构造一个SQL语句查询不在表T中的最小正整数,如{1, 3}返回2,{2, 4}返回1,不能使用PostgreSQL的特有功能,在10000个随机生成的正整数表中处理时间不能超过1秒。

2. 稀疏矩阵通常在数据库中表示为(i, j, val),即行号,列号和矩阵元素值,每个稀疏矩阵表示为一个关系。矩阵A的迹是矩阵对角线上各个元素的总和,一般记作tr(A)。构造一个SQL语句计算tr(ABC),其中A,B和C是3个稀疏矩阵,不能使用PostgreSQL的特有功能,有计算性能要求。

3. 表T(A)包含整数,可能有重复,构造一个SQL语句查询表T中的中位数,不能使用PostgreSQL的特有功能,有查询性能要求。

4. BCNF decomposition,使用C/C++编程实现关系的自动规范化 测试

5. eBay数据库设计与实现 数据

6. 基于车辆轨迹数据的证据收集 数据

7. 基于移动轨迹数据的群体发现 数据

8. 空间索引,实现R-tree的创建、插入、删除和查询。

9. 空间数据引擎,实现二维点、线和面的空间存储、距离计算、拓扑查询和可视化,可2人一组,需课堂演示。

10. ChinaVis 2019 数据可视分析 挑战赛,涉及时空数据分析、可视化、应用开发等内容。

11. IEEE VIS VAST Challenge 2019 挑战赛,涉及时空数据分析、可视化、应用开发等内容。

12. ACM SIGSPATIAL GISCUP 2019 挑战赛,涉及空间网络、路径规划、时空数据挖掘等内容。

课程资源

参考教材:

Database System Concepts(数据库系统概念,第六版),Abraham Silberschatz,Henry F.Korth,and S.Sudarshan

空间数据库管理系统概论,程昌秀 编著

Spatial Databases: A Tour,Shashi Shekhar and Sanjay Chawla

PostGIS in Action (2nd edition),Regina O. Obe and Leo Hsu

MOOC在线课程:

Stanford: Introduction to Databases

Udacity: Intro to Relational Databases

MongoDB: MongoDB Online Courses

Minnesota: From GPS and Google Maps to Spatial Computing, Readings and Resources

UCDAVIS: Geographic Information Systems (GIS) Specialization

Pennsylvania State: GeoSpatial Revolution Episode, Maps and the Geospatial Revolution

Esri: Go Places with Spatial Analysis, The Location Advantage, Do-It-Yourself Geo App

W3C School:

SQL, XML, DTD, XQuery

关系代数解析器:

RA: A Relational Algebra Interpreter实现了关系代数表达式的解析,并转换为SQL语句,通过JDBC可在SQLite,PostgrsSQL,MySQL,和IBM DB2数据库执行生成的SQL语句,查看关系代数执行后的结果。

XML解析器:

TimyXML 2: 基于DOM的C++ XML解析类库。

Java DOM Interface: org.w3c.dom类库接口。

Python及相关类库:

Python: Python语言,网络数据抓取和网站构建。

Jyputer Notebook: Python交互可编程界面。

Markdown官方文档: IPython Notebook标记语言。

Geocoding: 地址与GPS位置相互转换类库。

web.py: 基于Python的Web应用框架。

Jinjia2: 模板引擎,用于生成文本格式的文件(HTML, XML, CSV等)。

GeoDjango: 基于Python的地理Web应用框架。

SQL Server数据导入导出工具:

平面文件连接管理器: 使用行分隔符和列分隔符导入文本文件到数据库。

数据库系统:

SQLite, MySQL, PostgreSQL, MS SQL Server 2017 Express

数据库空间扩展:

PostgreSQL PostGIS, PostgreSQL Rasdaman, PostgreSQL pgRouting, SQLite SpatiaLite, MySQL Spatial, Oracle Spatial and Graph, SQL Server Spatial

NoSQL:

MongoDB, Redis

开源GIS工具(空间数据桌面展示):

QGIS, QGIS Tutorials and Tips, OpenJump

地图渲染和设计(空间数据网络在线展示):

Mapnik, Mapbox, CartoDB

Shapefile C Library:

shapelib: shapefile文件读取C语言类库。

GIS技术论坛:

GIS Stack Exchange

Esri Blog:

GIS Education Community

BostonGIS:

BostonGIS: A testbed for GIS and Web Mapping solutions utilizing open source, freely available and/or open GIS technologies.

OSGeo-Live:

OSGeo-Live: 提供一系列预先配置的应用程序,并包含了许多地理空间信息的使用案例,涵盖了数据的存储、显示、发布、分析和管理等各个方面,包括桌面GIS,网页GIS,网络服务,数据库,地图与导航,空间分析工具,专门用途GIS系统,数据,地理空间操作函数库等等。

3snews:

3snews: 关于地理信息跨界创新资讯。


visits since June 29th, 2020