Benutzer-Werkzeuge

Webseiten-Werkzeuge


jg10:nzum:start

m:n-Relationen

Zwischen Lehrkraft und Fach gibt es die Beziehung unterrichtet.

  • Eine Lehrkraft unterrichtet mehrere Fächer.
  • Ein Fach wird von mehreren Lehrkräften unterrichtet.

In so einem Fall spricht man von einer n:m-Beziehung.

Dass auf einer Seite der Beziehung ein "m" statt eines "n" verwendet wird ist eine Kuriosität, deren Etymologie ich bisher nicht ergründen konnte. Logischer (und in der englischen Literatur selten auch verwendet) wäre die Bezeichnung "n:n-Relation". Es ist übrigens ohne Bedeutung, auf welcher Seite das "m" und auf welcher das "n" steht.

Speichern einer m:n-Relation in der Datenbank

Es ist wichtig, dass Du Dir zuerst klarmachst, wie es nicht funktionieren kann: Es reicht weder, in der Tabelle Lehrkraft eine Fremdschlüsselspalte fürs Fach einzuführen, noch, in der Tabelle Fach eine Fremdschlüsselspalte für die Lehrkraft einzuführen, denn: In jeder Zelle kann ja nur ein einziger Wert gespeichert werden!

  • Herr Arndt unterrichtet Mathe, Deutsch und Informatik. Wie soll das in den obigen Tabellen eingetragen werden?
  • Zudem unterrichtet auch Frau Bunt alle drei Fächer…

Lösung: Erstellen einer Beziehungstabelle

Merke:

  • Eine 1:n-Beziehung zwischen den Tabellen A und B bilden wir im Tabellenschema ab, indem wir in der Tabelle B eine Fremdschlüsselspalte hinzufügen, in der wir Primärschlüsselwerte der Spalte A speichern.

  • Eine n:m-Beziehung zwischen den Tabellen A und B bilden wir ab, indem wir eine zusätzliche Beziehungstabelle erstellen, die zwei Fremdschlüsselspalten enthält, die Primärschlüsselwerte von A bzw. von B speichern.

Üblicherweise verwendet man als Primärschlüssel der Beziehungstabelle die Kombination beider Fremdschlüsselspalten. Es kommt in der Praxis aber auch vor, dass Beziehungstabellen zusätzlich noch einen künstlichen Primärschlüssel erhalten.

Aufgabe 1

Zeichne zu folgenden Relationen das Klassendiagramm (ohne Attribute) und schreibe dann das Tabellenschema (Primärschlüssel, notwendige Fremdschlüssel und mindestens ein weiteres Attribut):

  1. Kind wird geboren von Mutter
  2. CD enthält Song
  3. Schülerin bucht Wahlkurs
  4. Person spielt Instrument
  5. Planet umkreist Sonne
    (Bemerkung: Jeder Stern ist eine Sonne und viele davon haben Planeten)
  6. Jäger jagt Beute
    (Bemerkung: Es geht um Tierarten)
  7. Schüler/in geht in Klasse
  8. Lehrkraft unterrichtet Klasse
  9. Legierung besteht aus Metall
  10. Molekül besteht aus Element

Beispiel: Tierart isst Pflanze

Klassendiagramm (ohne Attribute):


Tabellenschema (Primärschlüssel, Fremdschlüssel und mind. ein weiteres Attribut):

  • Tierart [id: int, name: varchar(100)]
  • Pflanze [id: int, bezeichnung: varchar(100)]
  • isst [tierart_id: int, pflanze_id: int]

Lösungen

jg10/nzum/start.txt · Zuletzt geändert: 2023/10/12 09:04 von Martin Pabst

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki