05.03.2014 Aufrufe

Praktikum ” Mobile Datenbanken“

Praktikum ” Mobile Datenbanken“

Praktikum ” Mobile Datenbanken“

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.

<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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!