c't 6/2022
S. 138
Wissen
UUIDs in Datenbanken
Bild: Thorsten Hübner

Zufall schlägt das System

Ein Plädoyer für UUIDs in Datenbanken

Hochgezählte ganze Zahlen sind der Standard als ID in Datenbanktabellen und in vielen großen Anwendungen zu finden. Was einfach und pflegeleicht scheint, wird bei verteilten Datenbanken kompliziert, erschwert Im- und Exporte und kann sogar Sicherheitsprobleme und Frust im Browser verursachen. Die bessere Alternative: zufällige und eindeutige IDs.

Von Jan Mahn

Jeder Einstieg in die Entwicklung von relationalen Datenbanken beginnt in etwa gleich: Nachdem Grundbegriffe wie Tabelle, Spalte und Primärschlüssel erklärt sind, baut man die erste Tabelle mit einer ID als Primärschlüssel und beispielsweise je einer Spalte für einen Namen und eine Beschreibung. Als Datenformat für die ID greift man in solchen Einführungen meist zu einem 32-Bit-Integer und aktiviert die Funktion des Datenbanksystems, die ID mit jeder angelegten Zeile automatisch zu inkrementieren. In MySQL-Syntax beginnt eine Datenbankkarriere mit einer Beispieltabelle wie dieser, in der Magazine gespeichert werden:

CREATE TABLE Magazines (
 Id INT NOT NULL AUTO_INCREMENT,
 Name VARCHAR(255) NOT NULL,
 Description VARCHAR(255),
 Year INT,
 PRIMARY KEY (Id)
); 

Diese Tabelle kann man einfach per INSERT-Befehl befüllen, ohne den Wert für die ID anzugeben. Der erste Eintrag bekommt ohne weiteres Zutun die 1, der nächste die 2. Das ist durchaus praktisch, weil man im Rahmen einer Einführung schnell zu den vermeintlich spannenderen Themen übergehen kann – die Datenbank kümmert sich ja automatisch darum, dass immer eine freie ID vergeben wird.

Kommentare lesen (5 Beiträge)