Kardinalitäten und Beziehungstypen

4 min 2 Abschnitte
Was du nach diesem Konzept kannst 3
  1. Du bist in der Lage, das Konzept der Kardinalität in der Datenmodellierung zu erklären ,

    indem die Bedeutung von Mengenangaben bei Beziehungen zwischen Entitäten und deren Auswirkung auf das relationale Datenbankdesign beschrieben werden.

  2. Du bist in der Lage, die verschiedenen Beziehungstypen (1:1, 1:N, N:M) im relationalen Datenmodell zu vergleichen ,

    indem ihre strukturellen Unterschiede, die spezifische Platzierung von Primär- und Fremdschlüsseln zu ihrer Realisierung sowie praxisnahe Anwendungsbeispiele gegenübergestellt werden.

  3. Du bist in der Lage, die Auflösung von N:M-Beziehungen durch Verknüpfungstabellen zu erklären ,

    indem die Umwandlung einer N:M-Beziehung in zwei 1:N-Beziehungen und der Aufbau der Assoziationstabelle mit entsprechenden Fremdschlüsseln detailliert dargestellt werden.

Wie werden Beziehungen und Kardinalitäten in Datenbanken klassifiziert?

Kardinalitäten: Geschäftsregeln im Datenmodell

In der Datenmodellierung definieren Kardinalitäten die genauen Mengenangaben einer Beziehung zwischen zwei Entitäten. Sie übersetzen reale Geschäftsregeln in ein logisches Datenbankdesign. Wenn du ein Entity-Relationship-Diagramm (ERD) betrachtest, wie in der zugehörigen Grafik dargestellt, visualisieren diese Kardinalitäten, wie viele Datensätze einer Tabelle mit Datensätzen einer anderen Tabelle verknüpft sein dürfen.

In der Praxis begegnen dir meist zwei Notationen:

  • Min-Max-Notation: Gibt die exakte Mindest- und Maximalbeteiligung an. Ein (1, N) an der Entität "Bestellung" bedeutet: Eine Kundschaft muss mindestens eine und kann maximal N (viele) Bestellungen aufgeben.
  • Krähenfuß-Notation (Crow's Foot): Visualisiert die Beziehung durch Linienenden. Ein einfacher Strich steht für "Eins", ein aufgefächerter Krähenfuß für "Viele". Ein Kreis (O) symbolisiert eine optionale Beteiligung ("Null").

Die 1:1-Beziehung (Eins-zu-Eins)

Bei einer 1:1-Beziehung ist ein Datensatz aus Tabelle A mit exakt einem Datensatz aus Tabelle B verknüpft – und umgekehrt. Diese Beziehungsart wird in der Praxis oft genutzt, um sehr breite Tabellen aufzuteilen oder sensible Daten (wie Gehaltsinformationen) von allgemeinen Personaldaten zu trennen.

  • Beispiel: Die Beziehung zwischen Mitarbeitende und Firmenwagen (sofern ein Auto exklusiv einer Person gehört und jede Person maximal ein Auto hat).
  • Strukturelle Umsetzung: Du platzierst den Primärschlüssel der einen Tabelle als Fremdschlüssel in der anderen. Um die strikte 1:1-Bedingung zu erzwingen, musst du diesen Fremdschlüssel zwingend mit einem UNIQUE-Constraint versehen. So verhinderst du auf Datenbankebene, dass derselbe Firmenwagen zwei verschiedenen Mitarbeitenden zugewiesen wird.

Die 1:N-Beziehung (Eins-zu-Viele)

Die 1:N-Beziehung ist der absolute Standardfall in relationalen Datenbanken. Ein Datensatz auf der "Eins"-Seite kann mit beliebig vielen Datensätzen auf der "Viele"-Seite verknüpft sein. Ein Datensatz der "Viele"-Seite gehört aber immer zu exakt einem Datensatz der "Eins"-Seite.

  • Beispiel: Abteilungen und Mitarbeitende. Eine Abteilung hat viele Mitarbeitende, aber eine mitarbeitende Person gehört zu genau einer Abteilung.
  • Strukturelle Umsetzung: Der Fremdschlüssel wird immer auf der "Viele"-Seite platziert. Die Tabelle Mitarbeitende erhält also eine Spalte Abteilungs_ID als Fremdschlüssel, die auf den Primärschlüssel der Tabelle Abteilungen verweist. Ein UNIQUE-Constraint wäre hier falsch, da sich die Abteilungs_ID bei den Mitarbeitenden wiederholen muss.

Die N:M-Beziehung (Viele-zu-Viele)

Bei einer N:M-Beziehung können viele Datensätze aus Tabelle A mit vielen Datensätzen aus Tabelle B in Verbindung stehen.

  • Beispiel: Studierende und Kurse. Eine studierende Person belegt mehrere Kurse, und ein Kurs wird von mehreren Studierenden besucht.
  • Strukturelle Umsetzung: Diese Beziehungsart lässt sich nicht direkt durch einen einfachen Fremdschlüssel in einer der beiden Tabellen abbilden. Würdest du die Kurs_ID als Spalte bei den Studierenden eintragen, könnte jede Person nur einen einzigen Kurs belegen. Für die Umsetzung in einer relationalen Datenbank ist daher ein struktureller Zwischenschritt zwingend erforderlich.
Kardinalitäten und Beziehungstypen — dec-databases-relational-databases-data-modeling-cardinalities-and-relationship-types_page1.svg

Wie werden komplexe N:M-Beziehungen in der Praxis aufgelöst?

Die Notwendigkeit der Verknüpfungstabelle

Da relationale Datenbanken N:M-Beziehungen nicht nativ über einfache Fremdschlüssel in den Ursprungstabellen abbilden können, musst du diese Beziehung strukturell auflösen. Das geschieht durch die Einführung einer dritten Tabelle: der Verknüpfungstabelle (auch Assoziationstabelle oder Zwischentabelle genannt).

Diese Tabelle fungiert als Brücke, wie in der Grafik zur N:M-Auflösung visualisiert. Sie löst die komplexe N:M-Beziehung auf, indem sie diese in zwei separate 1:N-Beziehungen umwandelt. Die Ursprungstabellen stehen nun nicht mehr direkt miteinander in Verbindung, sondern jeweils in einer 1:N-Beziehung zur neuen Verknüpfungstabelle.

Aufbau und Implementierung der Verknüpfungstabelle

Um die Verknüpfungstabelle für das Beispiel Studierende und Kurse (nennen wir sie Einschreibungen) aufzubauen, nutzt du dein Wissen über referentielle Integrität:

  1. Fremdschlüssel importieren: Die Tabelle Einschreibungen erhält zwei Fremdschlüssel-Spalten. Eine verweist auf den Primärschlüssel von Studierende (z. B. Studierenden_ID), die andere auf den Primärschlüssel von Kurse (z. B. Kurs_ID).
  2. Primärschlüssel definieren: Oft bilden diese beiden Fremdschlüssel zusammen einen zusammengesetzten Primärschlüssel für die Verknüpfungstabelle. Das stellt sicher, dass sich eine Person nicht doppelt für exakt denselben Kurs einschreiben kann.
  3. Beziehungsspezifische Attribute: Die Verknüpfungstabelle ist der perfekte Ort für Daten, die weder nur zur Person noch nur zum Kurs gehören, sondern nur für diese spezifische Kombination gültig sind. Typische Beispiele hierfür sind das EinschreibeDatum oder die erreichte Note.
Kardinalitäten und Beziehungstypen — dec-databases-relational-databases-data-modeling-cardinalities-and-relationship-types_page2.svg

Teste dein Wissen

Du entwirfst als Datenbankentwickler:in ein neues ER-Modell für einen Onlineshop. Welchen primären Zweck erfüllen die Kardinalitäten in deinem Diagramm?

Bereit für mehr?

Thema verstanden?

Teste dein Wissen interaktiv in unserer App. 7 Tage kostenlos, dann nur 5 € im Monat.