Dissecting the Duck's Innards
A DuckDB-based course on the Design and Implementation of Database System Internals.
The slides and auxiliary material are available in the GitHub repository.
Overview
This lecture material has been developed by Torsten Grust to support a 15-week course for undergraduate students of the Database Research Group at University of Tübingen (Germany).
A Tour Through DuckDB's Internals
The course treads on a path through selected internals of the DuckDB relational database system. 15 weeks do not suffice to exhaustively discuss all interesting bits and pieces of the DuckDB kernel. As of March 2026, the chapter layout reads as follows:
- Welcome & Setup
- The Query Performance Spectrum
- Managing Memory + Grouped Aggregation
- Sorting Large Tables
- The ART of Indexing
- Query Execution Plans and Pipelining
- Vectorized Query Execution
- Query Rewriting and Optimization
You will need basic SQL skills to follow the course's red thread and
auxiliary material. There are few queries that go beyond the core
SELECT-FROM-WHERE-GROUP BY-HAVING block, however. Should
you require an introduction to the tabular data model and its
query language SQL, you may find the companion course
Tabular Database Systems helpful.