MINT üben

Modellierungen beurteilen

Zwei Modelle speichern dieselben Daten — welches übersteht einen Monat Alltag mit Umbuchungen, Preiserhöhungen und Stornos besser?

1

Woran man ein gutes Modell erkennt

  • Vollständig:jede geforderte Information lässt sich speichern und abfragen.
  • Redundanzfrei:jede Tatsache steht genau einmal — sonst drohen Einfüge-, Änderungs- und Löschanomalien.
  • Konsistenzsicher:Schlüssel und Kardinalitäten verhindern widersprüchliche Daten.
  • Angemessen:so wenige Tabellen wie nötig; Abfragen kommen mit wenigen Verbunden aus.
  • Erweiterbar:absehbare Änderungen (zweite Telefonnummer, zweiter Standort) gelingen ohne Umbau.

Ein Kanuverleih hat zwei Modelle zur Wahl. Starte mit ▶ oder „Ein Ereignis“ einen Monat Betrieb: Beide Modelle erleben dieselben Ereignisse. Schalte die Sachbearbeitung auf „nachlässig“ (nur die erste passende Zeile wird geändert) und vergleiche die Bilanz im Readout.

Ein Monat im Betrieb

Ereignis 0 von 9

Halte fest: Das zerlegte Modell B speichert anfangs sogar mehr Zellen — es gewinnt nicht beim Platz, sondern im Betrieb: keine abgelehnten Einträge, keine verlorenen Daten, keine Widersprüche. Der Preis dafür sind Verbunde in den Abfragen.

Merke

Beurteilen: Kriterien anlegen, Alternativen an typischen Vorgängen durchspielen und begründet entscheiden.

Kriterien: Vollständig, redundanzfrei (keine Anomalien), konsistenzsicher durch Schlüssel und Kardinalitäten, angemessen im Abfrageaufwand, erweiterbar ohne Umbau.

Zerlegtes Modell: Es gewinnt im Betrieb, nicht beim Platz; der Preis sind Verbunde in den Abfragen.

2

Alternativen abwägen und verändern

  • Attribut oder Entitätstyp?:Ort als Text ist einfach; wiederholen sich Orte mit eigenen Angaben (PLZ, Region), lohnt ein Entitätstyp.
  • Kardinalität prüfen:stimmt die 1 wirklich? Kann ein Kurs doch zwei Lehrkräfte haben, wird aus 1:n eine n:m-Beziehung mit eigener Tabelle.
  • Gewollte Kopie:der Preis zum Buchungszeitpunkt gehört bewusst in die Buchung — er ist eine eigene Tatsache, keine Redundanz.
  • Berechnete Werte:Summen, Anzahlen und Alter werden nicht gespeichert — sie veralten.
  • Urteil:Vor- und Nachteile gewichten und für den konkreten Einsatz entscheiden.

Herleitung:

Kurs(KursNr, Titel, Kuerzel)
Ausgangslage
Neue Anforderung: Kurse im Teamteaching — zwei Lehrkräfte je Kurs.
Kurs(KursNr, Titel, Kuerzel1, Kuerzel2)
naheliegend
Eine zweite Spalte wirkt schnell, erzeugt aber viele NULL-Werte, versagt bei drei Lehrkräften und macht jede Abfrage „Kurse von Weber“ doppelt so lang.
Kurs n — unterrichtet — m Lehrkraft
ER anpassen
Die Kardinalität war falsch: Eine Lehrkraft hat viele Kurse, ein Kurs jetzt viele Lehrkräfte.
Kurs(KursNr, Titel)
unterrichtet(KursNr, Kuerzel)
Ergebnis
Die n:m-Beziehung bekommt eine eigene Tabelle — beliebig viele Lehrkräfte je Kurs, keine NULL-Werte.
Merke

Modell verändern: Erst die Kardinalität im ER-Modell korrigieren, dann nach den Überführungsregeln ein neues Schema ableiten.

Kardinalität prüfen: Wird aus 1:n eine n:m-Beziehung, entsteht eine eigene Tabelle.

Gewollte Kopie: Ein Wert zum Buchungszeitpunkt ist eine eigene Tatsache und keine Redundanz.

Berechnete Werte: Summen, Anzahlen und Alter werden nicht gespeichert, sie veralten.

3

Allgemeine Hinweise

Redundanzfrei ist nicht alles

Ein Modell mit zwölf Tabellen für jede Kleinigkeit ist schwer zu pflegen und abzufragen. Beurteile immer auch den Aufwand.

Kopie oder Redundanz?

Der Preis im Kassenbon muss auch nach einer Preiserhöhung stimmen. Solche Werte zum Zeitpunkt eines Vorgangs sind eigene Tatsachen.

Mit einem Vorgang testen

Spiele eine realistische Änderung durch: Wie viele Zeilen müssen angefasst werden? Was geht beim Löschen verloren? Das macht jedes Urteil konkret.

Videos