Apr 17, 2017 — First lecture on Tuesday, April 18, 10:15 in room C215. First tutorial on Thursday, April 27, when we have collected the first batch of interesting material. — Torsten Grust
Jul 18, 2017 — Exam Details
For any further questions, please feel free to post them in the forum.
Relational database systems provide efficient storage for large volumes of data. This course highlights that these systems also provide a versatile and expressive data processing language: SQL. There's much more to SQL than the plain
SELECT...FROM...WHERE clause and we will see that a surprisingly large number of algorithmic problems can be tackled using SQL. Moving computation close to the data is key to unlock the true potential of database systems.
Selected course topics include
The course will only provide a brief introduction to the fundamental aspects of relational database systems. We expect you to have basic SQL skills (through prior attendance of Datenbanksysteme I or personal projects, for example) or be willing to acquire such skills.
Join us for a boatload of SQL fun! We will provide more course details once the semester approaches.
|2||The Core of SQL|
[ updated: April 25, 2017, 13:54 ]
|3||Standard and Non-Standard Data Types|
[ updated: May 9, 2017, 13:41 ]
|4||Arrays and User-Defined Functions|
[ updated: May 22, 2017, 22:27 ]
[ updated June 20, 2017, 12:40 ]
Instructions for participating in the "Advanced SQL" exercises.
A collection of example SQL queries, formulated using the core constructs of SQL.
Examples that demonstrate the use of a variety of SQL data types.
Demonstrates the use of BLOBs (binary large objects) stored in columns of type
Demonstrates the use of geometric objects and operations on these: scan the contour of a 2D polygon.
Companion GnuPlot file to be used with
[ updated June 20, 2017, 12:39 ]
Visibility in a hilly environment while looking left and right (partitioned
Detect streaks of uninterrupted activity (= sessions) in an activity log file.
Uses run-length encoding to compress a pixel map. (Demonstrates row-wise encoding — decoding to be supplied by the students.)
Detect landscape features (peaks, valleys) using patterns of slopes (⭧⭢⭨) in the vicinity. Uses window functions and in-frame row access (
Detect consecutive ranges in an ordered sequence of values (e.g. citations). Uses window function
Classify regions in a mountainous landscape by altitude (vegetation zones, low-/highlands). Uses window functions
Demonstrate the use of recursion via
Given a starting node (e.g., the node named
Find the connected components of an undirected graph. Performs walks from all nodes in the graphs using
Perform bulk regular expression matching using a deterministic finite state machine. Uses
Finds all solutions for a given incomplete Sudoku puzzle (brute force solver, takes about 500 ms). Uses
(and uncomment the
Writes a CSV file of the simulation data that can be animated by Python script
Python 3 script that reads the CSV simulation data output by
An implementation of the CYK parsing algorithm for context-free grammars in Chomsky normal form. Uses
Demonstrates aspects and constructs of PostgreSQL's PL/pgSQL (a PL/SQL dialect).
Implements a minimal spreadsheet core using SQL (including
Uses a JSON-based representation of formulæ and topological sorting to choose a valid cell evaluation order.