SQL (III) - Technologie der Informationssysteme

Werbung
Christian-Albrechts-Universität zu Kiel
Institut für Informatik
Arbeitsgruppe Technologie der Informationssysteme
Prof. Dr. B. Thalheim, Dipl.-Inf. G. Fiedler
SS 2007
Übungsblatt 7
Übungen zur Vorlesung Datenbanksysteme I
Übungsblatt 7
Hinweis: Die Aufgaben dieses Übungsblatts beziehen sich auf die Datenbank Wetterdaten“. Im
”
Anhang zu diesem Übungsblatt finden Sie eine Übersicht über das Schema und eine Beschreibung der Tabellen. Klicken Sie vor Beginn der Bearbeitung im Webinterface auf den Button
Wetterdaten wiederherstellen“, um die aktuellen Wetterdaten in ihr Schema zu übernehmen.
”
Aufgabe 1
Informieren Sie sich im DB2-Handbuch über
•
•
•
•
•
create view und create table
insert into
Aggregatfunktionen, group by und having
order by
case
Aufgabe 2
Die Wetterdaten ( Faktentabellen“) der einzelnen Wetterstationen befinden sich in drei verschie”
denen Tabellen: Wetter_KI, Wetter_Teneriffa und Wetter_PB. Erzeugen Sie eine Sicht, welche
die Daten dieser drei Tabellen sinnvoll vereinigt. Die Sicht soll über dem Schema
Wetter(
{Station,
Erfassungsdatum,
Erfassungszeit,
Lufttemperatur,
Wassertemperatur,
solareEinstrahlung,
Luftdruck,
Pegelstand,
Niederschlag,
Feuchte,
Windrichtung,
Windgeschwindigkeit}
)
definiert sein. Fehlende Werte sollen mit null belegt werden. Beachten Sie die Beschreibungen
der Attribute der Ausgangstabellen und schauen Sie sich die Werte in der Beispieldatenbank an.
Beschreiben Sie ihr Vorgehen.
Aufgabe 3
Stellen Sie folgende Anfragen in SQL an die in Aufgabe 2 definierte Sicht. Nutzen Sie bei
Bedarf zusätzlich die Tabellen Land, Region, Ort und Station. Wenn nicht anders angegeben,
ist das Anlegen von zusätzlichen Tabellen oder Sichten mittels create-Anweisung nicht gestattet.
Beachten Sie zusätzlich die Hinweise zu SQL im Anhang zu diesem Übungsblatt.
a. Wie hoch war die minimale, maximale und durchschnittliche Lufttemperatur in Kiel am
Westufer (Station 1) im Dezember 2005?
b. Wie hoch ist die durchschnittliche Wassertemperatur der Ostsee in Kiel?
c. Gib eine Übersicht über die minimale, maximale und durchschnittliche Windgeschwindigkeit (als Einheit: kn) in Paderborn (Station=3)
• für jeden Monat
• für jedes Jahr
• für den gesamten Messzeitraum
Fassen Sie das Ergebnis in einer einzigen Tabelle zusammen, indem sie den Jahreswerten
null als Monat und dem Gesamtwert null für Monat und Jahr zuweisen. Die Ergebnistabelle soll demnach folgende Gestalt haben:
Jahr
null
2005
...
2005
...
Monat
null
null
null
1
...
Minimum
min gesamt
min in 2005
Maximum
max gesamt
max in 2005
Durchschnitt
Durchschnitt gesamt
Durchschnitt 2005
min in Jan. 2005
max in Jan. 2005
Durchschnitt Jan. 2005
d. Für Windgeschwindigkeiten existiert die Beaufort-Skala. Den Windstärken der BeaufortSkala sind Kategorien zugeordnet, z.B. Windstille“, Frische Brise“ oder Orkan“. Hinwei”
”
”
se zur Beaufort-Skala finden Sie unter http://de.wikipedia.org/wiki/Beaufortskala.
Geben Sie eine Übersicht über die absolute Häufigkeit jeder Windkategorie in Paderborn
(Station=3), d.h. zählen Sie für jede Kategorie die Tage, an denen die maximale Windgeschwindigkeit des Tages in diese Kategorie fällt. Es interessieren nur die Kategorien, die im
Messzeitraum aufgetreten sind. Ordnen Sie die Liste nach der Windkategorie ( Windstille“
”
< Leiser Zug“ < ... < Orkan“). Sie dürfen eine zusätzliche Tabelle für die Darstellung
”
”
der Beaufort-Skala anlegen, füllen und benutzen.
e. Gib für die Station IFM-GEOMAR (Institut)“ in Kiel“, Norddeutschland“, D“ die Ge”
”
”
”
samtmenge des Niederschlags, der in der Nacht vom 15.12.2005 (19.00 Uhr) zum 16.12.2005
(07.00 Uhr) gefallen ist.
f. Wo (gesucht sind Land, Region, Ort) herrschte in welchem Monat (als Bezeichnung Ja”
nuar“ bis Dezember“) eine Durchschnitts-Lufttemperatur von mehr als 15◦ C? Sie dürfen
”
eine zusätzliche Tabelle mit den Monatsnamen anlegen, füllen und benutzen. Ordnen Sie
die Liste nach den Monatsnamen ( Januar“ < Februar“ < ... < Dezember“)
”
”
”
g. An wievielen Tagen war in Kiel (Station=1) die durchschnittliche Lufttemperatur größer
als die durchschnittliche Wassertemperatur?
Aufgabe 4
Wie groß war die Durchschnittstemperatur in Deutschland im Jahr 2005? Werten Sie die Anfrage bzgl. der gegebenen Beispieldatenbank aus und bewerten Sie die Qualität des Ergebnisses.
Begründen Sie ihre Bewertung. Geben Sie informal Maßnahmen an, um die Aussagekraft der
Statistik zu erhöhen.
Besprechung der Lösungen: 30.05., 07.06., 01.06.
Viel Erfolg!
Beschreibung der Wetter-Datenbank
Die Wetter“-Datenbank speichert Messdaten von Wetterstationen. Sie besteht aus 7 Tabellen:
”
Tabelle: Land enthält die Kürzel der Länder, in denen sich Wetterstationen befinden:
Attribut Beschreibung
Name
Kürzel des Landes (z.B. D für Deutschland)
Tabelle: Region enthält die Regionen eines Landes. Das Attribut Land ist Fremdschlüssel auf
die Tabelle Land.
Attribut Beschreibung
Land
Land, in dem sich die Region befindet.
Name
Bezeichnung der Region
Tabelle: Ort enthält die Namen der Orte, in denen sich Wetterstationen befinden. (Land,Region)
ist Fremdschlüssel bzgl. der Tabelle Region.
Attribut Beschreibung
Land
Land, in dem sich der Ort befindet.
Region
Bezeichnung der Region, in der sich der Ort befindet
Name
Ortsname
Tabelle: Station enthält die Wetterstationen, die Daten für die Wetterdatenbank liefern. Jede
Station hat eine eindeutige nummerische Id, diese Id fungiert als Primärschlüssel der Tabelle.
Außerdem hat jede Station innerhalb ihres Ortes einen eindeutigen Namen. (Land,Region,Ort)
ist Fremdschlüssel bzgl. der Tabelle Ort.
Attribut Beschreibung
id
Identifikator der Station
Land
Land, in dem sich die Station befindet.
Region
Bezeichnung der Region
Ort
Ortsname
Name
Bezeichnung der Station
Die Wetterdaten sind in drei Tabellen ( Faktentabellen“) untergebracht. Das Attribut Station
”
ist jeweils Fremdschlüssel bzgl. der Tabelle Station. Primärschlüssel der Tabelle ist jeweils die
Kombination (Station,Erfassungsdatum,Erfassungszeit).
Tabelle: Wetter KI enthält die Wetterdaten der Stationen 1 und 2. Es wird ca. alle 8 Minuten
ein Datensatz gespeichert.
Attribut
Typ
Beschreibung
Station
int
Identifikator der Station (1 oder 2)
Erfassungsdatum
date
Datum, an dem die Messwerte aufgenommen wurden
Erfassungszeit
time
Zeitpunkt, zu dem die Messwerte aufgenommen wurden
Windrichtung
double Richtung des Windes in ◦
Windgeschwindigkeit double Geschwindigkeit des Windes in m · s−1
Lufttemperatur
double Temperatur der Luft in ◦ C
Wassertemperatur
double Temperatur des Wassers der Kieler Förde in ◦ C
solareEinstrahlung
double auftreffende Strahlungsleistung der Sonne in W · m−2
Luftdruck
double Luftdruck in hPa
Pegelstand
double Pegelstand der Ostsee in m relativ zu NN
Niederschlag
double Menge des Niederschlags in mm seit der letzten Messung (07.00 Uhr bzw. 19.00 Uhr)
Feuchte
double relative Luftfeuchtigkeit in Prozent
Tabelle: Wetter PB enthält die Wetterdaten der Station 3. Für jeden Tag im Messzeitraum
existieren 8 Messwerte.
Attribut
Typ
Beschreibung
Station
int
Identifikator der Station (immer 3)
Erfassungsdatum
date
Datum, an dem die Messwerte aufgenommen wurden
Erfassungszeit
time
Zeitpunkt, zu dem die Messwerte aufgenommen wurden
Lufttemperatur
double
Temperatur der Luft in ◦ C
Feuchte
double
relative Luftfeuchtigkeit in Prozent
Luftdruck
double
Luftdruck in hPa
Niederschlag
double
Menge des Niederschlags in mm seit der letzten Messung (07.00 Uhr bzw. 19.00 Uhr)
Windgeschwindigkeit double
Geschwindigkeit des Windes in m · s−1
Windrichtung
varchar(3) Richtung des Windes bzgl. der Windrose (N, NNE,
NE, ENE, E, ESE, SE, SSE, S, SSW, SW, WSW, W,
WNW, NW, NNW)
Tabelle: Wetter Teneriffa enthält die Wetterdaten der Station 4. Es wird ca. alle 15 min. ein
Messwert gespeichert.
Attribut
Typ
Beschreibung
Station
int
Identifikator der Station (immer 4)
Erfassungsdatum
date
Datum, an dem die Messwerte aufgenommen wurden
Erfassungszeit
time
Zeitpunkt, zu dem die Messwerte aufgenommen wurden
Lufttemperatur
double Temperatur der Luft in ◦ C
Feuchte
double relative Luftfeuchtigkeit in Prozent
Luftdruck
double Luftdruck in hPa
Niederschlag
double Menge des Niederschlags in mm seit der letzten Messung (07.00 Uhr bzw. 19.00 Uhr)
Windgeschwindigkeit double Geschwindigkeit des Windes in km · h−1
Windrichtung
double Richtung des Windes in ◦
Hinweise zu SQL
• Mit den Funktionen YEAR, MONTH, DAY, HOUR, MINUTE und SECOND kann man aus Datumsund Zeitwerten die Komponenten extrahieren.
• Mittels CAST(<Expr> as <Type>) lässt sich der Typ des Ausdrucks <Expr> in den Typ
<TYPE> umwandeln.
• Der Null-Wert hat keinen bestimmten Typ. Möchte man konstant null zuweisen, so muss
man dies als CAST(null as <Type>) schreiben, wenn sich der Typ nicht aus dem Kontext
ergibt.
• In DB2 existiert eine nicht-leere Dummy-Tabelle namens SYSIBM.SYSDUMMY1.
Herunterladen