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