4.8 KiB
Modellierung – Fallbeispiel – Zusammenfassung
Dozent: A. Zimmermann | HWR Berlin | 2026 | Folien 1–16
1. Überblick (Folie 1)
Das Fallbeispiel behandelt die Modellierung einer Rechnung und folgt dem Schema:
- Beispiel-Rechnungen betrachten
- Mini-Welten beschreiben
- Konzeptuellen Entwurf für jede Mini-Welt erstellen
- Logischen Entwurf für jede Mini-Welt erstellen
- Fazit
2. Beispiel-Rechnungen (Folien 2–5)
Es werden verschiedene reale Rechnungen als Ausgangspunkt gezeigt, aus denen die relevanten Entitätstypen und Beziehungen abgeleitet werden.
3. Mini-Welten – Entitätstypen (Folien 6–8)
Aus den Rechnungen werden mindestens 3 Entitätstypen identifiziert:
Artikel
- Artikelnummer (kann fehlen)
- Beschreibung (immer vorhanden)
- Einzelpreis (Netto)
- MwSt-Satz und MwSt-Betrag
Rechnungsposition
- Reihenfolgenummer (kann fehlen, aber wichtig)
- Menge / Anzahl der Artikel
Rechnung (übergeordnet)
- Rechnungsnummer
- Datum
- Gesamtsumme (abgeleitetes Attribut)
- MwSt-Betrag der ganzen Rechnung (abgeleitetes Attribut)
Hinweis: Kundeninformation wird bewusst vernachlässigt. Es gibt viele abgeleitete Attribute.
Formale Notation
Entitätstypen als Mengen:
E = { e } = { [ Attr1, Attr2, ..., AttrN ] }
Feste Entitätstypen (in beiden Mini-Welten gleich):
Rechnung = { [ RgNr, Datum, Gesamtpreis, GesamtMwSt ] }
Artikel = { [ ArtNr, ArtBezeichnung, EP, MwStSatz ] }
Beziehungen:
- Rechnung besteht aus Rechnungspositionen
- Rechnungsposition beinhaltet Artikel
4. Mini-Welt 1 (Folien 9–11)
Ansatz
Alle Rechnungen werden durchgehend betrachtet. Gleiche Kombinationen [RechnPosNr, Menge] werden zusammengefasst (laut Mengenlehre nach G. Cantor: keine doppelten Elemente).
Beispiel: Wenn in Rechnung A die erste Zeile 2 Tastaturen enthält und in Rechnung B die erste Zeile 2 Drucker, ist für beide nur ein Element [1, 2] zuständig.
Rechnungsposition = { [ RechnPosNr, Menge, Zwischensumme, ZwischenMwSt ] }
Konzeptueller Entwurf (Folie 10)
| Beziehung | Funktionalität |
|---|---|
| Rechnung — besteht aus — Rechnungsposition | M : N |
| Rechnungsposition — beinhaltet — Artikel | N : 1 |
Logischer Entwurf (Folie 11)
Rechnung = { [ RgNr, Datum, Gesamtpreis, GesamtMwSt ] }
Artikel = { [ ArtNr, EP, MwStSatz, ArtBezeichnung ] }
Rechnungsposition = { [ RechnPosNr, Menge, Zwischensumme, ZwischenMwSt ] }
besteht_aus = { [ RgNr, RechnPosNr, Menge ] }
beinhaltet = { [ ArtNr, RechnPosNr, Menge ] }
Vereinfachung (1:N-Beziehung "beinhaltet" auflösen):
Rechnungsposition = { [ ArtNr, RechnPosNr, Menge, Zwischensumme, ZwischenMwSt ] }
Dabei wird ArtNr als Fremdschlüssel eingefügt.
5. Mini-Welt 2 (Folien 12–14)
Ansatz
Alle Rechnungspositionen aus allen Rechnungen werden individuell erfasst, auch wenn [RechnPosNr, Menge] gleich sind. Da Duplikate nach Cantor nicht zulässig sind, wird ein neues Attribut LaufendeNummer (LfndNr) eingeführt.
Konsequenz: Mehr Entitäten im Entitätstyp, mehr Redundanz, aber die Zuordnung jeder Position zu einer Rechnung bleibt erhalten (anders als in Mini-Welt 1, wo sie verloren geht).
Rechnungsposition = { [ LfndNr, RechnPosNr, Menge, Zwischensumme, ZwischenMwSt ] }
Konzeptueller Entwurf (Folie 13)
| Beziehung | Funktionalität |
|---|---|
| Rechnung — besteht aus — Rechnungsposition | 1 : N |
| Rechnungsposition — beinhaltet — Artikel | N : 1 |
Logischer Entwurf (Folie 14)
Rechnung = { [ RgNr, Datum, Gesamtpreis, GesamtMwSt ] }
Artikel = { [ ArtNr, EP, MwStSatz, ArtBezeichnung ] }
Rechnungsposition = { [ LfndNr, RechnPosNr, Menge, Zwischensumme, ZwischenMwSt ] }
besteht_aus = { [ RgNr, LfndNr ] }
beinhaltet = { [ ArtNr, LfndNr ] }
Vereinfachung (beide 1:N-Beziehungen auflösen):
Rechnungsposition = { [ ArtNr, RgNr, LfndNr, RechnPosNr, Menge,
Zwischensumme, ZwischenMwSt ] }
Hinweis: LfndNr wird nicht für Verknüpfungen (Join-Prädikat) verwendet, hat wenig Semantik, muss aber gepflegt werden.
6. Fazit (Folie 15)
Beide Mini-Welten bilden den Sachverhalt ab. Welches Modell besser ist, hängt von den zuvor angeforderten Kriterien ab (z. B. Leistung/Geschwindigkeit).
Empfehlung:
- Beide Modelle implementieren
- Antwortzeiten bei größerem Datenumfang vergleichen
- Häufigste Abfragen vergleichen, seltene ebenfalls
Vergleich der Mini-Welten
| Aspekt | Mini-Welt 1 | Mini-Welt 2 |
|---|---|---|
| Beziehung Rechnung↔Position | M:N | 1:N |
| Duplikate | Keine (zusammengefasst) | Individuell (via LfndNr) |
| Zuordnung Position→Rechnung | Geht verloren | Bleibt erhalten |
| Redundanz | Weniger | Mehr |
| Tabellen nach Vereinfachung | 3 + besteht_aus | 3 (alles in einer) |