Tabulare Datenbanksysteme
Ein DuckDB-basierter Kurs zu den Grundlagen relationaler Datenbankmanagementsysteme und SQL.
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 (genannt „TaDa“) für Studierende im Bachelor der Database Research Group an der Universität Tübingen. Sie dürfen dieses Material nach Belieben nutzen: überfliegen, durcharbeiten, Anregungen oder Korrekturen schicken oder es auseinandernehmen, um daraus eigenes Vorlesungsmaterial zu bauen. In jedem Fall würde ich mich über eine Nachricht von Ihnen freuen:
Eine DuckDB-basierte Einführung in tabulare Daten und SQL
Als Mitglied der jahrzehntealten Familie relationaler Datenbankmanagementsysteme
ist DuckDB Experte für die Verarbeitung tabularer Daten
(oder: Tabellen, Relationen). DuckDB ist ein fähiges und sehr effizientes
SQL-Datenbanksystem, das
Milliarden Zeilen auf handelsüblichen Laptops verarbeiten kann.
Sein SQL-Dialekt ist vielseitig, vollständig und bemerkenswert freundlich.
DuckDB lässt sich kinderleicht installieren und warten,
ist offen für Experimente und Inspektion, hat seit seiner Entstehung 2019
eine offene und unterstützende Community aufgebaut
und eignet sich daher hervorragend als Einstieg
in die Welt zeitgenössischer tabularer Datenbanksysteme.
15 Wochen reichen kaum, um ein Feld erschöpfend zu behandeln, das sich seit den frühen 1970er-Jahren entwickelt hat. Dennoch hoffe ich, dass die in TaDa behandelten Themen einen Weg ebnen, von dem aus Sie leicht abzweigen und sich in den Tiefen von Ted Codds Dschungel verlieren können. Ein künftiges TaDa mag Kapitel hinzufügen, zusammenführen oder streichen; Stand März 2026 sieht die Kapitelgliederung wie folgt aus:
- Tabular Data and Database Systems
- Tabular Data in CSV Files
- Reading Data at the Speed of
LightMemory - Columnar Table Storage
- Database-External Data in Parquet Files
- The Structured Query Language (SQL)
- More SQL (Subqueries + Embedded SQL)
- SQL: Grouping + Aggregation and Functional Dependencies
(Sie können die TaDa-Folien auch als ein zusammengeführtes Deck herunterladen)
Wir setzen keine SQL-Vorkenntnisse voraus. In den Kapiteln 03 und 07 lesen und ändern Sie kurze Stücke C-, Python- oder awk-Code. Die Interna von DuckDB bleiben weitgehend im Hintergrund. Wenn Sie die Innereien der Ente interessieren, kann der Begleitkurs Design and Implementation of DuckDB Internals zu ausgewählten Interna des DuckDB-Kernels hilfreich sein.