5 Punkte von GN⁺ 2024-06-06 | 2 Kommentare | Auf WhatsApp teilen
  • Natürliche (Natural) Schlüssel sind Schlüssel, die in Datenbanken verwendet werden, um Eindeutigkeit zu gewährleisten
  • Natürliche Schlüssel basieren auf realen Daten wie Namen, Städten, Jahren usw.
  • In einer Datenbank der 50 besten Restaurants der Welt könnten zum Beispiel restaurantName, cityName und year als natürlicher Schlüssel verwendet werden
  • Natürliche Schlüssel können Eindeutigkeit jedoch möglicherweise nicht garantieren. Zum Beispiel kann es in mehreren Städten Restaurants mit demselben Namen geben

Identität

  • Natürliche Schlüssel müssen nicht nur Eindeutigkeit, sondern auch Identität gewährleisten
  • So könnten zum Beispiel die Fahrgestellnummer eines Autos oder eine persönliche Identifikationsnummer (CPR-Nummer) als natürlicher Schlüssel verwendet werden
  • Dieselbe Person kann jedoch mehrere Identifikationsnummern haben. In Dänemark kann etwa eine trans Person eine neue CPR-Nummer erhalten

Dokumentationsfehler

  • Natürliche Schlüssel sind anfällig für Dokumentationsfehler
  • Es kann zu Dateneingabefehlern, Tippfehlern durch Benutzer oder Fehlern bei der Datenkonvertierung kommen
  • Das System muss solche Fehler korrigieren können. Deshalb ist es nicht sinnvoll, externe Schlüssel als Datenbankschlüssel zu verwenden

Fazit

  • Der Einsatz natürlicher Schlüssel beim Datenbankdesign ist keine gute Idee
  • Datenfehler können auftreten, und solche Fehler müssen korrigiert werden können
  • Daher ist es ratsam, in Datenbanktabellen immer künstliche Schlüssel zu verwenden

Meinung von GN⁺

  • Probleme natürlicher Schlüssel: Natürliche Schlüssel garantieren möglicherweise weder Eindeutigkeit noch Identität und sind anfällig für Dateneingabefehler.
  • Vorteile künstlicher Schlüssel: Künstliche Schlüssel gewährleisten Eindeutigkeit und Identität und erleichtern die Korrektur von Datenfehlern.
  • Aspekte bei der Verwendung von ORM: Beim Einsatz von ORM-Bibliotheken ist die Verwendung künstlicher Schlüssel einfacher. Da ORMs die Datenbankstruktur teilweise festlegen, ist die Nutzung künstlicher Schlüssel effizienter.
  • Produkte mit ähnlicher Funktion: Auch andere Datenbank-Design-Tools oder ORM-Bibliotheken empfehlen die Verwendung künstlicher Schlüssel, zum Beispiel Hibernate oder Entity Framework.
  • Zu beachten bei der Einführung der Technik: Bei der Einführung eines neuen Datenbankdesigns sollten die Nachteile natürlicher Schlüssel berücksichtigt werden; die Verwendung künstlicher Schlüssel ist empfehlenswert. Künstliche Schlüssel sichern die Datenintegrität und erleichtern die Korrektur von Fehlern.

2 Kommentare

 
GN⁺ 2024-06-06
Hacker-News-Kommentare
  • Eindeutige, kurze und gut lesbare IDs: Bevorzugt werden IDs wie cus_MJA953cFzEuO1z, wie sie Stripe verwendet. Es gibt auch Möglichkeiten, sie in JavaScript/TypeScript zu erzeugen.
  • Persönliche Identifikationsnummern: Vergleich der dänischen CPR-Nummer mit der US-amerikanischen SSN. Eine SSN ist nicht eindeutig, kann geändert werden und kann auch an Nicht-US-Bürger ausgegeben werden. Es wird empfohlen, sie nicht als Datenbankschlüssel zu verwenden.
  • Aliasse und Audit-Logs: Wenn natürliche Schlüssel wie die dänische CPR-Nummer verwendet werden, ist eine separate Tabelle erforderlich, um Änderungen zu protokollieren. Auch URLs können als natürliche Schlüssel verwendet werden, aber bei Änderungen muss eine Redirect-Tabelle erstellt werden.
  • Grenzen natürlicher Schlüssel: Wenn sich ein eindeutiger Identifikator ändert, müssen alle zugehörigen Informationen nachverfolgt werden. Fügt man künstliche Schlüssel hinzu, gibt es noch mehr Informationen, die nachverfolgt werden müssen. Datenmodellierung sollte die reale Welt widerspiegeln.
  • Natürliche Schlüssel und Datenschutz: Wenn natürliche Schlüssel personenbezogene Daten enthalten, können diese sich über Fremdschlüssel auch in andere Tabellen ausbreiten.
  • Beispiel Gaming-Tag: Ein Beispiel für die Verwendung eines Gaming-Tags im PlayStation Network als natürlicher Schlüssel. Wenn sich das Gaming-Tag nicht ändert, kann es als eindeutiger Identifikator verwendet werden.
  • Beispiel aus dem Gesundheitswesen: Wenn registriertes Personal versehentlich eine falsche persönliche Gesundheitsnummer (PHN) eingibt, entstehen Probleme. Mit einem künstlichen Schlüssel kann dies später korrigiert werden.
  • Mangelnde Kontrollierbarkeit natürlicher Schlüssel: Namen, Adressen, offizielle Registrierungsnummern usw. lassen sich nicht kontrollieren und sind daher nicht vertrauenswürdig. Es sollte ein System mit eindeutigen Schlüsseln verwendet werden.
  • Verwendung künstlicher Schlüssel: Wenn in jeder Tabelle ein eindeutiges ID-Feld verwendet wird, lassen sich Probleme leichter lösen. Da sich Daten und Beziehungen häufig ändern, ist es schwer, natürlichen Schlüsseln zu vertrauen.
  • Änderbarkeit und eindeutige IDs: Änderbarkeit bedeutet, dass über die Zeit hinweg ein gemeinsamer Identifikator benötigt wird. Datenbanken sollten explizite Surrogate Keys im Schema enthalten.
 
jsonobject 2024-06-07

Ich empfehle, auch bei künstlichen Schlüsseln TSID zu verwenden, da es für verteilte Umgebungen wie globale Regionen vorbereitet ist. Ich verwende TSID in MySQL und DynamoDB als PK.

https://jsonobject.hashnode.dev/using-tsid-as-database-pk