Beruflich Dokumente
Kultur Dokumente
2012
5. Übungsblatt
(Testatwoche: 22. - 24. Mai 2012)
Einführung in Datenbanksysteme
Datenbanken für die Bioinformatik
Agnès Voisard, Sebastian Müller
Die Tabelle speicherte eine Liste von Produkten. Jedes Produkt hat eine
eindeutige ID prod_id (Datentyp integer). Das Attribut name (Datentyp
varchar(256)) ist der Name des Produkts. Das Attribut beschreibung
(Datentyp text) ist die Beschreibung des Produkts.
Die Tabelle speicherte eine Liste von Orten. Jeder Ort hat eine eindeutige
ID ort_id (Datentyp integer). Das Attribut name (Datentyp varchar(256)) ist
der Name des Orts. Die Attribute x und y (Datentyp integer) sind die
Koordinaten des Orts.
Die Tabelle speicherte eine Liste von Aufenthalten. Jeder Aufenthalt gehört
zu einer Transaktion und zu einem Ort. Er hat eine gewisse Dauer (Attribut
dauer mit Datentyp double). Die Attribute x und y (Datentyp integer) sind
die Mittelwerte der Koordinaten des Aufenthalts.
a) Schreiben Sie einen SQL Befehl, der die Tabelle Aufenthalt mit
passenden Datentypen und allen notwendigen Integritätsbedingungen
erstellt.
R a b c S b d T d e
1 2 3 2 4 4 1
2 2 4 3 3 4 2
3 3 4
Werten Sie die folgenden Ausdrücke aus, geben Sie jeweils die Ergebnismenge der einzelnen
Anfragen an.
a) Select * from ( R natural full outer Join t)
b) Select * from R natural Join S natural JOIN T
c) Select * from R Join S on R.c=S.b natural JOIN T
d) Select r.a, S.b from R Join S on R.c!=S.b natural Join T
e) Select r.a, S.b, d from
R Join S on R.c!=S.b natural Join T
SELECT * FROM R
WHERE R.a <operator>
(SELECT b FROM S WHERE S.c = 1);
a) IN
b) = ANY
c) = ALL
d) NOT IN
e) <> ANY
f) <> ALL
Ausgabe 17.05.2012
Einführung in Datenbanksysteme, Datenbanken für die Bioinformatik Sommersemester
2012
Für typische Data Warehouse Operationen wurden dem SQL Befehlssatz
weitere Befehle zur Gruppierung bzw. Aggregation von Werten
hinzugefügt. Im Detail handelt es sich hierbei z.B. um sogenannte
Grouping Sets (Operatoren GROUPING SETS, CUBE, ROLLUP). Bitte
verschaffen Sie sich über http://wiki.postgresql.org/wiki/Grouping_Sets
einen Überblick über deren Funktionalität. Gegeben sei die Faktentabelle
aus Übungsblatt 3:
c) Erstellen Sie mit Hilfe des CUBE Operators einen Würfel mit
Zuhilfename aller „Dimensionen“ (Sparte, Region, Quartal). Ein Würfel
enthält alle möglichen Aggregationskombinationen. Wie sieht die
Ergebnismenge aus?
d) Wie würden Sie den Ausdruck aus Teilaufgabe c in „normalem“ SQL mit
Hilfe von GROUP BY ausdrücken?
Kann man – wenn ja, wie; wenn nein, warum nicht – das HAVING-Prädikat
für Gruppen durch Zeilenprädikate ausdrücken?
Benutzen Sie als Beispiel die Tabelle aus 3a (Name: Fakten) und folgenden
SQL-Ausdruck:
Ausgabe 17.05.2012