Datenbankpraktikum - Übungen
Übungen
- Konzeptueller Entwurf (17.9.2013)
- logischer Entwurf (24.9.2013)
- Konsistenzbedingungen (1.10.2013)
- Updates (15.10.2012)
- Anfragen (15.10/22.10./29.10.)
- Transaktionen (12.11.2012)
- Sichten (19./26. 11.2013)
- Benutzerdefinierte Funktionen und Stored Procedures (26.11./3.12. 2013)
- Trigger (10.12.2013)
- Schluss (17.12.2013)
Konzeptueller Entwurf
Die Musterlösung für den konzeptuellen Entwurf ist hier
Logischer Entwurf
In der zweiten Übung bilden wir den konzeptuellen Entwurf auf einen logischen relationalen ab. Bereiten Sie dazu die logische Schemadefinition (Tabellendefinition) in PostgreSQL vor ( PostgreSQL DDL, 5.1, 5.8, 5.11).
Die Musterlösungen für den logischen Entwurf in Form von PostgreSQL-DDL sind hier (Typen) und hier (Tabellen).
Constraints
Formulieren Sie Primärschlüssel-, Fremdschlüssel-, Eindeutigkeits-, Not-Null- und semantische (Check) Constraints über dem logischen Schema (PostgreSQL DDL).
Die Musterlösungen sind hier.
Anfragen
Anfrageaufgaben werden im Praktikum verteilt oder können hier heruntergeladen werden.
Vorbereitung:
- Anfragen werden im Postgres-Manual hier und hier beschrieben.
- Laden Sie zur Vorbereitung einen Dump mit den Tabellendefinitionen der Musterlösung und Daten. Den Dump finden Sie hier. Laden Sie den Dump wie folgt:
- Bennenen Sie die Datei von "cashdb-plain.txt" in "cashdb-plain.tar" um.
- Führen sie das folgende Kommando aus:
pg_restore -c -C -d cashdb -U cashu -i -v cashdb-plain.tar
Falls pg_restore nicht gefunden wird (kann auf Windows passieren), führen Sie davor das Skript pg_env.bat auf. Dieses befindet sich üblicherweise im Installationsverzeichnis von PostgreSQL.
- Die Folien mit Beispielen zu temporären Sichten und rekursiven Anfragen sind hier
- Der Beispiel-Code zu rekursiven Anfragen ist hier
- Der Beispiel-Code zu analytischen Anfragen ist hier
- Die Musterlösungen sind hier.
Sichten
Vorbereitung: Die Ausführungen zu Sichten im Manual sind hier.
Wir werden uns in der Übung zu Sichten mit anderen Varianten zur Implementierung von Spezialisierungshierarchien beschäftigen. Tabellendefinitionen für die beiden Hierarchien (Member und Vehicle) ohne Tabellenvererbung finden Sie hier. Ein Skript zum Füllen der Tabellen finden Sie hier.
Die Aufgabenstellung finden Sie hier.
Benutzerdefinierte Funktionen und Stored Procedures
Vorbereitung: Kapitel 35, 38, 39 im Handbuch. Wir werden "nur" SQL und PL/pgSQL als Implementierungssprachen verwenden, die Kapitel über PL/TCL, PL/Perl und PL/Python müssen nicht vorbereitet werden.
Hier sind die Aufgaben für Funktionen und Prozeduren.
Hier sind die Musterlösungen für Funktionen, Prozeduren und Tabellenfunktionen.
Trigger
Vorbereitung: Kapitel 36 und 37 im Handbuch.
Hier sind die Aufgaben für Trigger. Die Musterlösungen sind hier und hier.
Schluss
- Besprechung Vorlesungsevaluation
- Ausführungspläne und Statistiken in Postgres (Link)
- letzte Geheimtips for der Prüfung