地理空间数据库

2021-2022 秋冬学期


课程简介

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

主讲教师:

陶煜波

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

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

上课时间与地点:

东2-414

周二上午 9:50-12:15

课程考核方式:

作业(6个)占最终考评的40%

测试(6个,学在浙大上完成,每个测试有两次答题机会,自动评分,取最高分)占最终考评的10%

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

平时成绩 = Min((作业成绩 + 测试成绩 + 附加题成绩) / 4,100)

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

课程安排和课件下载

周次 日期 课堂内容 (部分课件内容来自于网上课程) 阅读材料 课后作业与测试
秋学期第1周 9.14 地理空间数据库概论 PDF
关系模型与关系代数 PDF
Jupyter Notebook安装说明 Word
PostgreSQL安装说明 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
GIS:揭开你神秘的面纱 Web
2021年中国数据库行业研究报告 Web
秋学期第2周 9.21 中秋节放假
秋学期第3周 9.28 关系数据库标准语言SQL PDF
课堂练习2 SQL
数据库系统概念 3.1-3.10,4.1,4.4
W3C School Web
可汗学院 SQL课程 Web
看漫画学SQL Web
作业1 下载
测试1 关系数据库
秋学期第4周 10.9 几何对象模型与查询 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
秋学期第5周 10.12 几何对象模型与查询 PDF
课堂练习4 QGIS和OpenStreetMap
空间数据库管理系统概论 4.1-4.3
ArcGIS SQL空间函数
PostGIS 空间函数 Cheatsheet
PostGIS教程 教程
Openstreetmap Case Study Video
作业2 下载
测试2 几何对象模型与查询
秋学期第6周 10.19 数据库设计与空间扩展E/R图 PDF
课堂练习5 空间数据库设计
数据库系统概念 7.1-7.10
空间数据库管理系统概论 5.1-5.4
Simple Feature Access Specification SQL option
秋学期第7周 10.26 关系数据库设计理论 PDF
数据库系统概念 8.1-8.9 作业3 下载
测试3 空间数据库设计
秋学期第8周 11.2 空间存储与索引 PDF
课堂练习6 Index
数据库系统概念 10.1-10.6,11.1-11.10
Spatial Databases: A Tour Chapter 4
MySQL索引背后的数据结构及算法原理 Web
内存数据库中的索引技术 Web
冬学期第1周 11.9 空间存储与索引 PDF Spatial Databases: A Tour Chapter 4
空间数据库管理系统概论 6.1-6.6
PostGIS中GiST-based R-Tree spatial indexes Web
超酷算法:用四叉树和希尔伯特曲线做空间索引 Web
基于Solr的空间搜索 Web
作业6 下载
冬学期第2周 11.16 查询处理与优化 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
作业4 下载
测试4 空间索引与查询处理
冬学期第3周 11.23 空间网络模型与查询 PDF
课堂练习8 With Recursive
课堂练习9 pgRouting
Spatial Databases: A Tour Chapter 6
空间数据库管理系统概论 3.3-3.6
MOOC Module 3 Spatial Networks Video
WITH Queries in PostgreSQL
Navigation Systems: A Spatial Database Perspective PDF
pgRouting Manuals Web
对地观测大数据处理、挑战与思考 Web
冬学期第4周 11.30 数据库安全与触发器 PDF
课堂练习10 数据库安全
数据库系统概念 4.2,4.4,4.6,5.3,13.5
数据库10大常见安全问题 Web
SQL Server 致程序员:容易忽略的错误 Web
实例讲解SQL注入攻击 Web
Database Security Activities Web
作业5 下载
测试5 空间网络模型
冬学期第5周 12.7 postgreSQL服务器编程 PDF
课堂练习11 PL/pgSQL
数据库系统概念 27.3
PL/pgSQL in PostgreSQL Web
Trigger in PostgreSQL Web
Trigger in SQL Server Web
冬学期第6周 12.14 事务处理 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周 12.21 作业6 课堂报告
测试6 课堂综合测试
冬学期第8周 12.28 期末复习 PDF
作业6 课堂报告
地理时空数据可视化 PDF
大数据时代的地理信息科学与科研能力培养 Web

课程作业

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

作业内容下载发布时间截止时间
作业1关系数据库创建和查询HW12021/9/22 2021/10/17
作业2空间数据库创建和查询HW22021/10/9 2021/10/31
作业3空间数据库设计 HW32021/10/262021/11/14
作业4空间查询处理和优化 HW42021/11/9 2021/11/29
作业5空间网络构建和查询 HW52021/11/232021/12/14
作业6空间数据应用 HW62021/11/9 2021/12/28

课堂报告

本学期不提供课堂报告奖励,学长的课堂报告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

挑战性问题

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

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

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

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

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

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

7. 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

数据库学术会议:

SIGMOD, VLDB, ICDE, SIGSPATIAL

关系代数解析器:

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类库接口。

Shapefile C Library:

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

Python及相关类库:

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

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

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

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

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

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

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

数据库系统:

SQLite, MySQL, PostgreSQL, MS SQL Server 2022

数据库空间扩展:

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

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: 关于地理信息跨界创新资讯。

企业数据库架构实践:

滴滴LBS系统架构实践, 58速运-百万单量用车O2O架构实践, 数据库架构在美团点评的演变实践, 基于Hadoop的地理空间分析, 路径导航算法优化, 基于Redis的排行榜, 空天数据库引擎Ganos


visits since June 29th, 2020