MINT lernen

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 (Vollständigkeit, Redundanz und Anomalien, Konsistenz, Aufwand der Abfragen, Erweiterbarkeit), Alternativen an typischen Vorgängen durchspielen und begründet entscheiden.

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 — nicht Spalten nummerieren.

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