Übungsaufgabe: Gymnasium 8.-12. Klasse

1. Szenario

Ein Gymnasium benötigt ein System zur Verwaltung von Lehrkräften, Schülern und Kursen:

  1. Personen: Lehrer und Schüler haben Namen und eine eindeutige ID (LNr / SNr).
  2. Unterricht: Lehrer unterrichten Mathe/Informatik in Klassen (8-12). Da Lehrer oft mehrere Klassen haben und Klassen mehrere Lehrer, ist dies eine n:m-Beziehung. Wichtig: Zeitpunkt und Raum müssen gespeichert werden.
  3. Vertretung: Lehrer können Kollegen vertreten (1:n rekursiv).
  4. Spezialkurse: Die Kurse “IT-KI” und “Höhere Mathematik” finden wöchentlich statt. Schüler können sich in beliebig viele Kurse einschreiben. Jeder Kurs hat genau einen leitenden Lehrer.

2. Aufgabenstellung

  1. Erstellen Sie ein ER-Modell.
  2. Bestimmen Sie Spezialisierungstyp (Totalität/Disjunktheit).
  3. Schreiben Sie SQL-Abfragen für die Kursverwaltung.

3. Lösungen (interaktiv)

📂 Lösung: ER-Modell Logik
  • Entitäten: Lehrer, Schüler, Klasse, Spezialkurs.
  • Beziehung “unterrichten”: n:m zwischen Lehrer und Klasse (Attribute: Fach, Raum, Zeit).
  • Beziehung “einschreiben”: n:m zwischen Schüler und Spezialkurs.
  • Spezialisierung: Obertyp “Person” mit Untertypen “Lehrer” und “Schüler”.
    • Totalität: Ja (Jeder ist entweder Lehrer oder Schüler).
    • Disjunktheit: Ja (In diesem Szenario ist man entweder Lehrer oder Schüler, keine Doppelrollen).
📂 Lösung: Kardinalitäten-Tabelle
Beziehung Beteiligte Typ Grund
unterrichten Lehrer : Klasse n : m Lehrer hat viele Klassen, Klasse hat viele Lehrer.
vertreten Lehrer : Lehrer 1 : n Ein Lehrer ist fester Vertreter für n Kollegen.
leiten Lehrer : Kurs 1 : n Ein Kurs hat 1 Leiter; Lehrer kann mehrere Kurse leiten.
einschreiben Schüler : Kurs n : m Schüler besucht n Kurse; Kurs hat m Schüler.
📂 Lösung: SQL-Abfragen
Aufgabe A: Liste alle Schüler im Kurs ‘IT-KI’ auf.

SELECT s.Name
FROM Schueler s
JOIN einschreiben e ON s.SNr = e.SNr
JOIN Spezialkurs k ON e.KursID = k.KursID
WHERE k.Titel = ‘IT-KI’;


Aufgabe B: Welcher Lehrer leitet den Kurs ‘Höhere Mathematik’?

SELECT l.Name
FROM Lehrer l
JOIN Spezialkurs k ON l.LNr = k.LNr
WHERE k.Titel = ‘Höhere Mathematik’;


Tipps für die Prüfung:

  • Attribute an Beziehungen: Wenn ein Attribut (wie die Note oder der Raum) erst durch das Zusammentreffen zweier Entitäten entsteht, gehört es an die Raute (Beziehung), nicht an die Entität.
  • Fremdschlüssel: In SQL werden n:m-Beziehungen immer durch eine eigene Verknüpfungstabelle (z.B. einschreiben) realisiert.