Interviewfragen zu Datenbanken mit Antworten
SQL und relationale Modellierung, Joins und Aggregation, Indizes und Abfragepläne, Transaktionen und Isolation, PostgreSQL in der Praxis, NoSQL und Redis, Replikation und Sharding.
225 Fragen fürs Vorstellungsgespräch zu Datenbanken mit Antworten und Erklärungen: Level Junior, Middle und Senior. Beispielfragen, Online-Tests und Programmieraufgaben.
- SQL
- PostgreSQL
- Indexes
- Transactions
- NoSQL
Fragen nach Level
Junior
Grundbegriffe und Syntax · 50 Fragen
Middle
Praxis, Feinheiten und Optimierung · 50 Fragen
Senior
Architektur, Interna, Randfälle · 50 Fragen
Beispielfragen
Ein paar Fragen aus jedem Level mit richtiger Antwort und Erklärung.
Datenbanken · Junior
- Was ist eine relationale Datenbank?
Antwort zeigen
Richtige Antwort: Eine Datenbank aus Tabellen, die über Schlüssel verknüpft sind
PostgreSQL, MySQL, SQL Server, Oracle und SQLite sind relationale Datenbanken. Man fragt sie mit SQL ab, und Beziehungen zwischen Tabellen werden über Primär- und Fremdschlüssel ausgedrückt.
- Was ist ein Primärschlüssel?
Antwort zeigen
Richtige Antwort: Eine Spaltenmenge, die jede Zeile eindeutig identifiziert
Eine Tabelle hat höchstens einen Primärschlüssel. Die Datenbank legt dafür automatisch einen eindeutigen Index an, Abfragen über den Primärschlüssel sind also schnell.
- Was ist ein Fremdschlüssel?
Antwort zeigen
Richtige Antwort: Eine Spalte, die einen Schlüssel einer anderen Tabelle referenziert
Zum Beispiel referenziert
orders.user_iddie Spalteusers.id. Die Datenbank lehnt eine Bestellung für einen nicht existierenden Nutzer ab.ON DELETE CASCADEoderON DELETE SET NULLlegen fest, was passiert, wenn die referenzierte Zeile gelöscht wird. - Wie modelliert man eine Viele-zu-viele-Beziehung, etwa Studierende und Kurse?
Antwort zeigen
Richtige Antwort: Mit einer Verknüpfungstabelle, z. B.
enrollments(student_id, course_id), mit einem Fremdschlüssel zu jeder SeiteDie Verknüpfungstabelle kann auch Daten über die Beziehung selbst halten, etwa Einschreibedatum oder Note. Eine kommagetrennte Liste lässt sich nicht richtig indizieren, joinen oder einschränken.
Datenbanken · Middle
- Welche Datenstruktur nutzt ein Standardindex in PostgreSQL?
Antwort zeigen
Richtige Antwort: Einen B-Baum
B-Bäume halten Schlüssel sortiert und unterstützen daher Gleichheit, Bereiche (
<,BETWEEN), Sortierung und Präfix-LIKE 'abc%'(mit passender Collation oder Operatorklasse). Hash, GIN, GiST und BRIN sind für Sonderfälle. - Es gibt einen Index auf
(last_name, first_name). Welche Abfrage kann ihn effizient nutzen?Antwort zeigen
Richtige Antwort:
WHERE last_name = 'Smith'Ein zusammengesetzter Index ist nach der ersten Spalte sortiert, darin nach der zweiten, wie ein Telefonbuch. Er hilft Abfragen auf einem führenden Präfix seiner Spalten; eine Suche nur nach
first_namekann ihn meist nicht gut nutzen. - Es gibt einen Index auf
created_at. Warum ignoriertWHERE date(created_at) = '2026-11-01'ihn eventuell?Antwort zeigen
Richtige Antwort: Die Funktion verbirgt die rohe Spalte vor dem Index
Schreibe es um zu
created_at >= '2026-11-01' AND created_at < '2026-11-02'oder lege einen Index auf den Ausdruck selbst an. - Warum kann ein normaler B-Baum-Index
WHERE name LIKE '%son'nicht beschleunigen?Antwort zeigen
Richtige Antwort: Mit führendem Platzhalter ist der Wertanfang unbekannt
LIKE 'son%'kann einen B-Baum nutzen (mit passender Operatorklasse). Für Teilstring- oder unscharfe Suche nutze einen Trigramm-GIN-Index (pg_trgm) oder Volltextsuche.
Datenbanken · Senior
- Wie entscheidet PostgreSQL, ob eine Zeilenversion für eine Transaktion sichtbar ist?
Antwort zeigen
Richtige Antwort: Durch Vergleich von
xmin/xmaxder Zeile mit dem Snapshotxminist die erzeugende Transaktion,xmaxdie löschende oder ändernde. Ein Snapshot listet, welche Transaktionen noch liefen, die Zeile ist also nur sichtbar, wenn ihr Erzeuger vorher committet hat. - Was ist Transaction-ID-Wraparound, und warum ist er gefährlich?
Antwort zeigen
Richtige Antwort: 32-Bit-IDs kehren wieder; ungefrorene Zeilen stoppen Schreiben
Autovacuum friert alte Zeilen lange vor der Grenze ein. Autovacuum abzuschalten oder sehr lange Transaktionen zu halten kann eine Datenbank Richtung erzwungenem Herunterfahren treiben.
- Was ist Table Bloat, und was verursacht ihn meist?
Antwort zeigen
Richtige Antwort: Tote Zeilenversionen, die nicht schnell genug wiederverwendet werden
Stimme Autovacuum pro Tabelle ab (kleinere Skalierungsfaktoren für heiße Tabellen), vermeide lange Transaktionen und baue aufgeblähte Objekte online mit
pg_repackoderREINDEX CONCURRENTLYneu. - Wozu dient das Write-Ahead-Log (WAL)?
Antwort zeigen
Richtige Antwort: Wiederherstellung nach Absturz und Streaming an Replicas
Datenseiten können später im Hintergrund auf die Platte geschrieben werden. WAL treibt auch physische Replikation, Logical Decoding und Point-in-Time Recovery an.
Kombinierte Tests mit diesem Thema
Fragen aus mehreren Themen auf einmal, wie im Vorstellungsgespräch für eine konkrete Stelle.
Programmieraufgaben
Schreib die Lösung direkt im Browser, und Tests prüfen sie sofort. Klassiker aus Vorstellungsgesprächen zu JavaScript (debounce, deepClone, Promise.all, LRU-Cache), zu TypeScript (Generics, Narrowing und Utility Types, geprüft von einem echten Compiler), Backend-Logik in Node.js (Middleware, Rate Limits, Job-Queues), SQL-Abfragen in echtem PostgreSQL und zu React: Komponenten und Hooks wie eine Aufgabenliste, Tabs, useDebounce und useInterval.
Aufgaben öffnen →