Zum Hauptinhalt springen

Kardinalität

Im letzten Abschnitt haben Sie gelernt, wie Sie die Tabellen legodudes und haustiere miteinander kombinieren können, um herauszufinden, welche Haustiere zu welchem Legodude gehören. Zwischen den beiden Tabellen bestehen folgende Beziehungen:

  • Ein Legodude kann mehrere Haustiere besitzen.
  • Ein Haustier gehört immer genau einem Legodude.

Das ist eine sogenannte 1:n-Beziehung (ausgesprochen: eins zu n). Das bedeutet, dass ein Eintrag in der ersten Tabelle (legodudes) mit mehreren Einträgen in der zweiten Tabelle (haustiere) verknüpft sein kann, während ein Eintrag in der zweiten Tabelle immer nur mit genau einem Eintrag in der ersten Tabelle verknüpft ist. Solche «Mengenangaben» bezeichnet man als Kardinalitäten. Die Kardinalität 1:n bedeutet also: Wenn wir die beiden Tabellen mit einem JOIN verknüpfen, können wir davon ausgehen, dass jedes Haustier im Ergebnis genau einmal vorkommt, während ein Legodude je nach Anzahl seiner Haustiere mehrmals vorkommen kann.

Anders wäre es beispielsweise in der folgenden Datenbank:

profile
person_idalterbioprofilbild
130Musikliebhaberin und Künstlerin.alice.jpg
225Tanzt gerne und reist viel.bob.png
330Maler und Fotografcharlie.png
428Sängerin und Tänzerin 🎤💃diana.png

Hier bestehen folgende Beziehungen:

  • Eine Person hat genau ein Profil.
  • Ein Profil gehört immer genau einer Person.

Hier ist die Kardinalität 1:1 (ausgesprochen: eins zu eins). Das bedeutet, dass ein Eintrag in der ersten Tabelle (personen) mit genau einem Eintrag in der zweiten Tabelle (profile) verknüpft ist, und umgekehrt. Wenn wir die beiden Tabellen mit eine JOIN verknüpfen, können wir also davon ausgehen, dass jede Person im Ergebnis genau einmal vorkommt, und jedes Profil ebenfalls genau einmal.

Zuletzt betrachten wir nochmal die Datenbank mit den verschiedenen Kursen aus den vorherigen Abschnitt:

personen
idnamealtertalent
1Alice30singen
2Bob25tanzen
3Charlie30malen
4Diana28singen
5Bob25kegeln
6Bob25kegeln
einschreibungen
person_idkurs_ideinschreibungsdatum
212024-08-15
422024-09-20
512024-08-20
532024-08-21
kurse
idnamedatumpreis
1Python Programmieren2024-09-01199
2Datenbanken Grundlagen2024-10-15249
3Webentwicklung mit HTML & CSS2024-11-20179

Hier bestehen folgende Beziehungen:

  • Eine Person kann sich für mehrere Kurse einschreiben.
  • Ein Kurs kann mehrere Personen eingeschrieben haben.

Die Kardinalität ist hier n:m (ausgesprochen: n zu m). Das bedeutet, dass ein Eintrag in der ersten Tabelle (personen) mit mehreren Einträgen in der zweiten Tabelle (kurse) verknüpft sein kann, und umgekehrt. Bei der Planung unserer Datenbank stellen uns diese n:m-Beziehung vor ein Problem, wie Sie im nächsten Abschnitt sehen werden.

Kardinalitäten im Überblick
KardinalitätBeschreibungVerhalten im JOIN
1:nEin Eintrag in der ersten Tabelle kann mit mehreren Einträgen in der zweiten Tabelle verknüpft sein, während ein Eintrag in der zweiten Tabelle immer nur mit genau einem Eintrag in der ersten Tabelle verknüpft ist.Ein Eintrag aus der zweiten Tabelle kommt im Ergebnis immer genau einmal vor, während ein Eintrag aus der ersten Tabelle je nach Anzahl der zugehörigen Einträge aus der zweiten Tabelle mehrmals vorkommen kann.
1:1Ein Eintrag in der ersten Tabelle ist mit genau einem Eintrag in der zweiten Tabelle verknüpft, und umgekehrt.Ein Eintrag aus der ersten Tabelle kommt im Ergebnis genau einmal vor, und ein Eintrag aus der zweiten Tabelle ebenfalls genau einmal.
n:mEin Eintrag in der ersten Tabelle kann mit mehreren Einträgen in der zweiten Tabelle verknüpft sein, und umgekehrt.Ein Eintrag aus der ersten Tabelle kann je nach Anzahl der zugehörigen Einträge aus der zweiten Tabelle mehrmals vorkommen, und umgekehrt.

Quiz

Testen Sie Ihr Wissen!

Lösen Sie das Quiz zum Thema Kardinalität. Am Schluss erhalten Sie ein Lösungswort, das Sie unten eintragen und überprüfen können.

Achtung: Das Quiz selbst wird nicht gespeichert!

Laden...