Datenbanksysteme I - Institut für Informatik

Werbung
Universität Augsburg, Institut für Informatik
Prof. Dr. W. Kießling
Dr. A. Huhn, M. Endres, T. Preisinger
WS 2008/2009
05. Dez. 2008
Übungsblatt 8
Datenbanksysteme I
Aufgabe 1: Erstellen einer Multimedia-Datenbank
Über JDBC soll eine Multimedia-Datenbank eingerichtet werden, die PDF-Dateien enthält. Bei den einzufügenden
PDF-Dateien handelt es sich um Veröffentlichungen im Datenbankbereich. Diese können von der Übungsseite des
Lehrstuhls heruntergeladen werden (Papers.zip).
Schreiben Sie eine Java-Klasse PDFinsert, die folgende Aufgaben übernimmt:
a) Im Konstruktor der Klasse soll die Anbindung an die Oracle-Datenbank stattfinden.
b) Schreiben Sie eine Methode, die folgende Relation auf der Oracle-Datenbank erstellt:
Papers(ID, Title, PDF)
Verwenden Sie BLOB als Datentyp für PDF.
c) Schreiben Sie eine Methode, die zunächst alle Daten außer PDF in die Datenbank einfügt. ID soll der Nummer der
PDF Datei und Titel dem Titel der Veröffentlichung entsprechen. Verwenden Sie hierfür Batch Updates. Benutzen
Sie im insert Befehl für die PDFs EMPTY BLOB() anstelle von NULL.
d) Erstellen Sie über JDBC eine Stored Procedure auf der Datenbank. Die Stored Procedure soll das Einfügen der
PDF-Dateien übernehmen, d.h. die Stored Procedure erhält die entsprechenden Daten als Parameter.
e) Implementieren Sie das Einfügen der Blobs in einer Methode mit der Signatur
public void insertData(Integer id, String pdf) throws Exception
Für die PDFs können Sie FileInputStream verwenden. Mit Hilfe von setBinaryStream können Sie dann die Blobs
an die Stored Procedure übergeben (analog zu Prepared Statements).
f) Erstellen Sie in der main-Methode die Relation Papers sowie die Stored Procedure und fügen Sie die PDF-Dateien
in die Datenbank ein.
Aufgabe 2: Volltextsuche mit Oracle Text
Verwenden Sie die in Aufgabe 1 erstellte Relation Papers mit den entsprechenden PDF-Dateien.
Um Volltextqueries ausführen zu können, müssen Sie zunächst einen Volltext-Index auf dem Attribut PDF der Relation
Papers erstellen (siehe Vorlesung).
a) Finden Sie alle Dokumente, in denen von Hill-Climbing oder Optimization die Rede ist.
b) Sie wollen Informationen über Preference SQL. Erstellen Sie eine entsprechende Volltextabfrage. Geben Sie den
SCORE mit aus.
c) Finden Sie diejenigen Artikel, in denen Kießling und nicht Chomicki zitiert wird.
d) Finden Sie heraus, in welchem Artikel soft selection und preferences nahe beieinander stehen. Betrachten Sie nur
Ergebnisse, deren Score höher als 50 ist..
1
Aufgabe 3: Relationale Algebra
Beweisen oder widerlegen Sie folgende Äquivalenzen für die Relation R und S:
a) σp (R ./ S) = σp (R) ./ S, falls p nur Attribute von R enthält
b) σr ∧ s (R ./ S) = σr (R) ./ σs (S), falls r nur Attribute von R und s nur Attribute von S enthält.
c) σpn ∧pn−1 ∧...∧p1 (R) = σpn (σpn−1 (...(σp1 (R))...))
d) πl (R ∩ S) = πl (R) ∩ πl (S)
e) πl (R ∪ S) = πl (R) ∪ πl (S)
f) πl (R \ S) = πl (R) \ πl (S)
Aufgabe 4: Semi-Join
In dieser Aufgabe soll der sog. Semi-Join betrachtet werden. Dieser ist für zwei Relationen R(A1 , ..., An , X) und
S(B1 , ..., Bn , X) definiert als
R .< S := πA1 ,...,An ,X (R ./ S)
und ermittelt alle Tupel von R, die einen natürlichen Join-Partner in S haben.
a) Verdeutlichen Sie sich den Semin-Join an einem Beispiel.
b) Überlegen Sie sich, wie der Semi-Join bei der algebraischen Optimierung eingesetzt werden könnte. Inwieweit
wirkt sich die Verwendung von Semi-Joins auf das Einführen von Projektionen aus?
Aufgabe 5: Algebraische Queryoptimierung
Betrachten Sie die folgende Anfrage:
SELECT DISTINCT s.Semester
FROM Studenten s, hören h, Vorlesungen v, Professoren p
WHERE p.Name = ’Sokrates’
AND v.gelesenVon = p.PersNr
AND v.VorlNr = h.VorlNr
AND h.MatrNr = s.MatrNr;
a) Transformieren Sie die Query in den kanonischen Ausdruck der relationalen Algebra.
b) Erstellen Sie den dazugehörigen Operatorbaum.
c) Optimieren Sie die Anfrage mit Hilfe des Hill-Climbing-Algorithmus aus der Vorlesung (Algorithmus 201).
d) Bestimmen Sie die Anzahl der Zwischenergebnisse vor und nach einer Optimierung der Verbundreihenfolge anhand der auf Blatt 4, Aufgabe 3 vorgestellten Datenbank.
2
Herunterladen