Entwurf und Implementierung der DuckDB-Interna

Dies ist ein DuckDB-basierter Kurs, der Entwurf und Implementierung von Datenbanksystem-Interna erklärt („DiDi“). Die Folien und Begleitmaterialien sind im GitHub-Repository verfügbar.

Überblick

Dieses Vorlesungsmaterial wurde von Torsten Grust entwickelt und begleitet einen 15-wöchigen Kurs für Studierende im Bachelor der Database Research Group an der Universität Tübingen.

Ein Rundgang durch DuckDBs Interna

Der Kurs folgt einem Pfad durch ausgewählte Interna des relationalen Datenbanksystems DuckDB. 15 Wochen reichen nicht, um alle interessanten Teile des DuckDB-Kernels erschöpfend zu behandeln. Stand März 2026 sieht die Kapitelgliederung wie folgt aus:

  1. Welcome & Setup
  2. The Query Performance Spectrum
  3. Managing Memory + Grouped Aggregation
  4. Sorting Large Tables
  5. The ART of Indexing
  6. Query Execution Plans and Pipelining
  7. Vectorized Query Execution
  8. Query Rewriting and Optimization

(Sie können die DiDi-Folien auch als ein zusammengeführtes Deck herunterladen)

Sie brauchen grundlegende SQL-Kenntnisse, um dem roten Faden des Kurses und den Begleitmaterialien zu folgen. Nur wenige Abfragen gehen über den Kernblock SELECT-FROM-WHERE-GROUP BY-HAVING hinaus. Wenn Sie eine Einführung in das tabulare Datenmodell und seine Abfragesprache SQL brauchen, kann der Begleitkurs Tabular Database Systems hilfreich sein.