Aufgabenstellung
EuraStudy
Vom konzeptionellen ER-Modell über die Normalisierung bis zu SQL-Abfragen, Transaktionen und ACID. Datenbanken sind der Standardweg, Information persistent und konsistent zu halten.
6 Abschnitte~22 Min Lesezeit4 KompetenzenStand 06/2026
Lesetiefe: Vertiefung
Schriftgröße: Standard · Zeilenabstand: Kompakt
Medien immer laden: aus
6 Abschnitte30 Merksätze2 Formeln30 Fehlerwarnungen
ER-Diagramm Schüler - Belegt - Kurs
Vokabeln
→ KarteiWandle das ER-Diagramm Schüler -< belegt >- Kurs (n:m, mit Attribut Note) in ein relationales Schema um.
`Schüler(SNr PK, Name, Klasse)` und `Kurs(KNr PK, Titel, Lehrkraft)`.
`Belegung(SNr FK, KNr FK, Note)` mit zusammengesetztem Primärschlüssel (SNr, KNr).
Belegung.SNr -> Schüler.SNr; Belegung.KNr -> Kurs.KNr.
Bei 1:n könnte der Fremdschlüssel direkt in der "n"-Seite ergänzt werden, ohne separate Tabelle.
Ergebnis: Drei Tabellen, alle in 3NF. Note ist nur im Beziehungstuple speicherbar - so vermeidet man Anomalien.
Das ER-Modell ist die Sprache, in der Datenbankentwickler über den Anwendungsbereich sprechen.
ER-Diagramm Schüler - Belegt - Kurs
Kardinalitäten kommen aus den Geschäftsregeln - sie zu klären ist die wichtigste Modellierungsfrage.
Die Umwandlung in Tabellen folgt mechanischen Regeln - aber nur, wenn das ER-Modell sauber ist.
SRDP-Aufgaben
Aufgabenstellung
Typische Fehler
Aktive Wiederholung
Modelliere "Eine Lehrkraft unterrichtet mehrere Klassen, eine Klasse kann von mehreren Lehrkräften unterrichtet werden." Welche Kardinalität? Skizziere das ER-Diagramm und überführe in Tabellen.
Passende Aufgaben üben50 Fragen zum Thema
Aktiv abrufen
Erinnere dich an die Kernpunkte — dann aufdecken.
Quellen: Chen: The Entity-Relationship Model (ACM TODS)
Normalformen 1NF - 2NF - 3NF
Vokabeln
→ KarteiTransitive Abhängigkeit
ist der Schlüssel, und sind Nichtschlüsselattribute. Genau diese Kette verletzt die dritte Normalform und wird durch Auslagern von in eine eigene Tabelle aufgelöst.
Normalisiere `Bestellung(BNr, KdNr, KdName, ArtNr, ArtBez, Menge)` schrittweise bis 3NF.
Alle Zellen atomar, keine Wiederholungsgruppen -> bereits 1NF.
PK = (BNr, ArtNr). KdNr, KdName hängen nur von BNr ab, ArtBez nur von ArtNr -> Verletzung 2NF (Teilabhängigkeit).
`Bestellung(BNr PK, KdNr, KdName)` und `Position(BNr FK, ArtNr FK, Menge)` und `Artikel(ArtNr PK, ArtBez)`.
In Bestellung gilt: KdName transitiv abhängig von KdNr -> verletzt 3NF.
Kunden in `Kunde(KdNr PK, KdName)` auslagern. Bestellung enthält nur noch KdNr als FK.
Ergebnis: `Kunde(KdNr, KdName)` | `Artikel(ArtNr, ArtBez)` | `Bestellung(BNr, KdNr)` | `Position(BNr, ArtNr, Menge)`. Anomalien bei Updates und Löschungen sind eliminiert.
Die Normalformen sind eine Treppe von steigender Strenge - mit jedem Schritt verschwinden Anomalien.
Normalformen 1NF - 2NF - 3NF
Du brauchst funktionale Abhängigkeiten als Werkzeug, um die Normalformen anzuwenden.
Im Data Warehouse wird oft denormalisiert, weil Lesegeschwindigkeit wichtiger ist als Anomaliefreiheit.
SRDP-Aufgaben
Aufgabenstellung
Typische Fehler
Aktive Wiederholung
Prüfe `Mitarbeiter(MNr, Name, AbtNr, AbtName, Büro)` auf 3NF. Wenn nicht erfüllt, zerlege.
Passende Aufgaben üben50 Fragen zum Thema
Aktiv abrufen
Erinnere dich an die Kernpunkte — dann aufdecken.
Quellen: Codd: A Relational Model of Data for Large Shared Data Banks (CACM)
SQL-Join-Typen als Mengen-Venn
Vokabeln
→ Kartei"Liste alle Schüler-Namen, die im Kurs mit Titel 'Mathematik' eine Note besser als 3 haben."
Schüler, Kurs, Belegung.
Schüler.SNr = Belegung.SNr UND Kurs.KNr = Belegung.KNr.
Kurs.Titel = 'Mathematik' AND Belegung.Note < 3.
SELECT Schüler.Name.
```sql SELECT s.Name FROM Schüler s JOIN Belegung b ON s.SNr = b.SNr JOIN Kurs k ON b.KNr = k.KNr WHERE k.Titel = 'Mathematik' AND b.Note < 3; ```
Ergebnis: In Österreich gilt 1 = Sehr gut, 5 = Nicht genügend; "besser als 3" bedeutet Note < 3 (also 1 oder 2).
SQL ist eine deklarative Sprache - du beschreibst, was du willst, nicht wie es berechnet wird.
Joins verbinden Tabellen; entscheidend ist die ON-Bedingung, sonst entsteht ein kartesisches Produkt.
SQL-Join-Typen als Mengen-Venn
Aggregat- und Gruppierungsfunktionen verwandeln Detaildaten in zusammengefasste Berichte.
SRDP-Aufgaben
Aufgabenstellung
Typische Fehler
Aktive Wiederholung
Tabelle `Schüler(SNr, Name, Klasse)` und `Note(SNr, Fach, Wert)`. Schreibe Queries: (a) Durchschnittsnote pro Klasse; (b) Schüler ohne eingetragene Note; (c) Top 5 Schüler nach Durchschnittsnote.
Passende Aufgaben üben50 Fragen zum Thema
Aktiv abrufen
Erinnere dich an die Kernpunkte — dann aufdecken.
Quellen: SQL Standard ISO/IEC 9075 (ISO) · PostgreSQL Documentation - SQL Tutorial (PostgreSQL Global Development Group)
Isolationslevel und Anomalien
Vokabeln
→ KarteiSchreibe eine Transaktion, die 100 EUR von Konto A auf Konto B überweist.
`BEGIN TRANSACTION;`
`UPDATE Konto SET Saldo = Saldo - 100 WHERE KNr = 'A';`
Wenn Saldo < 0 -> `ROLLBACK;` und Fehler ausgeben.
`UPDATE Konto SET Saldo = Saldo + 100 WHERE KNr = 'B';`
`COMMIT;`
Ergebnis: Atomicity: ohne COMMIT bleibt der Stand unverändert. Bei Stromausfall vor COMMIT macht die DB beim Neustart automatisch ROLLBACK (Recovery via WAL).
ACID ist das Versprechen, das relationale Datenbanken seit Jahrzehnten machen.
Stell dir Atomicity wie eine "Alles-oder-Nichts"-Schaltung vor: entweder das gesamte Update zählt, oder gar nichts.
In verteilten Systemen ist ACID schwer - dort taucht das CAP-Theorem auf.
SRDP-Aufgaben
Aufgabenstellung
Typische Fehler
Aktive Wiederholung
Erläutere die ACID-Eigenschaften an einer Banktransaktion. Welches Problem entsteht, wenn Atomicity verletzt wird?
Passende Aufgaben üben50 Fragen zum Thema
Aktiv abrufen
Erinnere dich an die Kernpunkte — dann aufdecken.
Quellen: Garcia-Molina, Ullman, Widom: Database Systems - The Complete Book (Pearson)
NoSQL-Datenbankklassen im Überblick
Vokabeln
→ KarteiWelche CAP-Tradeoffs gehen typische Systeme ein?
MongoDB (Single Replica Set), HBase: bei Partition werden Schreibvorgänge blockiert -> Konsistenz, aber kurze Nicht-Verfügbarkeit.
Cassandra, DynamoDB: schreiben immer, akzeptieren später Konsistenz (eventual consistency).
Klassische relationale DB auf einem Server - aber das ist nicht verteilt, daher keine Partition Tolerance nötig.
Ergebnis: Wahl hängt vom Geschäftsfall ab. Bankkonten -> CP (Inkonsistenz verboten); soziale Likes -> AP (kurzzeitige Inkonsistenz akzeptabel).
NoSQL ist nicht Anti-SQL - es ist eine Ergänzung für spezielle Anforderungen.
Das CAP-Theorem ist ein scharfes mathematisches Ergebnis: in verteilten Systemen gibt es keinen Gratisluxus.
Wähle die Datenbank nach Datenmodell und Konsistenzanforderung - nicht nach Hype.
SRDP-Aufgaben
Aufgabenstellung
Typische Fehler
Aktive Wiederholung
Welche NoSQL-Klasse wählst du für (a) eine soziale Netz-App, (b) ein IoT-Sensor-Logging-System, (c) ein dokumentbasiertes CMS? Begründe.
Passende Aufgaben üben50 Fragen zum Thema
Aktiv abrufen
Erinnere dich an die Kernpunkte — dann aufdecken.
Quellen: Brewer: CAP Twelve Years Later - How the "Rules" Have Changed (InfoQ) · MongoDB Manual (MongoDB Inc.)
Index - Nutzen und Kosten
Vokabeln
→ KarteiSuchkosten mit B+-Baum-Index vs. Full Table Scan
ist der Verzweigungsgrad des Indexbaums, die Zeilenzahl. Bei einer Million Zeilen und typischem genügen wenige Blockzugriffe statt einer Million - deshalb ist der Index die wirksamste Einzelmaßnahme der Abfrageoptimierung.
Eine Tabelle `Bestellung` mit 2 Mio. Zeilen wird häufig mit `WHERE KundenNr = ?` abgefragt. Erläutere den Effekt eines Index auf `KundenNr`.
Ohne Index: Full Table Scan über 2 Mio. Zeilen, - bei jeder Abfrage werden alle Zeilen gelesen.
`CREATE INDEX idx_kunde ON Bestellung(KundenNr);` baut einen B+-Baum über die Spalte.
Suche sinkt auf Vergleiche statt 2 Mio. - drastisch schneller.
Jeder `INSERT`/`UPDATE` von `KundenNr` muss den Index mitpflegen; zusätzlicher Speicher für den B+-Baum.
Da die Tabelle leseintensiv ist und KundenNr selektiv (viele verschiedene Werte), überwiegt der Nutzen klar.
Ergebnis: Ein Index auf `KundenNr` lohnt sich: Lesezeit von auf ; geringe Mehrkosten beim Schreiben werden durch den Lesegewinn aufgewogen.
Gegeben ein Index auf `(Nachname, Vorname)`. Welche der Abfragen nutzen ihn?
`WHERE Nachname = 'Huber'` - nutzt den Index (Linksprefix erfüllt).
`WHERE Nachname = 'Huber' AND Vorname = 'Anna'` - nutzt den Index voll.
`WHERE Vorname = 'Anna'` - nutzt den Index nicht, da der führende Schlüsselteil fehlt.
Ergebnis: Nur Abfragen, die mit der führenden Spalte beginnen, profitieren; ein eigener Index auf `Vorname` wäre für Fall 3 nötig.
Ein Index ist wie das Stichwortverzeichnis eines Buches: man muss nicht jede Seite durchblättern.
Der Gewinn beim Lesen () wird mit Mehraufwand beim Schreiben erkauft - deshalb nicht jede Spalte indizieren.
Mit EXPLAIN zeigt die Datenbank, ob sie den Index nutzt oder doch scannt.
SRDP-Aufgaben
Aufgabenstellung
Typische Fehler
Aktive Wiederholung
Beurteile für die Abfrage `SELECT * FROM Bestellung WHERE KundenNr = 4711 AND Datum > '2024-01-01'`, welche Indizes sinnvoll sind, und begründe den Effekt auf Lese- und Schreiboperationen.
Passende Aufgaben üben50 Fragen zum Thema
Aktiv abrufen
Erinnere dich an die Kernpunkte — dann aufdecken.
Quellen: Use The Index, Luke! - SQL Indexing (Markus Winand)
Stand 06/2026Vollständige Fassung über den Tiefenregler — gleiche Stelle, gleiche Anker
Belege & Quellen
PostgreSQL Global Development Group
MongoDB Inc.
Markus Winand
Siehe auch