6. Übung - Datenbankprogrammierung



Ähnliche Dokumente
JDBC. Allgemeines ODBC. java.sql. Beispiele

Unsere Webapplikation erweitern

seit Java 1.1 Bestandteil der API: packages java.sql, javax.sql

Java Database Connectivity (JDBC) Walther Rathenau Gewerbeschule 1

Informatik Grundlagen, WS04, Seminar 13

Datenbanken & Informationssysteme Übungen Teil 1

Programmierkurs Java

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Übung 7 DBMS-FUNKTIONALITÄTEN UND DATENIMPORT

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

1 Vom Problem zum Programm

Installation OMNIKEY 3121 USB

Professionelle Seminare im Bereich MS-Office

Melde- und Veröffentlichungsplattform Portal (MVP Portal) Hochladen einer XML-Datei

Rundung und Casting von Zahlen

Gezielt über Folien hinweg springen

Synchronisations- Assistent

Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum:

SEPA-Leitfaden für PC-VAB Version Inhalt

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

BEDIENUNG ABADISCOVER

JDBC. Es kann z.b. eine ODBC-Treiberverbindung eingerichtet werden, damit das JAVA-Programm auf eine ACCESS-DB zugreifen kann.

Aktualisierung zum Buch Windows und PostgreSQL

Tipps und Tricks zu den Updates

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

Step by Step Softwareverteilung unter Novell. von Christian Bartl

Benutzerhandbuch - Elterliche Kontrolle

Oracle: Abstrakte Datentypen:

Datenbanken 1. Einführung und Zugänge für die eingesetzten Resourcen. ISWeb - Information Systems & Semantic Web University of Koblenz Landau, Germany

KIP Druckerstatus Benutzerhandbuch KIP Druckerstatus Installations- und Benutzerhandbuch

FH-SY Chapter Version 3 - FH-SY.NET - FAQ -

M. Graefenhan Übungen zu C. Blatt 3. Musterlösung

OP-LOG

Einwahlanleitung für DIS-Übungen

ecaros2 Installer procar informatik AG 1 Stand: FS 09/2012 Eschenweg Weiterstadt

SQL-Injection. Seite 1 / 16

f Link Datenbank installieren und einrichten

Anbindung des Onyx Editors an das Lernmanagementsystem OLAT Anwendungsdokumentation

Angaben zu einem Kontakt...1 So können Sie einen Kontakt erfassen...4 Was Sie mit einem Kontakt tun können...7

Vorbereitung auf die SEPA-Umstellung

Anleitung für die Einrichtung weiterer Endgeräte in 4SELLERS SalesControl

Hardware - Software - Net zwerke

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick Parameterübergabe...

Abfragen: Grundbausteine

Software- und Druckerzuweisung Selbstlernmaterialien

Institut für Programmierung und Reaktive Systeme 25. August Programmier-Labor Übungsblatt. int binarysearch(int[] a, int x),

Prozedurale Datenbank- Anwendungsprogrammierung

ecaros2 - Accountmanager

Datenübernahme von HKO 5.9 zur. Advolux Kanzleisoftware

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München

Datenbanken Kapitel 2

How to install freesshd

So laden Sie Ihre Dissertation auf den Stabi-Server. Online-Dissertationen

Notizen. 1 Inhaltsverzeichnis 1 INHALTSVERZEICHNIS EINLEITUNG KONFIGURATIONSEINSTELLUNGEN VERTRAUENSWÜRDIGE SITES HINZUFÜGEN...

Umzug der Datenbank Firebird auf MS SQL Server

Password Depot für ios

Voraussetzungen für die Nutzung der Format Rechenzentrumslösung (Hosting)

Grundlagen der Programmierung Prof. H. Mössenböck. 14. Schrittweise Verfeinerung

Virtuelle COM-Schnittstelle umbenennen

5. Übung: PHP-Grundlagen

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: )

Internationales Altkatholisches Laienforum

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

I.1 Die Parrot Assemblersprache

NODELOCKED LIZENZ generieren (ab ST4)

Studentische Lösung zum Übungsblatt Nr. 7

Fall 1: Neuinstallation von MyInTouch (ohne Datenübernahme aus der alten Version)

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Datenbankentwurf & Datenbankzugriff mit JDBC. Georg Köster Sven Wagner-Boysen

Dieses UPGRADE konvertiert Ihr HOBA-Finanzmanagement 6.2 in die neue Version 6.3. Ein UPGRADE einer DEMO-Version ist nicht möglich.

LANiS Mailversender ( Version 1.2 September 2006)

Anleitung. Lesezugriff auf die App CHARLY Termine unter Android Stand:

Oracle SQL Tutorium - Wiederholung DB I -

Handbuch ECDL 2003 Modul 2: Computermanagement und Dateiverwaltung Der Task-Manager

Anleitung über den Umgang mit Schildern

Abwesenheitsnotiz im Exchange Server 2010

Künstliches binäres Neuron

Bedienungshinweise für das Smartboard. Basisfunktionen

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.

Hilfedatei der Oden$-Börse Stand Juni 2014

3 Wie bekommen Sie Passwortlevel 3 und einen Installateurscode?

Version White Paper ZS-TimeCalculation und die Zusammenarbeit mit dem iphone, ipad bzw. ipod Touch

Interaktive Webseiten mit PHP und MySQL

Informatik 12 Datenbanken SQL-Einführung

Anleitung. Verschieben des alten -Postfachs (z.b. unter Thunderbird) in den neuen Open Xchange-Account

Tutorial Einrichtung eines lokalen MySQL-Servers für den Offline-Betrieb unter LiveView

cs241: Datenbanken mit Übungen HS 2011

LEITFADEN ZUR SCHÄTZUNG DER BEITRAGSNACHWEISE

Dokumentation: ZIBXL - Auswertung der internen Umbuchungen

Verarbeitung von ZV-Dateien im Internetbanking. Inhalt. 1. Datei einlesen Datei anzeigen, ändern, löschen Auftrag ausführen...

Datenbank LAP - Chefexperten Detailhandel

MIN oder MAX Bildung per B*Tree Index Hint

Antolin-Titel jetzt automatisch in WinBIAP kennzeichnen

Step by Step Benutzerverwaltung unter Novell. von Christian Bartl

Hilfe zum Warenkorb des Elektronischen Katalogs 2007 Version 1.0

CMS.R. Bedienungsanleitung. Modul Cron. Copyright CMS.R Revision 1

LDAP Konfiguration nach einem Update auf Version 6.3 Version 1.2 Stand: 23. Januar 2012 Copyright MATESO GmbH

Transkript:

6. Übung - Datenbankprogrammierung Java Database Connectivity (JDBC) und Open Database Connectivity (ODBC) Ziel der Übung. Kommunikation von C- und Java-Anwendungen mit DB2. Aufgaben Teil 1: JDBC Verwenden Sie zum Verbindungsaufbau zur jeweiligen Datenbank den DB2 Universal JDBC- Treiber vom Typ 4 mit Eingabe von Nutzername und Passwort! Beachten Sie aber, dass Sie bei der Einreichung Ihrer Lösung diese Daten wieder löschen. Für die Verwendung der JDBC- Treiber müssen die speziellen Bibliotheken dem Projekt hinzugefügt werden. Diese befinden sich im Verzeichnis /opt/ibm/db2/v9.7/java. 1. Aufgabe: Datenbankanfragen mit JDBC (4 Punkte) Die folgenden Teilaufgaben arbeiten auf der GEODB-Datenbank. Falls die GEODB-Datenbank nicht vorhanden ist, dann führen Sie bitte die Skripte create.sql und import.sql im Verzeichnis /home/dbprog/data/geodb/ aus. Schreiben Sie eine Datenbankanwendung, welche Informationen zu einem vom Nutzer angegebenen Ort liefert! Die Anwendung soll dazu den Namen der Stadt oder Gemeinde von der Standardeingabe lesen und bei leerer Eingabe beenden. Hinweis: Nutzereingaben können unter Java wie folgt verarbeitet werden: public void <name>(<a r g s >) throws IOException { BufferedReader in = new BufferedReader (new InputStreamReader ( System. in ) ) ; S t r i n g s = in. readline ( ) ; while ( s!= null && s. l ength ( ) > 0) { //... s = in. readline ( ) ; Die folgenden Teilaufgaben erweitern iterativ die Leistungsfähigkeit Ihres Programms. 1. Ermitteln Sie alle Landkreise, in denen der übergebene Ort vorkommt, und listen Sie diese alphabetisch sortiert auf! Lösen Sie diese Aufgabe (a) mittels normalen Datenbankabfragen! (0.5) (b) mittels vorkompilierten, parametrisierten Datenbankabfragen! (0.5) 2. Ermitteln Sie für jeden Landkreis der Stadt alle anderen Städte in diesem Landkreis! Handelt es sich um eine kreisfreie Stadt (siehe Beispiel unten), so geben Sie stattdessen alle Ortsteile der übergebenen Stadt an! (2) 1

Beispiel: Die Ausgabe für die Stadt Weimar könnte wie folgt aussehen: Stadt? Weimar 1. Weimar im Landkreis "Kreisfreie Stadt Weimar" - Ortsteile: <unbekannt> 2. Weimar im Landkreis "Landkreis Marburg-Biedenkopf" - Andere Staedte: Amöneburg; Angelburg; Bad Endbach; Biedenkopf; [...] 3. Was ist der Unterschied zwischen Typ 2 und Type 4 JDBC-Treibern und warum ist es bei Typ 2 nicht notwendig einen Benutzer und Passwort anzugeben? (1) 2. Aufgabe: Verarbeiten von Meta-Informationen (3 Punkte) 1. Ermittlen Sie einige Metainformationen zur TPCH-Datenbank (1)! Verwenden Sie dazu die vier Funktionen DatabaseMetaData.getDatabase*() und DatabaseMetaData.getDriver*()! Hinweis: Die JavaDoc-Dokumentation der DatabaseMetaData-Klasse beschreibt alle relevanten Funktionen. 2. Geben Sie die Namen aller in Ihrem Schema (DB2INS??) definierten Tabellen aus! Greifen Sie dazu nicht auf den Systemkatalog zu, sondern verwenden Sie die durch JDBC bereitgestellten Metadaten! (1) 3. Schreiben Sie eine Methode print(resultset rs, int k), welche sowohl die Attributnamen als auch die ersten k Zeilen des übergebenen ResultSets auf dem Bildschirm ausgibt! Nach Abarbeitung der Methode soll das ResultSet geschlossen werden. (1) Tipp: Auch ResultSets haben Metadaten. Beispiel: Die Ausgabe der ersten drei Zeilen für die Anfrage SELECT R REGIONKEY, TRIM(R NAME) FROM REGION könnte wie folgt aussehen: Attribute: (R_REGIONKEY, R_NAME) (0, AFRICA ) (1, AMERICA ) (2, ASIA ) Teil 2: ODBC Verwenden Sie zum Verbindungsaufbau zur Datenbank die ODBC-Funktion SQLConnect mit Eingabe von Nutzername und Passwort! Achten Sie vor Abgabe der Übung darauf, das Passwort wieder zu entfernen! Achtung, die Übung ist so vorzubereiten, dass sie auf dem db4702-server kompilier- und ausführbar ist! 3. Aufgabe: Ausführen der Beispielanwendung Kopieren Sie die Beispielanwendung von /home/dbprog/examples/odbc/mycliapp.c in Ihr Verzeichnis. Ändern Sie entsprechend den Nutzernamen und das Passwort, kompilieren Sie die Anwendung und führen Sie diese aus. 2

Hinweis: Verwenden Sie dazu das Script /home/dbprog/build/build-app.sh. 4. Aufgabe: Arbeiten mit Meta-Informationen (1 Punkt) Ermitteln Sie folgende Metainformationen über die TPCH-Datenbank: 1. Name und Version des Datenbankmanagers (SQL DBMS NAME und SQL DBMS VER) 2. Name und ODBC-Version des Treibers (SQL DRIVER NAME und SQL DRIVER ODBC VER) 3. Name der Datenbank (SQL DATABASE NAME) Hinweis: Verwenden Sie dazu die Funktion SQLGetInfo()! 5. Aufgabe: Datenbankabfragen mit ODBC (2 Punkte) Die folgenden Aufgaben arbeiten auf der TPCH-Datenbank. Schreiben Sie eine Datenbankanwendung, welche Informationen zu einem vom Nutzer angegebenen Land liefert. Die Anwendung soll dazu den Namen des Landes von der Standardeingabe lesen. Hinweis: Nutzereingaben können unter C wie folgt verarbeitet werden: int main ( int argc, char argv [ ] ) { char input [ 5 0 ] ; p r i n t f ( Landkreis : ) ; f g e t s ( input, 50, s t d i n ) ; input [ s t r l e n ( input ) 1] = \0 ; //... 1. Ermitteln Sie alle Kunden, die im übergebenen Land (NATION) vorkommen und listen Sie diese auf! Lösen Sie diese Aufgabe (a) mittels normalen Datenbankabfragen! (0.5) (b) mittels vorkompilierten, parametrisierten Datenbankabfragen! (0.5) 2. Ermitteln Sie zusätzlich den Namen aller Teile, die von einem Lieferanten aus der übergebenen Nation stammen. (1) 6. Aufgabe: Verarbeiten von Stored Procedures mit ODBC (1.5 Punkte) Schreiben Sie eine Datenbankanwendung, welche die Personalkosten zu einer vom Nutzer angegebenen Projektnummer liefert! Die Anwendung soll sich dazu mit der SAMPLE-Datenbank verbinden und die Nummer des Projekts von der Standardeingabe lesen. Hinweis: Nutzen Sie die Stored Procedure PROJBUDGET (IN PROJNO, OUT BUDGET)! Laden Sie von der Kommandozeile aus das Script /home/dbprog/examples/odbc/projbudget.sql, um die Stored Procedure anzulegen. Beispiel: Die Ausgabe für die Projektnummer AD3111 könnte wie folgt aussehen: Projektnummer? AD3111 Personalkosten: 81538 3

Teil 3: Zertifizierungsvorbereitung (3.5 Punkte) Die hier gestellten Aufgaben sollen Sie auf die IBM-DB2-Zertifizierung vorbereiten. 1. Which of the following JDBC objects can be used to get information about the data types that have been assigned to each column returned when the following query is executed? SELECT * FROM DEPARTMENTS ResultSet DatabaseMetaData ResultSetMetaData 2. Which of the following JDBC interfaces contains methods that are called to determine whether or not cursors persist across COMMIT boundaries? ResultSet DatabaseMetaData ResultSetMetaData 3. Which of the following JDBC objects can be used to execute SQL statements that contain parameter markers? CallableStatement PreparedStmt CallableStmt 4. Which of the following JDBC object methods can be used to obtain DB2-specific error values if the execution of an update operation fails?.geterrorcode() PreparedStatement.getSQLCA() ResultSet.getError() SQLException.getErrorCode() 5. Which of the following CLI/ODBC statement handle attributes is used to control the number of rows that are retrieved from a result data set each time the SQLFetch() function is called? SQL ATTR MAX ROWS SQL ATTR ROW ARRAY SIZE SQL ATTR ROWSET SIZE 4

SQL ATTR FETCH SIZE 6. Which of the following CLI/ODBC functions can cause a cursor to be opened? SQLFetch() SQLPrep() SQLExecDirect() SQLOpen() 7. Which two of the following options will cause a dialog to be displayed when more information is needed by the SQLDriverConnect() function than was provided in the connection string used? SQL DRIVER NOPROMPT SQL DRIVER COMPLETE SQL DRIVER QUERY USER SQL DRIVER COMPLETE REQUIRED SQL DRIVER PROMPT USER Abgabe Bitte senden Sie alle Lösungen in Form einer SQL-Datei und einer SQLJ-Datei bis zum Dienstag, den 16.06.2015, an Martin Kettel (martin.kettel@mailbox.tu-dresden.de). Für Lösungen von Textaufgaben bitte Kommentare innerhalb des SQL-Skripts einfügen. Das Lesen der Tutorials ist eine wesentliche Voraussetzung zur erfolgreichen Absolvierung der Zertifizierung! Wir empfehlen daher, schrittweise während des Semesters diese entsprechend der aktuellen Vorlesungsthemen durchzugehen. 5