Kardinalitäten und Beziehungstypen

Welche Arten von Beziehungen gibt es in Datenbanken und wie werden sie umgesetzt?

Beziehungen zwischen Tabellen: Das Grundgerüst der Datenorganisation

In relationalen Datenbanken werden Daten in Tabellen gespeichert, die oft miteinander in Verbindung stehen. Stell dir eine Tabelle für Personen und eine für "Bestellungen" vor. Jede Bestellung muss eindeutig einer bestellenden Person zugeordnet werden können. Diese logische Verknüpfung zwischen den Daten in verschiedenen Tabellen nennt man eine Beziehung. Beziehungen sind das Fundament, um Daten konsistent zu halten, Redundanzen zu vermeiden und komplexe Informationen sinnvoll abfragen zu können. Sie sorgen dafür, dass die Daten wie passende Puzzleteile ein stimmiges Gesamtbild ergeben. Die Art der Beziehung, auch Kardinalität genannt, beschreibt, wie viele Datensätze einer Tabelle mit wie vielen Datensätzen einer anderen Tabelle verknüpft sein können.

Eins-zu-Eins (1:1) Beziehungen: Einzigartige Paare

Bei einer 1:1-Beziehung ist jeder Datensatz in Tabelle A mit höchstens einem Datensatz in Tabelle B verknüpft, und umgekehrt. Diese Beziehungsart ist seltener.

  • Beispiel: Eine Tabelle "Mitarbeitende" und eine Tabelle "Firmenausweise". Jede mitarbeitende Person hat genau einen Firmenausweis, und jeder Firmenausweis ist genau einer Person zugeordnet.

Umsetzung im Datenbankdesign:

  • Eine Möglichkeit ist, den Primärschlüssel der einen Tabelle (z.B. MitarbeitendenNr aus "Mitarbeitende") als Fremdschlüssel in die andere Tabelle ("Firmenausweise") aufzunehmen.
  • Um die 1:1-Natur sicherzustellen, muss dieser Fremdschlüssel in der Tabelle "Firmenausweise" zusätzlich als eindeutig (UNIQUE) definiert werden.
  • Auswirkung: Führt zu zwei Tabellen, die eng miteinander verbunden sind. Manchmal werden solche Daten auch direkt in einer Tabelle zusammengefasst, es sei denn, es gibt Gründe für die Trennung (z.B. optionale Daten, unterschiedliche Zugriffsberechtigungen).

Eins-zu-Viele (1:N) Beziehungen: Der häufigste Fall

Die 1:N-Beziehung ist die am häufigsten vorkommende Beziehungsart. Ein Datensatz in Tabelle A (die "Eins"-Seite) kann mit beliebig vielen Datensätzen in Tabelle B (die "Viele"-Seite) verbunden sein, aber ein Datensatz in Tabelle B ist immer nur mit genau einem Datensatz in Tabelle A verknüpft.

  • Beispiel: Die Beziehung zwischen "Personen" und "Bestellungen". Eine Person kann viele Bestellungen aufgeben, aber jede einzelne Bestellung gehört immer nur zu einer einzigen Person.

Umsetzung im Datenbankdesign:

  • Der Primärschlüssel der Tabelle auf der "Eins"-Seite (z.B. PersonID aus der Tabelle "Personen") wird als Fremdschlüssel in die Tabelle auf der "Viele"-Seite (hier: "Bestellungen") aufgenommen.
  • In der Tabelle "Bestellungen" gäbe es also eine Spalte PersonID_FK (FK für Fremdschlüssel), die auf einen gültigen Wert in der PersonID-Spalte der "Personen"-Tabelle verweist.
  • Auswirkung: Führt zu zwei Tabellen. Die Tabelle auf der "Viele"-Seite enthält einen Fremdschlüssel, der die Verbindung zur "Eins"-Seite herstellt.

Viele-zu-Viele (N:M) Beziehungen: Komplexe Verknüpfungen

Bei einer N:M-Beziehung können viele Datensätze in Tabelle A mit vielen Datensätzen in Tabelle B verbunden sein, und umgekehrt.

  • Beispiele:
    • Die Beziehung zwischen "Studierenden" und "Kursen": Eine studierende Person kann viele Kurse belegen, und ein Kurs kann von vielen Studierenden belegt werden.
    • Die Beziehung zwischen "Produkten" und "Bestellungen": Eine Bestellung kann viele Produkte enthalten, und ein Produkt kann in vielen Bestellungen vorkommen.

Umsetzung im Datenbankdesign:

  • N:M-Beziehungen können nicht direkt zwischen zwei Tabellen mit einem einfachen Fremdschlüssel abgebildet werden.
  • Sie werden aufgelöst, indem eine dritte Tabelle, eine sogenannte Verknüpfungstabelle (auch Assoziationstabelle, Brückentabelle oder Zwischentabelle genannt), eingeführt wird.
  • Auswirkung: Führt zu mindestens drei Tabellen. Die Verknüpfungstabelle ist entscheidend für die korrekte Abbildung der Beziehung.

Wie löst man Viele-zu-Viele (N:M) Beziehungen auf?

Die Notwendigkeit einer Verknüpfungstabelle

Versuchen wir, die N:M-Beziehung zwischen "Studierenden" und "Kursen" ohne eine zusätzliche Tabelle darzustellen:

  • Würden wir in der "Studierenden"-Tabelle eine Spalte für die KursID hinzufügen, könnte jede studierende Person nur einen Kurs belegen (was eine 1:N-Beziehung wäre, nicht N:M).
  • Würden wir in der "Kurse"-Tabelle eine Spalte für die StudierendenID hinzufügen, könnte jeder Kurs nur von einer studierenden Person belegt werden (ebenfalls 1:N).

Um die Tatsache abzubilden, dass viele Studierende viele Kurse belegen können, benötigen wir eine separate Struktur, die jede einzelne Einschreibung (also die Kombination aus einer bestimmten studierenden Person und einem bestimmten Kurs) festhält.

Aufbau und Funktion der Verknüpfungstabelle

Die Verknüpfungstabelle löst die N:M-Beziehung auf, indem sie diese in zwei 1:N-Beziehungen umwandelt. Für das Beispiel "Studierende" und "Kurse" erstellen wir eine neue Tabelle, z.B. "Einschreibungen".

  • Fremdschlüssel: Diese Tabelle "Einschreibungen" enthält mindestens zwei Spalten, die als Fremdschlüssel dienen:
    • Ein Fremdschlüssel, der auf den Primärschlüssel der ersten Tabelle verweist (z.B. StudierendenID_FK, der auf die StudierendenID in der Tabelle "Studierende" zeigt).
    • Ein Fremdschlüssel, der auf den Primärschlüssel der zweiten Tabelle verweist (z.B. KursID_FK, der auf die KursID in der Tabelle "Kurse" zeigt).
  • Primärschlüssel der Verknüpfungstabelle: Die Kombination dieser beiden Fremdschlüssel (StudierendenID_FK und KursID_FK) bildet üblicherweise den zusammengesetzten Primärschlüssel der Verknüpfungstabelle. Dadurch wird sichergestellt, dass jede Kombination aus studierender Person und Kurs einzigartig ist (eine studierende Person kann sich nicht zweimal für denselben Kurs einschreiben).
  • Zusätzliche Attribute: Die Verknüpfungstabelle kann darüber hinaus weitere Attribute enthalten, die spezifisch für die Beziehung selbst sind. Im Beispiel "Einschreibungen" könnte dies das EinschreibeDatum oder die erreichte Note sein.

Ein Datensatz in der Tabelle "Einschreibungen" repräsentiert dann die Tatsache, dass eine bestimmte studierende Person in einem bestimmten Kurs eingeschrieben ist, eventuell mit Zusatzinformationen wie dem Datum der Einschreibung. Die Tabelle "Studierende" hat nun eine 1:N-Beziehung zu "Einschreibungen", und die Tabelle "Kurse" hat ebenfalls eine 1:N-Beziehung zu "Einschreibungen".

Lernziele

  • die verschiedenen Arten von Beziehungstypen (1:1, 1:N, N:M) in einem relationalen Datenmodell klassifizieren, indem ihre strukturellen Unterschiede, die Verwendung von Primär- und Fremdschlüsseln zu ihrer Realisierung und typische Anwendungsbeispiele erläutert werden.
  • die Notwendigkeit und Implementierung von Verknüpfungstabellen (Assoziationstabellen) zur Auflösung von N:M-Beziehungen erklären, indem die Umwandlung einer N:M-Beziehung in zwei 1:N-Beziehungen und der Aufbau der Verknüpfungstabelle mit Fremdschlüsseln, die auf die Primärschlüssel der beteiligten Tabellen verweisen, detailliert dargestellt wird.

Genug gelesen? Zeit, es wirklich zu können!

Die Theorie aus diesem Artikel ist die perfekte Basis. In der asyoube Lernplattform wendest du dieses Wissen an, bekommst persönliches Feedback und bereitest dich interaktiv auf deine Ausbildung oder deine Prüfungen vor.

Für Ausbilder & Unternehmen

Möchten Sie Ihr gesamtes Team mit asyoube ausbilden? Entdecken Sie unsere B2B-Lösung mit einfacher Verwaltung, Fortschritts-Tracking für Ihre Azubis und attraktiven Team-Preisen.