Praktikum â Mobile Datenbankenâ
Praktikum â Mobile Datenbankenâ
Praktikum â Mobile Datenbankenâ
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
<strong>Praktikum</strong> ”<br />
<strong>Mobile</strong> Datenbanken und Informationssysteme“ – Wintersemester 2004/05<br />
<strong>Praktikum</strong> ”<br />
<strong>Mobile</strong> Datenbanken“<br />
Aufgabenblatt 2: CVS, SQL, JDBC<br />
Dieser Versuch dient dem Auffrischen von SQL-Kenntnissen und der praktischen Erfahrung beim<br />
Einsatz von SQL. Weiterhin wird der Umgang mit einer relationalen Datenbank von Java heraus<br />
über die JDBC-Schnittstelle geübt.<br />
Hinweise zur Bearbeitung<br />
• Die Daten liegen in einer relationalen Pointbase-Datenbank ”<br />
Mobicon“ vor.<br />
• Der Zugriff auf die Datenbasis erfolgt über JDBC von Java-Programmen heraus.<br />
• Als Programmierunterstützungsumgebung (zur Definition von Abhängigkeiten zwischen Dateien<br />
und Konsistenthaltung mittels automatischer Erzeugung von aktualisierten Versionen,<br />
z.B. beim Kompilieren) wird für die Java-Umgebung das Ant-System verwendet. Nutzen Sie<br />
für die Aufgaben das in der Vorlesung vorgestellte Programmier-Rahmenwerk mit den vorgegebenen<br />
Ordnern, Dateien und über Ant in der Datei build.xml definierten Abhängigkeiten<br />
der Programmentwicklungsaktionen (Targets).<br />
• Möglich ist auch die ergänzende Nutzung des Java-Entwicklungssystems Sun ONE Studio<br />
oder Eclipse.<br />
• Verwalten Sie Ihre Programmversionen mit einem CVS-System.<br />
Anwendungsszenario:<br />
Das Anwendungsszenario ist eine Vertriebsdatenbank (Mobicon), in der Handlungsreisende ihre<br />
Kunden in verschiedenen Ländern betreuen und Bestellungen dieser Kunden für Produkte verwalten.<br />
Die Struktur der Datenbasis ist im beiliegenden ER-Diagramm sowie in dem Tabellenstruktur-<br />
Diagramm, die aus der Vorlesung bekannt sind, beschrieben.<br />
Aufgabe 1: [Nutzung von CVS] (1 Punkte)<br />
Führen Sie die folgenden Schritte mit Hilfe des Werkzeugs Smart-CVS durch:<br />
a) Checken Sie das Modul für die JDBC-Aufgabe aus Ihrem Repository aus. Die notwendigen<br />
Einstellungen sowie Login und Passwort bekommen Sie per Mail zugesandt.<br />
b) Legen Sie im Verzeichnis mobicon ein Verzeichnis test an, und erzeugen Sie in test<br />
eine leere Datei mit dem Namen name.txt. Fügen das Verzeichnis test und die darin<br />
enthaltene Datei dem Repository hinzu (durch Einchecken).<br />
c) Löschen Sie das Verzeichnis test auf ihrem lokalen Checkout-Verzeichnis (aber nicht im<br />
Repository)<br />
Aufgabenblatt 2: CVS, SQL, JDBC 1
<strong>Praktikum</strong> ”<br />
<strong>Mobile</strong> Datenbanken und Informationssysteme“ – Wintersemester 2004/05<br />
d) Regenerieren Sie test und name.txt lokal, indem Sie das Verzeichnis aus dem Repository<br />
auschecken.<br />
e) Öffnen Sie name.txt und tragen Sie ihren Vornamen in die erste Zeile ein.<br />
f) Checken Sie die geänderte Version (genauer Revision) von name.txt ein.<br />
g) Versehen Sie name.txt mit dem Tag vorname im Repository.<br />
h) Tragen Sie nun Ihren Nachnahmen sowie die aktuelle Versionsnummer (genauer Revisionsnummer)<br />
in die zweite Zeile der Datei ein und checken Sie die neue Version der Datei ein.<br />
i) Holen Sie die Revision von name.txt mit dem Tag vorname aus dem Repository und<br />
speichern Sie sie unter dem Namen old name.txt im Verzeichnis test.<br />
j) Nutzen die Compare-Funktion von Smart-CVS und vergleichen Sie die aktuellste Version<br />
(bzw. Revision) von name.txt mit der Version, die das Tag vorname besitzt. Smart-CVS<br />
zeigt den gesuchten Wert hell-grün unterlegt in einem separaten Fenster an. Tragen Sie diesen<br />
Wert in die zweite Zeile der Datei old name.txt ein.<br />
k) Checken Sie abschließend die Datei old name.txt ins Repository ein.<br />
Bedenken Sie bei der Lösung dieser Aufgabe:<br />
• Trotz der vielen Schritte ist die Aufgabe sehr schnell lösbar.<br />
• Die Tutoren können nachträglich feststellen, ob Sie die Schritte ordnungsgemäß durchgeführt<br />
haben. Wenn Ihnen ein Fehler unterläuft, beginnen Sie erneut mit einem Verzeichnis test2<br />
(anstatt test) bzw. test3 und so fort.<br />
• Die Aufgabe gilt nur dann als gelöst, wenn die vorgeschriebenen Schritte präzise durchgeführt<br />
wurden.<br />
Für alle nachfolgenden Aufgaben des <strong>Praktikum</strong>s basiert die Abnahme ausschließlich auf den Dateien,<br />
die Sie ins Repository eingecheckt haben. Dies gilt insbesondere bereits für die nachfolgenden<br />
vier JDBC-Aufgaben.<br />
Aufgabe 2: [SQL-Anfragen] (3 Punkte)<br />
Im Folgenden wollen Handlungsreisende (Employees) einige Informationen aus der Mobicon-Datenbank<br />
erhalten. Gehen Sie so vor, dass die Ergebnisse jeweils in ein Result-Set aus der Datenbank geschrieben<br />
werden und dann die Programmausgabe aus dem Result-Set erfolgt.<br />
a) Für die Handlungsreisende ”<br />
Janet Leverling“ (mit Vornamen ”<br />
Janet“ und Nachnamen ”<br />
Leverling“)<br />
sollen die von ihr getätigten Bestellungen (Orders) des Jahres 1997 ausgegeben<br />
werden. Die Bestellungen sollen sortiert nach dem Bestelldatum sein. (1 Punkt)<br />
b) Für eine Übersicht werden<br />
• alle Kunden mit ihren beschreibenden Daten benötigt,<br />
2 Aufgabenblatt 2: CVS, SQL, JDBC
<strong>Praktikum</strong> ”<br />
<strong>Mobile</strong> Datenbanken und Informationssysteme“ – Wintersemester 2004/05<br />
• sowie für jeden Kunden, aus welchem Land dieser ist und wie hoch die Steuer (tax) dort<br />
liegt.<br />
(1 Punkt)<br />
c) Erstellen Sie eine Liste der Produkte, die in Irland von Feinkost-Zip eingekauft werden, unter<br />
Angabe des Produktnamens und des Preises und der Kategorie, zu der das Produkt gehört.<br />
Sortieren Sie die Ausgabe nach der Kategorie und dem Preis. (1 Punkt)<br />
Aufgabe 3: [Prepared Statements] (2 Punkte)<br />
a) Teilaufgabe 2a) soll nun so erweitert werden, dass die Anfrage für einen beliebigen Handlungsreisenden<br />
möglich ist. Schreiben Sie für die in Teilaufgabe 2a) gegebene Anfrage hierzu<br />
ein so genanntes Prepared Statement, wobei Sie als Parameter den Vor- und Nachnamen des<br />
Handlungsreisenden einführen. Testen Sie das Programm für zwei beliebige Handlungsreisende,<br />
die in der Datenbasis enthalten sind. (1 Punkt)<br />
b) Nutzen Sie das Prepared Statement zur Beantwortung der folgenden Anfrage: Wie hoch ist<br />
”<br />
die Summe der Verkaufspreise für die 5 neuesten Aufträge (Orders) der Handlungsreisenden<br />
Margaret Peacock“.“ (1 Punkt)<br />
”<br />
Aufgabe 4: [Komplexere SQL-Anfragen, ResultSets] (2 Punkte)<br />
a) Erstellen Sie eine Liste der Produkte unter Angabe des Produktnamens und des Preises, die<br />
in Spanien oder in Portugal verkauft werden. (1 Punkt)<br />
b) Erweitern Sie die Liste der Produkte aus Teilaufgabe 4a um die Angabe, in welchen Ländern<br />
bisher noch kein (dort wohnender) Kunde das jeweilige Produkt gekauft hat. (1 Punkt)<br />
Aufgabe 5: [Erzeugungs- und Änderungsoperationen] (2+2 Punkte)<br />
a) Erstellen Sie eine neue Relation ”<br />
BegehrteProdukte“ mit den Attributen aus der Relation<br />
Products ergänzt um ein Attribut ”<br />
Kategorie“ (entsprechend CategoryName aus der Relation<br />
Categories). (1 Punkt)<br />
b) Fügen Sie in die Relation dann durch ein SQL-Insert-Statement Tupel aus der existierenden<br />
Mobicon-Datenbasis ein mit folgender Eigenschaft: Die Produkte sollen nur dann eingefügt<br />
werden, wenn es mindestens einen Auftrag im Jahre 1997 oder/und 1998 gab. Das Attribut<br />
Kategorie soll die dem Produkt zugeordnete Kategorie enthalten. (1 Punkt)<br />
c) Beantworten Sie auf der erzeugten Relation die Anfrage: Wie hoch ist der durchschnittliche<br />
Preis der Produkte aus der Relation ”<br />
BegehrteProdukte“ und wie viele Produkte sind in der<br />
Relation enthalten. (1 Zusatzpunkt)<br />
Aufgabenblatt 2: CVS, SQL, JDBC 3
<strong>Praktikum</strong> ”<br />
<strong>Mobile</strong> Datenbanken und Informationssysteme“ – Wintersemester 2004/05<br />
d) Erhöhen Sie den Preis für die Produkte in der Relation ”<br />
BegehrteProdukte“, die über dem<br />
Durchschnittspreis liegen (also die höherwertigen Produkte) um 10%. (1 Zusatzpunkt)<br />
4 Aufgabenblatt 2: CVS, SQL, JDBC