Übungsblatt 7 - Informationssysteme

Werbung
Universität Dortmund
Fachbereich Informatik, Lehrstuhl 6
Prof. Dr. Norbert Fuhr
Informationssysteme (WS 2001/2002)
Prof. Dr. Norbert Fuhr
Leitung der Übungen: Christian Altenschmidt und Ralf Menzel
Übungsblatt Nr. 7
Abgabetermin: 11. Dezember 2001, 1200 Uhr, Briefkasten 36
Aufgabe 1 (Hierarchische Anfragen)
In der Datenbank ist die Tabelle Angestellte abgelegt, die die hierarchische Struktur
eines Unternehmens darstellen soll. Hier ist zu jedem Angestellten abgespeichert, wie er
heißt, wer sein direkter Vorgesetzter ist und in welcher Abteilung er arbeitet. Formuliert
die folgenden Fragen als SQL-Anfragen an diese Tabelle:
1. Wer sind die Untergebenen von Smith?
2. Wie viele Vorgesetzte hat Bess?
3. Welche Untergebenen von King arbeiten in Abteilung 1?
Punkte 3 × 2 = 6
Aufgabe 2 (SQL, Indexe)
1. Legt Kopien der Tabellen President und Election mittels der folgenden SQLBefehle an:
CREATE TABLE my_President AS SELECT * FROM President;
CREATE TABLE my_Election AS SELECT * FROM Election;
2. Erzeugt drei Indexe zu den Tabellen, so dass die folgenden drei Anfragen dadurch
unterstützt werden.
SELECT Candidate
FROM my_Election
WHERE Candidate LIKE ’R%’;
SELECT DISTINCT Election_Year
FROM my_Election
WHERE Election_Year < 1900;
SELECT Pres_Name
FROM my_President, my_Election
WHERE Pres_Name = Candidate;
3. Lasst Eure Tabellen mittels ANALYZE ... analysieren und überprüft dann mittels
des Befehls EXPLAIN PLAN ... und der beiden Skripte ?/rdbms/admin/utlxplan
und ?/rdbms/admin/utlxpls, dass die Indexe auch wirklich benutzt werden.
Punkte 0 + 6 + 3 = 9
1
Informationssysteme
Übungsblatt Nr. 7
Hinweis: Bei der folgenden Aufgabe sollt Ihr JDBC benutzen, die Datenbankschnittstelle von JAVA. Auch Oracle stellt einen JDBC-Treiber zur Verfügung. In Oracle 9i
JDBC Developer’s Guide and Reference Kapitel 3 steht, wie man damit umgeht. Ihr
findet das Kapitel unter
http://www-software.cs.uni-dortmund.de/packets/oracle/
9.0.1/oracledoc/java.901/a90211/basic.htm
Außerdem findet Ihr eine Beispielanwendung auf unserer Homepage
http://ls6-www.cs.uni-dortmund.de/ir/teaching/lectures/is_ws01-02/.
Weitere Information zum Thema JDBC gibt es in der Java Platform API Specification lokal an den Uni-Rechnern unter
file:/app/unido-inf/sun4_55/jdk/1.2.1/docs/
api/java/sql/package-summary.html
Unter anderem werdet Ihr feststellen, dass Ihr zum Verbindungsaufbau mit der Datenbank die Adresse derselben braucht. Diese Adresse lautet für die Datenbank im Pool
jdbc:oracle:thin:@calzium:1521:fbi.
Aufgabe 3 (Oracle-Anwendung)
Implementiert eine kleine JAVA-Anwendung, die in die Tabelle USER_TEILNEHMER einträgt, ob Ihr am Ende des Semesters einen Schein zu den Übungen erwerben wollt oder
nicht (keine Sorge, der Eintrag ist nicht verbindlich und hat auch sonst keine Auswirkungen).
Euer Programm soll folgende Anforderungen erfüllen:
• Der Datenbankzugriff soll mit JDBC erfolgen.
• Jegliche Benutzerinteraktion soll im Textmodus stattfinden, d. h. Ihr sollt weder
AWT noch Swing benutzen.
• Euer Passwort für die Oracle-Datenbank darf aus naheliegenden Gründen nicht im
Klartext im Quellcode zu finden sein! Lest das Passwort am besten interaktiv von
der Konsole ein. Achtet darauf, bei der Eingabe des Passwortes das Konsolen-Echo
auszuschalten, z. B. indem Ihr es von vornherein am Terminal abschaltet:
bash-2.05$ stty -echo; java <classname> ; stty echo
Punkte 15
2
Herunterladen