Uniqueness

Uniqueness bedeutet soviel wie „Einmaligkeit“. Manche Dinge lassen sich als einmalig beschreiben, sie sind unique.

Statisch Unique

So hat ein Wochentag einen Namen, der ihn identifiziert. Darum spricht man auch von der Identität. Wir können die Wochentage durchnummerieren und wenn wir zu jedem ersten Wochentag 1 sagen, dann ist 1 die Identität für Montage. Insgesamt haben wir 7 Wochentage und wir stellen sicher, dass kein Wochentag die gleiche Identität besitzt, wie ein anderer.

Identität Wochentag
1 Montag
2 Dienstag
3 Mittwoch
4 Donnerstag
5 Freitag
6 Samstag
7 Sonntag

Die Identität eines Wochentages ist einmalig - also unique.

Die Tatsache, dass manche Eigenschaften sich durch ein eindeutiges Merkmal beschreiben lassen, macht man sich in der Programmierung regelmäßig zu nutze. So wird uns die Identität später, im Bereich von Datenbanken beispielsweise wieder als „Key“ (Schlüssel) begegnen - das Konzept ist allerdings das gleiche: Durch einen kurze Information - zum Beispiel eine eindeutige Zahl - werden weitergehende Informationen verschlüsselt. So wissen wir beispielsweise, dass wir an einem Wochentag mit der Identität 2 morgens arbeiten müssen und abends die Lieblingsserie kommt. An einem Wochentag mit der Identität 6 haben wir frei, müssen dafür aber das Auto waschen.

Dynamisch Unique

Unsere Identität belegen wir mit einem „Identitätsnachweis“. Das kann der Reisepass sein, der Führerschein oder in Deutschland eben üblicherweise der Personalausweis. Unsere Identität ist in der Personalausweisnummer verschlüsselt, denn jeder Mensch, der einen Sammelbegriff als Namen verwendet, wie beispielsweise „Andreas Müller“, ist durch seinen Namen alleine nicht eindeutig zu identifizieren.

Mit der Ausweisnummer sind also wieder je nach Ausweis zusätzliche Merkmale verknüpft: Vorname, Zweitnamen, Nachname, Geburtsdatum,-ort und Adresse oder die erlangten Führerscheinklassen. Dennoch gibt es eine Identität: die Ausweisnummer.

Eine Identität ist also eine sehr kurze Beschreibung, für ein beliebig kompliziertes Objekt. Beispiele sind ISBN-Nummern, die für ein ganzes Buch stehen oder Barcodes auf Produkten, mit denen die Kasse auf das gekaufte Produkt schließen kann.

Mit einer solchen kurzen Beschreibung müssen wir uns nicht immer mit dem kompletten Datensatz herumärgern, sondern können uns auf eine kurze, einheitliche und eindeutige Beschreibung verlassen. Mit diesen einheitlichen Identitäten können wir anschließend Datenstrukturen füttern und so zum Beispiel eine Rechnung mit Artikelnummern und Preisen versehen und in einem anderen Katalog nachschauen, was die Artikelnummer schlussendlich überhaupt bedeutet, so dass der Kunde die Rechnung auch lesen kann. Intern arbeiten wir aber einfach mit der einheitlichen Artikelnummer, ohne uns darum zu kümmern, ob der Kunde nun einen Computer oder einen Rasenmäher gekauft hat.

Der genaue Unterschied

Wir haben nun zwei Fälle, in denen eine Nummer die Identität für etwas Größeres darstellt. Doch wo ist der Unterschied? Wo ist das eine statisch, das andere dynamisch? Nehmen wir an ein Kind wird geboren. Die Bürokratie springt an und erzeugt eine neue Ausweisnummer, eine neue Sozialversicherungsnummer und so weiter. Das passiert regelmäßig: Jedes Mal, wenn ein Kind geboren wird, wird ebenfalls eine neue Identität vergeben. Das ist ein dynamischer Prozess, die Identitäten sind also nie endgültig festgelegt, es ist immer damit zu rechnen, dass eine weitere Identität hinzukommt und andere sterben.

Das ist bei Wochentagen seltener der Fall. Wenn wir ein Programm programmieren, können wir uns mit ziemlicher Sicherheit darauf verlassen, dass während der Ausführung des Programms keine Wochentage geboren oder sterben werden. Wir können diese Anzahl von Tagen also als statisch - also unveränderlich - betrachten.

Diese statischen Identitäten lassen sich nutzen, um schnellere Programme zu schreiben. Wenn wir wissen, dass wir eine begrenzte Menge von Identitäten besitzen, können wir mit dieser Information unser Programm beschleunigen.