Temporal and Spatial Databases (TSDB)

Academic Year:2012/13, 2nd semester
Lecturer:Johann Gamper
Lectures:WE 16:00-18:00, Room E412
Labs:WE 18:00-19:00, Room E412
Office hours:WE 15:00-16:00 or email arrangement

Home | Lectures | Project | Exam

Objectives: This course will introduce principles and foundations of temporal and spatial databases, including data models, query languages, algebras, and algorithms for selected operators.

Prerequisites: Students should be familiar with basic concepts in databases (including relational databases, SQL, and relational algebra) and algorithms, as well as having good pogramming skills. This material is taught in the following courses: Introduction to Databases, Introduction to Programming, and Data Structures and Algorithms.

Syllabus:

References: There is no single textbook that covers the entire course. The course material is collected from the following books and papers:

Lectures and Lecture Notes

1. WE 06.03.13  Introduction: syllabus, administration and organisation, the DB field, short overview of RDMS, motivation for temporal DBMS, a case study pdf
2. WE 13.03.13 Conceptual temporal data models I: time domain, time dimensions and timestamps, point-based data models, interval-based data models, data models with temporal elements, attribute value timestamping, the bitemporal conceptual data model (BCDM) pdf
3. WE 20.03.13 Representational temporal data models: interaction of BCDM and representational models, Snodgrass' tuple timestamping model, Jensen's backlog model, Ben-Zvi's tuple timestamped model, Gadia's attribute value timestamped model, McKenzie's attribute value timestamped model pdf
4. WE 27.03.13 Relational algebra for bitemporal relations: algebra for BCDM, algebra for Sondgrass' tuple timestamped data model, reducibility of operators, semantic equivalence pdf
5. WE 03.04.13 Temporal query languages: Language design criteria, comparison of timestamps, comparative analysis of temporal query languages (SQL + ADT, IXSQL, SQL/TP, TSQL2, ATSQL) pdf
6. WE 10.04.13 Temporal join: Query processing, definition of temporal Cartesian product and temporal joins, evaluation algorithms for temporal joins (nested-loop, sort-merge, partition-based, index-based) pdf
7. WE 17.04.13 Temporal aggregation: snapshot vs. temporal aggregation, aggregation tree algorithm, balanced tree algorithm, merge-sort algorithm, bucket algorithm pdf
8. WE 24.04.13 Temporal aggregation: a general temporal aggregation framework, parsimounious temporal aggregation pdf
9. WE 08.05.13 Spatial databases: introduction, modeling spatial concepts, organizing the underlying space, spatial data types and algebras, spatial relationships pdf
10. WE 15.05.13 Spatial databases: integrating geometry into DBMS data model, querying spatial databases, spatial indexes pdf
11. WE 22.05.13 Spatial network databases: definition, shortest path queries, Dijkstra's algorithm, landmark-based approximation algorithms, k-NN search pdf
12. WE 29.05.13 Spatial extensions of Oracle and Postgres

Project

The exercise part of the course consists in the elaboration of a mini-project, which can be done alone or in groups of 2 students. The project consists in the implemenation and evaluation of one of the following research papers:

The project concludes with a final report of 5-10 pages which clearly states the problem and describes the solution, implementation and evaluation.

For the implementation we recommend Java or C as programming language and Oracle, Postgres, or MySQL as database system, but you are free to choose any other programming language and relational database system. For the evaluation, the following data sets of different size (200K, 400K, 600K, 800K, 1000K of tuples) are available here ("nn" indicates the size of the data set, e.g., 02 = 200000 tuples):

All data sets have the schema (Name, Salary, TS, TE): Name is intended as the name of an employee and is represented as a number between 0 and 9; Salary is an integer and represents the salary of an employee; TS and TE are integers and represent the start time and end time of the tuple, respectively.

Milestones

Exam