Datenbanktheorie: Prinzipiell ist ein Künstlicher Schlüssel immer richtig oder?

4 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Immer richtig ist relativ.

Ein künstlicher Schlüssel z.B. über eine automatisch generierte Sequenz kann sicher herangezogen werden um eine einzelne Zeile eindeutig zu identifizieren.

Das kann aber häufig auch Nachteile haben, gerade wenn man einen Datensatz in der Anwendung selbst anders identifiziert. Das ist vor allem bei Stammdaten meist der Fall, die nicht dynamisch erzeugt und gelöscht werden.

Auch bieten viele Datenbank Tools nur einen Abgleich über den Primary Key an. Auch hier kann es dann zu Problemen kommen, wenn die gleichen Stammdaten unter anderen Keys in mehreren Systemen sind.

Für den Zugriff brauchst du dann ohnehin auch noch weitere Indizes, zwecks eines performanten Zugriffs und ggf. auch um sicherzustellen, dass es keine Redundanzen gibt.

Ich persönlich würde definitiv davon absehen aus Prinzip immer einen synthetischen Schlüssel zu nehmen und den nur da nehmen, wo es wirklich sinnig ist.

Woher ich das weiß:Berufserfahrung – Softwareentwickler/Projektleiter seit 2012
Von Experte TheFamousSpy bestätigt

Ja, natürlich kannst Du jederzeit einen synthetischen Schlüssel im Sinne einer eindeutigen Objektidentifikation erzeugen. Nötig ist der Schritt natürlich nich timmer zwingend.


Domi307736 
Beitragsersteller
 09.01.2022, 00:29

Danke!

0

Es sei denn die Entität hat bereits einen geeigneten Schlüsselkandidaten dann braucht es keinen künstlichen PK


Domi307736 
Beitragsersteller
 09.01.2022, 00:21

Ja z.b die Steuernummer in einer Liste von Bürgern

0

Ja kannst du machen!


Domi307736 
Beitragsersteller
 09.01.2022, 00:19

Danke. ^^ Ich schreibe nur grade ein Referat und will keinen Käse erzählen.

0
Asporc  09.01.2022, 00:20
@Domi307736

Das ist eigentlich ein Standardvorgehen. Wenn du nicht sicher bist das du eine eindeutige Identifikation durch die anderen Datenbankfelder hast machst du einfach eine ID!

1
Schachpapa  09.01.2022, 00:25
@Asporc

Und schon muss man sich keine Gedanken mehr um ein geeignetes Schlüsselattribut machen. Ob das immer zum besten Ergebnis führt?

0