Die Fahrzeug-Identifizierungsnummer (FIN, international VIN) ist ein gutes Kontrastbeispiel zur UUID: Sie besteht aus 17 strukturierten Zeichen, die Hersteller, Modell und eine laufende Fertigungsnummer kodieren, und wird von einer zentralen Stelle nach ISO 3779 vergeben — jede Ziffer hat eine feste Bedeutung. Eine UUID dagegen kodiert nichts über ihren Ursprung, braucht keine zentrale Vergabestelle und lässt sich auf jedem beliebigen Rechner offline erzeugen, mit derselben praktischen Eindeutigkeitsgarantie.
UUID-Versionen
- v1 — basiert auf der aktuellen Zeit und der MAC-Adresse der Netzwerkkarte. Garantiert Eindeutigkeit, verrät aber teilweise, wann und auf welchem Gerät die Kennung erstellt wurde.
- v4 — vollständig zufällig (abgesehen von ein paar reservierten Bits zur Versionskennzeichnung). Die heute gängigste Variante, gerade weil sie keine Nebeninformationen preisgibt.
- v5 — deterministisch, berechnet als Hash aus einem Namensraum und einer Zeichenkette — dieselbe Eingabe ergibt immer dieselbe UUID.
Warum die Kollisionswahrscheinlichkeit praktisch null ist
Bei UUID v4 sind 122 Bit zufällig. Selbst wenn man Milliarden UUIDs pro Sekunde über Jahrhunderte erzeugt, bleibt die Wahrscheinlichkeit mindestens einer Kollision astronomisch klein — mathematisch begründet durch das Geburtstagsparadoxon für einen Raum dieser Größe.
Wofür man das braucht
- Primärschlüssel für Datenbanken ohne zentralen Zähler oder Koordination zwischen Servern erzeugen — ganz ohne eine VIN-artige, zentral vergebene Struktur.
- Session-, Anfrage- oder Transaktionskennungen in verteilten Systemen erstellen.
- Vorhersagbare fortlaufende IDs vermeiden, die leicht durchzuprobieren sind (anders als
1, 2, 3...).
UUID v7: Kompromiss zwischen Zufälligkeit und Sortierbarkeit
Eine vollständig zufällige UUID v4 wirkt sich negativ auf die Leistung von Datenbankindizes aus — neue Einträge werden an chaotischen Positionen im Indexbaum eingefügt statt am Ende. Die neuere UUID v7 löst das, indem sie einen Zeitstempel in die ersten Bits der Kennung einbettet: Die Werte bleiben praktisch so eindeutig wie bei v4, sortieren sich aber von Natur aus nach Erstellungszeit, wie ein fortlaufender Zähler — und nähern sich damit, anders als eine VIN, keiner zentralen Registrierungsstelle an, sondern bleiben lokal erzeugbar.