Die Olympia-Datenbank: Anfragen (Teil 3)

Lösen Sie die folgende Aufgabe mit PostgreSQL.

Für spezielle Syntaxfragen steht Ihnen die offizielle Online-Dokumentation von PostgreSQL zur Verfügung.

Die Datentypen werden in Kapitel 8 des PostgreSQL-Manuals beschrieben. Die Datumstypen DATE und TIMESTAMP finden Sie im PostgreSQL-Manual in den Abschnitten Date/Time Types und Date/Time Functions and Operators.

Das Datenmodell

Gegeben sei wieder folgende Datenbank zur Speicherung von olympischen Wettbewerben:

Datenbankschema

sportler:  id, name, vorname*, geburtstag, land, geschlecht
           {PK: id}
           {UNIQUE: name, vorname*, geburtstag, land, geschlecht}
           {geschlecht IN ('w', 'm')}

wettkampf: id, sportart, wettkampfart, geschlecht, sportstaette, beginn*
           {PK: id}
           {UNIQUE: sportart, wettkampfart, geschlecht}
           {geschlecht IN ('w', 'm')}

teilnahme: s_id, w_id, platz*, doping*, disqualifiziert
           {PK: s_id, w_id}
           {FK: s_id -> sportler: id}
           {FK: w_id -> wettkampf: id}
           {platz > 0}
           {NOT(doping IS TRUE AND disqualifiziert IS FALSE)}
           {NOT(disqualifiziert IS TRUE AND platz IS NOT NULL)}

Aufgabe

Lösen Sie die Aufgaben, die Sie in der Datei olympia_aufgabe_3.sql vorfinden. Kopieren Sie diese Datei auf Ihren Rechner und tragen Sie Ihre Lösungen in diese Datei ein.

Achten Sie bitte darauf, dass Ihre SQL-Anfragen für jeden gültigen Datenbestand genau die gewünschten Informationen als Ergebnis ausgeben, nicht mehr und nicht weniger.