Kleine Ergänzung: Je nach RDMS ist der PrimaryKey auch ein Index, was beispielsweise dazu führt, dass Abfragen über Diesen die möglichen Datensätze sehr viel schneller aus einer Tabelle rausfischen, als es ohne Index der Fall wäre (WHERE Klausel).
wieso geht das schneller, wenn ich weiß wie der Key lautet brauche ich doch nicht suchen.
"WHERE (Datentabelle_Index = 15687)" findet den Datensatz dank binärem Suchen deutlich schneller als die Alternative, die darin bestehen würde ohne Index einen "Lauf" auf die Tabelle (a.k.a. table scan) zu machen.
Ich benutze ihn so, suche nach z.B. einen Namen, merke mir den Key und kann später wieder durch den Key zu diesem Satz zurückkehren.
Für die Namenssuche sind normalerweise zusätzliche Indizes anzulegen. Der PK sollte keine weitere Bedeutung haben.
Ich sehe es mehr als Ersatz für eine Datensatznummer die in anderen Datenbanken sowieso schon da ist.
Redundante Daten kann ich weiterhin reinschreiben, nur der Key ist dann unterschiedlich.
Oder irre ich hier.
Die "Datensatznummer, die sowieso da ist", kriegst Du nicht zu packen, wenn Du bspw. zwei Datensätze mit gleichem Inhalt in allen Datenfeldern hast.
Grüsse an Rolfi&Co.