01.03.2014 Aufrufe

Aufgabenstellung - Hochschule Darmstadt

Aufgabenstellung - Hochschule Darmstadt

Aufgabenstellung - Hochschule Darmstadt

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

HOCHSCHULE DARMSTADT, FB INFORMATIK<br />

DATENBANKEN - PRAKTIKUM<br />

INGE SCHESTAG WS 2013/14<br />

Praktikum 6 – Teil I: JDBC, Explains und Statistics (Optimizerstrategien)<br />

Vorbereitung zum Praktikum:<br />

Erstellung der lauffähigen Java-Applikation für Teil I, 1. - 3.<br />

Hinweis: Als Basis für Ihre Java-Applikation können Sie die Beispielklasse MyJdbcStatement.java<br />

(s. Materialien zu Kapitel 6) verwenden.<br />

Der Besitzer des Bootsverleihs hat im Neujahrs-Lotto gewonnen! <br />

Deshalb kann er sich zu jedem seiner vier Bootstypen neue Boote kaufen wie folgt:<br />

Bootstyp Royal Magnifique : 100 neue Boote<br />

Bootstyp Calypso:<br />

300 neue Boote<br />

Bootstyp Clipper :<br />

500 neue Boote<br />

Bootstyp Cirrus:<br />

800 neue Boote<br />

Schreiben Sie eine Java-Applikation, die das Anlegen der neuen Boote in der Datenbank<br />

ausführt. Die Anzahl der Boote pro Bootstyp soll über die Console parametrisierbar sein:<br />

1. Bauen Sie eine Connection zur Ihrer Oracle-Datenbank „Bootsverleih“ auf. Setzen Sie in<br />

der Java-Applikation AutoCommit für diese Session auf „false“.<br />

2. Lesen Sie alle Bootstypen aus Ihrer Datenbank aus und ermöglichen Sie pro Bootstyp<br />

die Eingabe der Anzahl neuer Boote über die Console:<br />

BufferedReader bin = new BufferedReader(<br />

new InputStreamReader(System.in));<br />

System.out.println("Bitte Anzahl eingeben für … ");<br />

int a = Integer.parteInt(bin.readLine());<br />

3. Fügen Sie die angegebene Anzahl neuer Boots-Datensätze für den jeweiligen Bootstyp<br />

über ein PreparedStatement ein – commit nicht vergessen!<br />

Beispiel zur Übergabe von Datumskonstanten an ein PreparedStatement:<br />

pstmt.setDate(3, java.sql.Date.valueOf("2013-07-01"));<br />

4. Führen Sie das Java-Programm zum Einfügen der neuen Boote aus.<br />

5. Überprüfen Sie im SQL-Developer, ob die 1.700 neuen Boote zusätzlich zu den vorhandenen<br />

15 Booten eingefügt wurden.<br />

6. Überprüfen Sie mit einer Abfrage auf den Systemkatalog, welchen Wert die Spalte<br />

num_rows in der Tabelle user_tables für die Tabellen Boot bzw. Bootstyp hat:<br />

select num_rows from user_tables where table_name = ’BOOT’;<br />

7. Formulieren Sie einen Join zwischen den Tabellen Boot und Bootstyp und lassen Sie<br />

dafür den Ausführungsplan (Explain-Plan) ausführen.<br />

8. Aktualisieren Sie jetzt die Statistik für die Tabellen Boot bzw. Bootstyp wie folgt:<br />

execute DBMS_STATS.GATHER_TABLE_STATS('studxxx’, ’BOOT’);<br />

9. Wiederholen Sie Schritt 6. und 7. – welche Beobachtung machen Sie?<br />

Beachten Sie die „Hinweise zum Arbeiten mit JDBC“ auf Seite 3!<br />

Termine: 15.01. / 22.01. / 24.01.2014 1 / 3


HOCHSCHULE DARMSTADT, FB INFORMATIK<br />

DATENBANKEN - PRAKTIKUM<br />

INGE SCHESTAG WS 2013/14<br />

Praktikum 6 – Teil II: Transaktionsmanagement – Isolationlevel<br />

im konkurrierenden Zugriff zweier Oracle-Sessions<br />

1. Starten Sie zu Beginn zwei Oracle-Sessions auf Ihrem Arbeitsplatzrechner im Labor<br />

mit dem gewohnten Login über den SQL-Developer.<br />

2. Vergewissern Sie sich, dass der Autocommit-Status beider Sessions auf OFF gesetzt<br />

ist. Diese Einstellung finden Sie unter<br />

Extras Voreinstellungen Datenbank (Database) Erweitert: Autocommit <br />

nicht anchecken!<br />

3. Auf dem SQL-Arbeitsblatt können Sie dann jeweils mit der folgenden Anweisung den<br />

ISOLATION_LEVEL der aktuellen Session ändern:<br />

ALTER SESSION SET ISOLATION_LEVEL = ;<br />

4. Führen Sie die Operationen innerhalb der beiden offenen Oracle-Sessions auf Ihrer Datenbank<br />

„Bootsverleih“ entsprechend der nachfolgenden Tabelle interaktiv aus (Tabelle<br />

tab = Tabelle BOOTSTYP):<br />

SQL-Developer I<br />

SQL-Developer II<br />

1 BOT T1<br />

2 T1 liest tab<br />

3 T1 schreibt tab<br />

5 T1 liest tab<br />

6 BOT T2<br />

7 T2 liest tab<br />

8 T2 schreibt tab<br />

9 T1 liest tab<br />

10 Commit T1<br />

11 T2 liest tab<br />

12 Commit T2<br />

Protokollieren Sie die Ergebnisse der beiden Transaktionen auf der Oracle Datenbank<br />

unter folgenden Isolationleveln: Serializable und Read Committed.<br />

Welches Verhalten erwarten Sie jeweils? Erklären Sie das beobachtete, unterschiedliche<br />

Verhalten – entspricht es Ihren Erwartungen?<br />

5. Führen Sie zwei konkurrierende Transaktionen in zwei parallelen Oracle-Sessions<br />

(SQL-Developer) auf Ihrer Datenbank so aus, dass ein Dead Lock entsteht.<br />

Termine: 15.01. / 22.01. / 24.01.2014 2 / 3


HOCHSCHULE DARMSTADT, FB INFORMATIK<br />

DATENBANKEN - PRAKTIKUM<br />

INGE SCHESTAG WS 2013/14<br />

Hinweise zum Arbeiten mit JDBC<br />

<br />

<br />

<br />

Bereitstellung eines Oracle-JDBC-Treibers:<br />

Um auf eine Oracle-Datenbank per JDBC zugreifen zu können, muss ein entsprechender<br />

JDBC-Treiber verfügbar gemacht werden:<br />

- Den JDBC-Treiber ojdbc14.jar können Sie sich bei den Materialien zu Praktikum<br />

6 herunterladen.<br />

Treiberklassename für den Class.forName()-Methodenaufruf ist dann:<br />

"oracle.jdbc.OracleDriver"<br />

url: "jdbc:oracle:thin:@141.100.70.40:1521:orcl"<br />

- Falls Sie Oracle Express lokal auf ihrem Rechner installiert haben, müssen Sie<br />

die url des Connection-String folgendermaßen anpassen (vgl. auch Beispiel-<br />

Javaklasse):<br />

url: "jdbc:oracle:thin:@localhost:1521:XE"<br />

Sie können als IDE die im Labor verfügbaren IDE NetBeans oder Eclipse verwenden.<br />

Einbinden des jar-Files in die IDE:<br />

Eclipse<br />

Im Kontextmenü (rechte Maustaste) des Projektes:<br />

Build Path Add External Archives<br />

und dort den zuvor herunter geladenen JDBC-Treiber odbc14.jar auswählen.<br />

NetBeans<br />

Innerhalb des Projektes im Kontextmenü (rechte Maustaste) des Unterordners<br />

Libraries Add JAR/Folder<br />

und dort den zuvor herunter geladenen JDBC-Treiber odbc14.jar auswählen.<br />

Termine: 15.01. / 22.01. / 24.01.2014 3 / 3

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!