SIE555 Spatial Database Systems
Fall 2024 — Mon/Wed 3:30-4:45pm
Course Description
This course covers modern modular database system (DBS) architectures, including spatial database functionality. It introduces relational algebra, SQL and spatial SQL based on OCG-compliant data types, database design, 3rd normal form, and spatial database architecture. Practical labs are done with PostGIS, QGIS and Apache Spark. Further, storage structures such as file, record and index structures (including spatial index structures) are covered. Relational and spatial query operator algorithms, and optimizing query plans.
Lec. 3. Cr. 3.
Prerequisites: graduate standing, programming experience in Python (no other languages are required)
(Optional) Course Texts:
- Database Management Systems (3rd Ed), Raghu Ramakrishnan, Johannes Gehrke, McGraw Hill.
- Optionally: Spatial Databases: with Application to GIS, Philippe Rigaux, Michel Scholl, Agnes Voisard, Morgan Kaufmann Publishers.
Powerpoint slides of lecture material will be available via Umaine Brightspace (http://courses.maine.edu/).
Software:
The course involves several programming assignments. Please make sure to have an up-to-date laptop available for class with sufficient RAM and disk space. For the database labs, we use
- PostgreSQL
- PostGIS
- QGIS
- Python (Geopandas, Shapely, etc.)
- Apache Spark and Apache Sedona
Distance Education:
The live class is available via Zoom. Link is published on Brightspace. Recordings are available on Brightspace.
Course Goals and Objectives
- Introducing Relational Algebra, SQL and Database Design
- Introduction of challenges to manage spatial data with relational DBS
- Spatial SQL
- Practical labs with POSTGIS and QGIS
- Develop an understanding of database architecture, including data storage and non-spatial and spatial data indexing mechanisms, and implications on database performance
- Develop an understanding of query operator algorithms and query optimization
- Develop an understanding of modern database architectures using distributed and cloud environments for large data
- Gain competence in spatial database programming
Faculty Information
Dr. Silvia Nittel
Spatial Informatics
School of Computing and Information Science
334 Boardman Hall
silvia.nittel@maine.edu
Office Hours:
Office hours for this course will be announced at the beginning of the semester. Alternatively, contact me by email to arrange a time to meet.
Grading, Class Policies and Course Expectations
As a graduate-level course, you are expected to exhibit high-quality work that demonstrates a sound understanding of the concepts and their complexity. Earning an “A” represents oral and written work that is of exceptionally high quality and demonstrates a superb understanding of the course material. A “B” grade represents oral and written work that is of good quality and demonstrates a sound understanding of course material. A “C” grade represents a minimally adequate completion of assignments and participation demonstrating a limited understanding of course material.
Grading criteria:
- Assignments – 70%
- Final project– 30% (due to special circumstances, Spring 2020)
Academic honesty
Academic honesty is expected. Plagiarism is unacceptable in this course and will result in a failing grade.
Students with disabilities:
If you have a disability for which you may be requesting an accommodation, please contact Ann Smith, Coordinator of Services for Students with Disabilities (Onward Building, 581-2319), as early as possible in the term.
NOT UPDATED YET
Week | Class | Date | Topic |
1 | 1 | 8/29/2022 | Course Overview
Introduction (Part A) |
2 | 8/31/2022 | Introduction (Part B) | |
2 | NO CLASS | 9/5/2022 | LABOR DAY |
3 | 9/7/2022 | Set Theory & SQL | |
3 | 4 | 9/12/2022 | SQL Queries & Query Evaluation |
5 | 9/14/2022 | Installing Postgres and PostGIS
(Guest lecturer) |
|
4 | 6 | 9/19/2022 | SQL Queries & Query Evaluation |
7 | 9/21/2022 | Database Design | |
5 | 8 | 9/26/2022 | SQL Language Embedding & DBS APIs with Python |
9 | 9/28/2022 | Challenges of Spatial Data Management | |
6 | 10 | 10/03/2022 | Spatial Query Operators |
11 | 10/05/2022 | Spatial Query Operators
Spatial DBS Architectures |
|
7 | No CLASS | 10/10/2022 | Fall BREAK |
12 | 10/12/2022 | Intro to QGIS (student lecture) | |
8 | 10/17/2022 | no class | |
10/19/2022 | no class | ||
9 | 13 | 10/24/2022 | PostGIS (I) |
14 | 10/26/2022 | PostGIS (II) | |
10 | 15 | 10/31/2022 | PostGIS (III) |
16 | 11/2/2022 | Storage Structures | |
11 | 17 | 11/7/2022 | File Structures |
18 | 11/09/2022 | Apache Spark & RDDs | |
12 | 19 | 11/14/2022 | Indexing: B-Tree |
20 | 11/16/2022 | Spatial Indexing: R-Trees | |
13 | 21 | 11/21/2022 | Spatial Indexing Lab |
No Class | 11/23/2022 | Thanksgiving | |
14 | 22 | 11/28/2022 | Evaluation of Join Operator |
23 | 11/30/2022 | Evaluation of Spatial Join Operators | |
15 | 24 | 12/05/2022 | Apache Spark Sedona |
25 | 12/07/2022 | no class | |
16 | Finals week | 12/12/2022 | Project Presentations
2:45pm-4:45pm |