Die Olympia-Datenbank: Modellierung

Lösen Sie die fol­gen­de Auf­ga­be mit Post­greS­QL.

Für spe­zi­el­le Syn­tax­fra­gen steht Ihnen die offi­zi­el­le Online-Doku­men­ta­ti­on von Post­greS­QL zur Ver­fü­gung.

Die Daten­ty­pen wer­den in Kapi­tel 8 des Post­greS­QL-Manu­als beschrie­ben. Die Datums­ty­pen DATE und TIMESTAMP fin­den Sie im Post­greS­QL-Manu­al in den Abschnit­ten Date/​Time Types und Date/​Time Func­tions and Ope­ra­tors.

Das Datenmodell

Ent­wi­ckeln Sie mit Hil­fe von Star­UML ein Daten­mo­dell für eine Daten­bank, die bei Olym­pi­schen Spie­len ein­ge­setzt wer­den kann (Tipp: Händ­ler-DB; ein­fa­cher ist eine Rea­li­sie­rung des Daten­mo­dells gemäß dem Händ­ler-DB-Daten­mo­dell aus Auf­ga­be 1, das Sie als ers­tes Modell auf der zuvor genann­ten Sei­te fin­den; wesent­lich bes­ser, aber auch deut­lich auf­wen­di­ger ist ein Daten­mo­dell in Anleh­nung an das ver­bes­ser­te Händ­ler-DB-Daten­mo­dell, das sie eben­falls auf der zuvor genann­ten Sei­te fin­den):

An den Spie­len neh­men Sport­ler teil. Die­se wer­den durch einen Iden­ti­fi­ka­tor ein­deu­tig iden­ti­fi­ziert. Außer­dem sind für jede Sport­le­rin und jeden Sport­ler Vor­na­me, Nach­na­me, Geburts­da­tum, das Geschlecht ('w' oder 'm') sowie das Land (Län­der­kür­zel mit drei Buch­sta­ben), für das sie bzw. er antritt, bekannt. Ein Sport­ler kann durch den voll­stän­di­gen Namen, den Geburts­tag und das Land ein­deu­tig iden­ti­fi­ziert wer­den. Der Nach­na­me, das Geburts­da­tum und das Land müs­sen ange­ge­ben wer­den, der Vor­na­me ist optio­nal.

Bei Olym­pia wer­den Wett­kämp­fe aus­ge­tra­gen. Von einem Wett­kampf sind neben einem künst­li­chen Iden­ti­fi­ka­tor die Sport­art (Schwim­men, Rudern …), die Wett­kampf­art (100m Krau­len, 400m Lagen …), das Geschlecht ('w', 'm' und evtl. 'x' für „mixed“), die Sport­stät­te (Schwimm­hal­le, Sta­di­on …) und der Zeit­punkt des Wett­kampf­starts bekannt. Alle Wer­te müs­sen ange­ge­ben wer­den. Die Sport­art, die Wett­kampf­art sowie das Geschlecht iden­ti­fi­zie­ren gemein­sam einen Wett­kampf ein­deu­tig.

Sport­ler mel­den sich zur Teil­nah­me an Wett­kämp­fen an und neh­men spä­ter auch dar­an teil. Man­che Sport­ler wer­den im Rah­men einer oder auch meh­re­rer Wett­kampf­teil­nah­men auf Doping hin unter­sucht. Das Ergeb­nis kann jeweils posi­tiv (true) oder nega­tiv (false) aus­fal­len. Solan­ge der Sport­ler nicht getes­tet wur­de, ist das Dopin­g­er­geb­nis unbe­kannt (null) .

Ein Sport­ler kann jeder­zeit für einen Wett­kampf dis­qua­li­fi­ziert wer­den (z. B. auf­grund eines Start­feh­lers). Ins­be­son­de­re wird jeder Sport­ler, dem für den zuge­hö­ri­gen Wett­kampf Doping nach­ge­wie­sen wur­de, immer auch dis­qua­li­fi­ziert. Zu Beginn eines Wett­kampfs ist ein Sport­ler default­mä­ßig nicht dis­qua­li­fi­ziert. Nach Ende eines Wett­be­werbs wird für jeden Sport­ler der Platz notiert, den er in die­sem Wett­be­werb erzielt hat (sofern er nicht dis­qua­li­fi­ziert wur­de). Die­ser Platz muss dann natür­lich grö­ßer als 0 sein.

CREATE-TABLE-Befehle

Schrei­ben Sie für ihr Daten­mo­dell die pas­sen­den CREA­TE-TABLE-Befeh­le, legen Sie eine zuge­hö­ri­ge Daten­bank an und fügen Sie mit Hil­fe von INSERT-Befeh­len ein paar sinn­vol­le Daten in Ihre Daten­bank ein.

Tipp: Händ­ler-DDL-Skript oder (bes­ser) Händ­ler-DDL-Skript erwei­tert

Anmerkung

Beach­ten Sie, dass es noch vie­le wei­te­re Infor­ma­tio­nen gibt, die in einer ech­ten Daten­bank gespei­chert wer­den soll­ten: Nähe­re Infor­ma­tio­nen zum Sport­ler (wie z. B. Blut­wer­te, wett­kamp­f­un­ab­hän­gi­ge Doping­tests etc.), Team­wett­be­wer­be, indi­vi­du­el­le Start­zei­ten für Sport­ler (wie es z. B. im Ten­nis not­wen­dig wäre), nähe­re Infor­ma­tio­nen zum Wett­kampf (z. B. das Wett­kamp­fen­de, die Schieds- und Preis­rich­ter, die Olym­pia- und Welt­re­kor­de etc.), nähe­re Infor­ma­tio­nen zum Wett­kampf­ver­lauf (z. B. Zei­ten und Zwi­schen­zei­ten). Dies brau­chen Sie jetzt aber nicht zu model­lie­ren. Es reicht, wenn Sie die obi­gen Anga­ben als Daten­mo­dell umset­zen.