Zum Inhalt springen

Was sind Primärschlüssel und Fremdschlüssel?

  • Daten

Eine Datenbank benötigt Primärschlüssel und Fremdschlüssel zur Erstellung und Definition eines eindeutigen Datenmodells. Damit lassen sich Beziehungen zwischen einzelnen Tabellen in einer relationalen Datenbank aufbauen. Dadurch ist die Integrität, also die Korrektheit, Vollständigkeit und Konsistenz, einer Datenbank sichergestellt.

Was ist ein Primärschlüssel?

Jede Tabelle in einer Datenbank hat im Idealfall eine Spalte oder eine Kombination aus mehreren Spalten, die einen eindeutigen Wert für einen Datensatz aufweisen. Diese Spalte oder mehrere gemeinsame Spalten werden als Primärschlüssel der Tabelle bezeichnet. Er sorgt dafür, dass jeder Datensatz, also jede Zeile der Tabelle, eindeutig identifiziert werden kann. Das bietet die Möglichkeit mithilfe einer SQL-Abfrage auf einzelne Datensätze zuzugreifen.

Wenn eine Tabelle keine Spalte mit eindeutigen Werten besitzt, können auch mehrere Spalten genutzt werden, um diese Eindeutigkeit herzustellen. Dadurch werden verschiedene Arten von primären Schlüsseln unterschieden.

Welche Arten von primären Schlüsseln gibt es?

Je nachdem, ob ein Attribut eindeutige Werte oder nicht, unterscheidet man verschiedene Arten von primären Schlüsseln.

Eindeutiger Schlüssel

Wenn es genau eine Spalte bestehend aus eindeutigen Werten gibt, dann hat man einen eindeutigen Schlüssel. Wenn es mehrere solcher Spalten geben sollte, kann man sich entscheiden, welches der Attribute man nutzen will. Häufige Beispiele für eindeutige Schlüssel sind beispielsweise Sozialversicherungsnummern, Auftragsnummern oder Ausweisnummern.

Eindeutiger Schlüssel | Quelle: Autor

In dieser Tabelle weist nur das Attribut “Auftragsnummer” eindeutige Werte auf und bietet sich auch deshalb an, weil die Auftragsnummer weiterhin einzigartig bleiben wird.

Zusammengesetzter Schlüssel

Wenn es keines dieser Attribute in einer Tabelle gibt, das lediglich eindeutige Werte aufweist, muss man möglicherweise auf einen zusammengesetzten Schlüssel zurückgreifen. Dabei wird durch die Kombination aus verschiedenen Attributen eindeutige Werte für eine Zeile erzeugt.

Zusammengesetzter Schlüssel | Quelle: Autor

Mit einer kleinen Änderung zu der vorherigen Tabelle hat die Spalte “Auftrags ID” nicht mehr eindeutige Werte, da eine Auftragsnummer öfters auftreten kann, wenn die Bestellung mehrere Positionen hat. Aus diesem Grund muss der primäre Schlüssel aus zwei zusammengesetzten Attributen bestehen. Für jeden Auftrag gibt es nämlich nur einen Datensatz für die erste Position. Somit sind die zwei Spalten “Auftrags ID” und “Positions ID” zusammen wieder eindeutig.

Künstlicher Schlüssel

In seltenen Fällen kann es passieren, dass auch das Zusammenziehen mehrerer Spalten nicht zu den gewünschten, eindeutigen Werten führt. Dann muss man darauf zurückgreifen eine neue Spalte anzulegen, in der man einen künstlichen Schlüssel anlegt. Dieser kann beispielsweise die Datensätze einfacher durchnummerieren.

Künstlicher Schlüssel | Quelle: Autor

In dieser leicht abgewandelten Tabelle gibt es nun keine einzelne Spalte und auch keine Kombination aus Attributen, die eindeutig sind. Deshalb fügt man die zusätzliche Spalte “ID” ein, die die einzelnen Datensätze durchnummeriert. Somit enthält die Spalte “ID” nur eindeutige Werte und jeder Datensatz kann eindeutig angesprochen werden.

Was ist ein Fremdschlüssel?

Der Fremdschlüssel ist ein Attribut oder eine Kombination aus mehreren Attributen, das in einer anderen Tabelle der primäre Schlüssel ist. Dadurch lassen sich in Datenbanken Verbindungen zwischen Tabellen herstellen. Abhängig vom primären Schlüssel in der anderen Tabelle, kann es sich um einen zusammengesetzten oder eindeutigen Fremdschlüssel handeln.

Fremdschlüssel Beziehung zweier Tabellen | Quelle: Autor

Wichtig ist dabei jedoch zu erwähnen, dass der fremde Schlüssel in der eigenen Tabelle nicht eindeutig sein muss, sondern Werte auch öfters vorkommen können. Mithilfe von solchen Verbindungen können große Tabellen, in mehrere, kleinere Tabellen aufgespalten werden, was sowohl Speicherplatz spart, als auch der Übersichtlichkeit dient.

Was ist der Unterschied zwischen Primär- und Fremdschlüssel?

In Datenbankmanagementsystemen werden Primär- und Fremdschlüssel verwendet, um Beziehungen zwischen Tabellen herzustellen. Obwohl beide Arten von Beschränkungen zur Gewährleistung der Datenintegrität verwendet werden, dienen sie unterschiedlichen Zwecken.

Ein Primärschlüssel ist eine Spalte oder eine Gruppe von Spalten in einer Tabelle, die jede Zeile in dieser Tabelle eindeutig identifiziert. Es handelt sich um einen eindeutigen Bezeichner, der innerhalb derselben Tabelle nicht dupliziert werden kann. Ein Primärschlüssel wird verwendet, um die Integrität von Entitäten zu gewährleisten, was bedeutet, dass jede Zeile in der Tabelle eine eindeutige Entität darstellt. Primärschlüssel sind für die Indizierung, Sortierung und Suche von Daten unerlässlich und werden auch verwendet, um Beziehungen zwischen Tabellen herzustellen.

Ein Fremdschlüssel hingegen ist eine Spalte oder ein Satz von Spalten in einer Tabelle, die auf den Primärschlüssel einer anderen Tabelle verweist. Er wird verwendet, um die referenzielle Integrität zu erzwingen, was bedeutet, dass die Werte in der Fremdschlüsselspalte mit den Werten in der Primärschlüsselspalte der referenzierten Tabelle übereinstimmen müssen. Auf diese Weise stellen diese Beziehungen zwischen Tabellen her und gewährleisten, dass die Daten über mehrere Tabellen hinweg konsistent bleiben.

Hier sind einige wesentliche Unterschiede zwischen den beiden Schlüsselarten:

  • Primärschlüssel werden verwendet, um eindeutige Zeilen innerhalb einer Tabelle zu identifizieren, während Fremdschlüssel verwendet werden, um Beziehungen zwischen Tabellen herzustellen.
  • Primärschlüssel müssen eindeutig sein und dürfen keine Nullwerte enthalten, während Fremdschlüssel Nullwerte enthalten können.
  • Primärschlüssel werden immer auf Tabellenebene definiert, während Fremdschlüssel entweder auf Tabellen- oder auf Spaltenebene definiert werden können.
  • Primärschlüssel können in anderen Tabellen als Fremdschlüssel verwendet werden, während Fremdschlüssel nur auf Primärschlüssel in anderen Tabellen verweisen können.

Zusammenfassend lässt sich sagen, dass sowohl beide Schlüssel wichtige Werkzeuge sind, um die Datenintegrität zu gewährleisten und Beziehungen zwischen Tabellen in einer Datenbank herzustellen. Während Primärschlüssel verwendet werden, um eindeutige Zeilen innerhalb einer Tabelle zu identifizieren, werden Fremdschlüssel verwendet, um Beziehungen zwischen Tabellen zu erstellen, indem auf die ersteren in anderen Tabellen verwiesen wird. Das Verständnis der Unterschiede zwischen diesen beiden Arten von Schlüsseln ist für den Entwurf einer gut strukturierten und effizienten Datenbank unerlässlich.

Was ist das Stern-Schema?

Bei großen Datenmengen, die in Datenbanken oder im Data Warehouse gespeichert sind, wird es schnell unübersichtlich und Abfragen sind nicht nur kompliziert, sondern dauern auch relativ lange. Daher sind intelligente Wege gefragt, um Tabellen zu erstellen, damit Speicherplatz gespart werden kann und Abfragen schneller erfolgen können.

Ein erster Ansatz dazu ist das Sternschema, das sternförmige Tabellenstrukturen beinhaltet. Es wird zwischen Fakten und Dimensionen unterschieden:

  • Die Fakten sind Kennzahlen oder Messwerte, die analysiert oder abgebildet werden sollen. Sie stehen im Mittelpunkt der Analyse und befinden sich in der zentralen Faktentabelle. Diese besteht neben den Kennzahlen auch aus den Schlüsseln, die sich auf die umliegenden Dimensionen beziehen. Fakten sind im betriebswirtschaftlichen Umfeld z.B. die Absatzmenge, der Umsatz oder der Auftragseingang.
  • Die Dimensionen hingegen sind die Eigenschaften der Fakten und können zur Visualisierung der Kennzahlen verwendet werden. In diesen werden dann die verschiedenen Detaillierungsgrade der Dimensionen gespeichert und so kann Speicherplatz gespart werden, da die Details nur einmal in der Dimensionstabelle gespeichert werden müssen. Dimensionen im Unternehmensumfeld sind z.B. Kundeninformationen, das Datum der Bestellung oder Produktinformationen.

Das Sternschema verzichtet absichtlich auf die Normalisierung, die normalerweise ein wichtiges Konzept in der Datenbanktheorie ist. Die dritte Normalform wird nämlich bei einem Sternschema verletzt. Andererseits ist die Struktur besonders effizient und liefert auch bei komplexen Abfragen schnelle Antworten.

Was ist das Schneeflocken-Schema?

Das sogenannte Schneeflockenschema ist eine weitere Ausbaustufe des Sternschemas mit dem Ziel, die Tabellen vollständig zu normalisieren und damit die Nachteile des Sternschemas bis zu einem gewissen Grad zu umgehen. Die Struktur der Schneeflocke ergibt sich, kurz gesagt, daraus, dass die Dimensionstabellen noch weiter untergliedert und klassifiziert werden. Die Faktentabelle bleibt jedoch unverändert.

In unserem Beispiel könnte dies dazu führen, dass die Dimensionstabelle mit den Lieferadressen weiter in Land, Bundesland und Stadt unterteilt wird. Damit werden die Tabellen normalisiert und auch die dritte Normalform ist erfüllt, allerdings auf Kosten weiterer Verzweigungen. Diese sind insbesondere bei einer späteren Abfrage nachteilig, da diese mit komplexen Joins wieder zusammengesetzt werden müssen.

Die weitere Verzweigung führt also dazu, dass die Daten weniger redundant gespeichert werden und somit die Datenmenge im Vergleich zum Sternschema wieder reduziert wird. Dies geht allerdings auf Kosten der Performance, da die Dimensionstabellen bei der Abfrage wieder zusammengeführt werden müssen, was oft sehr zeitaufwendig ist.

Das solltest Du mitnehmen

  • Der Primärschlüssel ist ein oder mehrere Attribute, die jeden Datensatz eindeutig identifizieren.
  • Der Fremdschlüssel besteht aus einem oder mehreren Attributen, die in einer anderen Tabelle ein primärer Schlüssel sind. Dadurch lassen sich Verbindungen zwischen Tabellen in einer Datenbank herstellen.
  • Je nach Aufbau und Verbindung der Tabellen unterscheidet man das Stern- und Schneeflocken Schema.
Kreisdiagramm / Pie Chart

Was ist ein Kreisdiagramm?

Visualisieren Sie Datenproportionen mit Kreisdiagrammen: Eine intuitive und effektive Methode, um die relative Verteilung zu verstehen.

Fuzzy Logik / Fuzzy Logic

Was ist die Fuzzy Logic?

Entdecken Sie die Leistungsfähigkeit der Fuzzy Logic in Technik und KI. Erfahren Sie, wie sie funktioniert und welche Vor- und Nachteile sie hat.

Swagger UI

Was ist Swagger UI?

Erlernen Sie die API-Dokumentation mit Swagger UI. Erfahren Sie, wie Sie Ihre Dokumentation für eine gute Benutzerfreundlichkeit anpassen.

Cosine Similarity / Kosinus Ähnlichkeit

Was ist die Kosinus-Ähnlichkeit?

Erschließen Sie das Potenzial der Kosinus-Ähnlichkeit: Erforschen Sie effiziente Techniken der Ähnlichkeitsmessung und erweitern Sie Ihr Wissen.

Apache Flink

Was ist Apache Flink?

Entdecken Sie Apache Flink: Nutzen Sie den Artikel um in Echtzeit-Stream-Verarbeitung und Big-Data-Analysen einzutauchen. Erfahren Sie mehr!

Stream Processing

Was ist Stream Processing?

Einführung in Stream Processing, seine Anwendungen und Unterschiede zur Stapelverarbeitung.

Andere Beiträge zum Thema Primärschlüssel und Fremdschlüssel

Das Logo zeigt einen weißen Hintergrund den Namen "Data Basecamp" mit blauer Schrift. Im rechten unteren Eck wird eine Bergsilhouette in Blau gezeigt.

Verpass keine neuen Beiträge!

Wir versenden keinen Spam! Lies die Details gerne in unserer Datenschutzrichtlinie nach.

Schlagwörter:
Cookie Consent mit Real Cookie Banner