16.01.2013 Aufrufe

SQL (III) - Technologie der Informationssysteme - Christian ...

SQL (III) - Technologie der Informationssysteme - Christian ...

SQL (III) - Technologie der Informationssysteme - Christian ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

<strong>Christian</strong>-Albrechts-Universität zu Kiel SS 2007<br />

Institut für Informatik Übungsblatt 7<br />

Arbeitsgruppe <strong>Technologie</strong> <strong>der</strong> <strong>Informationssysteme</strong><br />

Prof. Dr. B. Thalheim, Dipl.-Inf. G. Fiedler<br />

Übungen zur Vorlesung Datenbanksysteme I<br />

Übungsblatt 7<br />

Hinweis: Die Aufgaben dieses Übungsblatts beziehen sich auf die Datenbank Wetterdaten“. Im<br />

”<br />

Anhang zu diesem Übungsblatt finden Sie eine Übersicht über das Schema und eine Beschreibung<br />

<strong>der</strong> Tabellen. Klicken Sie vor Beginn <strong>der</strong> Bearbeitung im Webinterface auf den Button<br />

” Wetterdaten wie<strong>der</strong>herstellen“, um die aktuellen Wetterdaten in ihr Schema zu übernehmen.<br />

Aufgabe 1<br />

Informieren Sie sich im DB2-Handbuch über<br />

• create view und create table<br />

• insert into<br />

• Aggregatfunktionen, group by und having<br />

• or<strong>der</strong> by<br />

• case<br />

Aufgabe 2<br />

Die Wetterdaten ( ” Faktentabellen“) <strong>der</strong> einzelnen Wetterstationen befinden sich in drei verschiedenen<br />

Tabellen: Wetter_KI, Wetter_Teneriffa und Wetter_PB. Erzeugen Sie eine Sicht, welche<br />

die Daten dieser drei Tabellen sinnvoll vereinigt. Die Sicht soll über dem Schema<br />

Wetter(<br />

{Station,<br />

Erfassungsdatum,<br />

Erfassungszeit,<br />

Lufttemperatur,<br />

Wassertemperatur,<br />

solareEinstrahlung,<br />

Luftdruck,<br />

Pegelstand,<br />

Nie<strong>der</strong>schlag,<br />

Feuchte,<br />

Windrichtung,<br />

Windgeschwindigkeit}<br />

)<br />

definiert sein. Fehlende Werte sollen mit null belegt werden. Beachten Sie die Beschreibungen<br />

<strong>der</strong> Attribute <strong>der</strong> Ausgangstabellen und schauen Sie sich die Werte in <strong>der</strong> Beispieldatenbank an.<br />

Beschreiben Sie ihr Vorgehen.<br />

Aufgabe 3<br />

Stellen Sie folgende Anfragen in <strong>SQL</strong> an die in Aufgabe 2 definierte Sicht. Nutzen Sie bei<br />

Bedarf zusätzlich die Tabellen Land, Region, Ort und Station. Wenn nicht an<strong>der</strong>s angegeben,<br />

ist das Anlegen von zusätzlichen Tabellen o<strong>der</strong> Sichten mittels create-Anweisung nicht gestattet.<br />

Beachten Sie zusätzlich die Hinweise zu <strong>SQL</strong> im Anhang zu diesem Übungsblatt.


a. Wie hoch war die minimale, maximale und durchschnittliche Lufttemperatur in Kiel am<br />

Westufer (Station 1) im Dezember 2005?<br />

b. Wie hoch ist die durchschnittliche Wassertemperatur <strong>der</strong> Ostsee in Kiel?<br />

c. Gib eine Übersicht über die minimale, maximale und durchschnittliche Windgeschwindigkeit<br />

(als Einheit: kn) in Pa<strong>der</strong>born (Station=3)<br />

• für jeden Monat<br />

• für jedes Jahr<br />

• für den gesamten Messzeitraum<br />

Fassen Sie das Ergebnis in einer einzigen Tabelle zusammen, indem sie den Jahreswerten<br />

null als Monat und dem Gesamtwert null für Monat und Jahr zuweisen. Die Ergebnistabelle<br />

soll demnach folgende Gestalt haben:<br />

Jahr Monat Minimum Maximum Durchschnitt<br />

null null min gesamt max gesamt Durchschnitt gesamt<br />

2005 null min in 2005 max in 2005 Durchschnitt 2005<br />

... null<br />

2005 1 min in Jan. 2005 max in Jan. 2005 Durchschnitt Jan. 2005<br />

... ...<br />

d. Für Windgeschwindigkeiten existiert die Beaufort-Skala. Den Windstärken <strong>der</strong> Beaufort-<br />

Skala sind Kategorien zugeordnet, z.B. ” Windstille“, ” Frische Brise“ o<strong>der</strong> ” Orkan“. Hinweise<br />

zur Beaufort-Skala finden Sie unter http://de.wikipedia.org/wiki/Beaufortskala.<br />

Geben Sie eine Übersicht über die absolute Häufigkeit je<strong>der</strong> Windkategorie in Pa<strong>der</strong>born<br />

(Station=3), d.h. zählen Sie für jede Kategorie die Tage, an denen die maximale Windgeschwindigkeit<br />

des Tages in diese Kategorie fällt. Es interessieren nur die Kategorien, die im<br />

Messzeitraum aufgetreten sind. Ordnen Sie die Liste nach <strong>der</strong> Windkategorie ( ” Windstille“<br />

< ” Leiser Zug“ < ... < ” Orkan“). Sie dürfen eine zusätzliche Tabelle für die Darstellung<br />

<strong>der</strong> Beaufort-Skala anlegen, füllen und benutzen.<br />

e. Gib für die Station ” IFM-GEOMAR (Institut)“ in ” Kiel“, ” Norddeutschland“, ” D“ die Gesamtmenge<br />

des Nie<strong>der</strong>schlags, <strong>der</strong> in <strong>der</strong> Nacht vom 15.12.2005 (19.00 Uhr) zum 16.12.2005<br />

(07.00 Uhr) gefallen ist.<br />

f. Wo (gesucht sind Land, Region, Ort) herrschte in welchem Monat (als Bezeichnung ” Januar“<br />

bis ” Dezember“) eine Durchschnitts-Lufttemperatur von mehr als 15 ◦ C? Sie dürfen<br />

eine zusätzliche Tabelle mit den Monatsnamen anlegen, füllen und benutzen. Ordnen Sie<br />

die Liste nach den Monatsnamen ( ” Januar“ < ” Februar“ < ... < ” Dezember“)<br />

g. An wievielen Tagen war in Kiel (Station=1) die durchschnittliche Lufttemperatur größer<br />

als die durchschnittliche Wassertemperatur?<br />

Aufgabe 4<br />

Wie groß war die Durchschnittstemperatur in Deutschland im Jahr 2005? Werten Sie die Anfrage<br />

bzgl. <strong>der</strong> gegebenen Beispieldatenbank aus und bewerten Sie die Qualität des Ergebnisses.<br />

Begründen Sie ihre Bewertung. Geben Sie informal Maßnahmen an, um die Aussagekraft <strong>der</strong><br />

Statistik zu erhöhen.<br />

Besprechung <strong>der</strong> Lösungen: 30.05., 07.06., 01.06.<br />

Viel Erfolg!


Beschreibung <strong>der</strong> Wetter-Datenbank<br />

Die ” Wetter“-Datenbank speichert Messdaten von Wetterstationen. Sie besteht aus 7 Tabellen:<br />

Tabelle: Land enthält die Kürzel <strong>der</strong> Län<strong>der</strong>, in denen sich Wetterstationen befinden:<br />

Attribut Beschreibung<br />

Name Kürzel des Landes (z.B. D für Deutschland)<br />

Tabelle: Region enthält die Regionen eines Landes. Das Attribut Land ist Fremdschlüssel auf<br />

die Tabelle Land.<br />

Attribut Beschreibung<br />

Land Land, in dem sich die Region befindet.<br />

Name Bezeichnung <strong>der</strong> Region<br />

Tabelle: Ort enthält die Namen <strong>der</strong> Orte, in denen sich Wetterstationen befinden. (Land,Region)<br />

ist Fremdschlüssel bzgl. <strong>der</strong> Tabelle Region.<br />

Attribut Beschreibung<br />

Land Land, in dem sich <strong>der</strong> Ort befindet.<br />

Region Bezeichnung <strong>der</strong> Region, in <strong>der</strong> sich <strong>der</strong> Ort befindet<br />

Name Ortsname<br />

Tabelle: Station enthält die Wetterstationen, die Daten für die Wetterdatenbank liefern. Jede<br />

Station hat eine eindeutige nummerische Id, diese Id fungiert als Primärschlüssel <strong>der</strong> Tabelle.<br />

Außerdem hat jede Station innerhalb ihres Ortes einen eindeutigen Namen. (Land,Region,Ort)<br />

ist Fremdschlüssel bzgl. <strong>der</strong> Tabelle Ort.<br />

Attribut Beschreibung<br />

id Identifikator <strong>der</strong> Station<br />

Land Land, in dem sich die Station befindet.<br />

Region Bezeichnung <strong>der</strong> Region<br />

Ort Ortsname<br />

Name Bezeichnung <strong>der</strong> Station<br />

Die Wetterdaten sind in drei Tabellen ( ” Faktentabellen“) untergebracht. Das Attribut Station<br />

ist jeweils Fremdschlüssel bzgl. <strong>der</strong> Tabelle Station. Primärschlüssel <strong>der</strong> Tabelle ist jeweils die<br />

Kombination (Station,Erfassungsdatum,Erfassungszeit).<br />

Tabelle: Wetter KI enthält die Wetterdaten <strong>der</strong> Stationen 1 und 2. Es wird ca. alle 8 Minuten<br />

ein Datensatz gespeichert.<br />

Attribut Typ Beschreibung<br />

Station int Identifikator <strong>der</strong> Station (1 o<strong>der</strong> 2)<br />

Erfassungsdatum date Datum, an dem die Messwerte aufgenommen wurden<br />

Erfassungszeit time Zeitpunkt, zu dem die Messwerte aufgenommen wurden<br />

Windrichtung double Richtung des Windes in ◦<br />

Windgeschwindigkeit double Geschwindigkeit des Windes in m · s −1<br />

Lufttemperatur double Temperatur <strong>der</strong> Luft in ◦ C<br />

Wassertemperatur double Temperatur des Wassers <strong>der</strong> Kieler Förde in ◦ C<br />

solareEinstrahlung double auftreffende Strahlungsleistung <strong>der</strong> Sonne in W · m −2<br />

Luftdruck double Luftdruck in hPa<br />

Pegelstand double Pegelstand <strong>der</strong> Ostsee in m relativ zu NN<br />

Nie<strong>der</strong>schlag double Menge des Nie<strong>der</strong>schlags in mm seit <strong>der</strong> letzten Messung<br />

(07.00 Uhr bzw. 19.00 Uhr)<br />

Feuchte double relative Luftfeuchtigkeit in Prozent


Tabelle: Wetter PB enthält die Wetterdaten <strong>der</strong> Station 3. Für jeden Tag im Messzeitraum<br />

existieren 8 Messwerte.<br />

Attribut Typ Beschreibung<br />

Station int Identifikator <strong>der</strong> Station (immer 3)<br />

Erfassungsdatum date Datum, an dem die Messwerte aufgenommen wurden<br />

Erfassungszeit time Zeitpunkt, zu dem die Messwerte aufgenommen wurden<br />

Lufttemperatur double Temperatur <strong>der</strong> Luft in ◦ C<br />

Feuchte double relative Luftfeuchtigkeit in Prozent<br />

Luftdruck double Luftdruck in hPa<br />

Nie<strong>der</strong>schlag double Menge des Nie<strong>der</strong>schlags in mm seit <strong>der</strong> letzten Messung<br />

(07.00 Uhr bzw. 19.00 Uhr)<br />

Windgeschwindigkeit double Geschwindigkeit des Windes in m · s −1<br />

Windrichtung varchar(3) Richtung des Windes bzgl. <strong>der</strong> Windrose (N, NNE,<br />

NE, ENE, E, ESE, SE, SSE, S, SSW, SW, WSW, W,<br />

WNW, NW, NNW)<br />

Tabelle: Wetter Teneriffa enthält die Wetterdaten <strong>der</strong> Station 4. Es wird ca. alle 15 min. ein<br />

Messwert gespeichert.<br />

Attribut Typ Beschreibung<br />

Station int Identifikator <strong>der</strong> Station (immer 4)<br />

Erfassungsdatum date Datum, an dem die Messwerte aufgenommen wurden<br />

Erfassungszeit time Zeitpunkt, zu dem die Messwerte aufgenommen wurden<br />

Lufttemperatur double Temperatur <strong>der</strong> Luft in ◦ C<br />

Feuchte double relative Luftfeuchtigkeit in Prozent<br />

Luftdruck double Luftdruck in hPa<br />

Nie<strong>der</strong>schlag double Menge des Nie<strong>der</strong>schlags in mm seit <strong>der</strong> letzten Messung<br />

(07.00 Uhr bzw. 19.00 Uhr)<br />

Windgeschwindigkeit double Geschwindigkeit des Windes in km · h −1<br />

Windrichtung double Richtung des Windes in ◦<br />

Hinweise zu <strong>SQL</strong><br />

• Mit den Funktionen YEAR, MONTH, DAY, HOUR, MINUTE und SECOND kann man aus Datumsund<br />

Zeitwerten die Komponenten extrahieren.<br />

• Mittels CAST( as ) lässt sich <strong>der</strong> Typ des Ausdrucks in den Typ<br />

umwandeln.<br />

• Der Null-Wert hat keinen bestimmten Typ. Möchte man konstant null zuweisen, so muss<br />

man dies als CAST(null as ) schreiben, wenn sich <strong>der</strong> Typ nicht aus dem Kontext<br />

ergibt.<br />

• In DB2 existiert eine nicht-leere Dummy-Tabelle namens SYSIBM.SYSDUMMY1.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!