SQL (III) - Technologie der Informationssysteme - Christian ...
SQL (III) - Technologie der Informationssysteme - Christian ...
SQL (III) - Technologie der Informationssysteme - Christian ...
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.