11. Datenbankschnittstellen

Größe: px
Ab Seite anzeigen:

Download "11. Datenbankschnittstellen"

Transkript

1 11. Datenbankschnittstellen

2 Inhalt 11.1 Motivation 11.2 Eingebettetes SQL 11.3 Open Database Connectivity (ODBC) 11.4 Java Database Connectivity (JDBC) 11.5 Objekt-Relationale Abbildung (ORM) 2

3 11.1 Motivation Datenbankschnittstellen ermöglichen den Zugriff auf die gespeicherten Daten aus einer externen Anwendung DBMS und Anwendung laufen oft auf unterschiedlichen Rechnern, so dass Netzwerkkommunikation nötig ist Zwei Zielgruppen von Datenbankschnittstellen Endbenutzer, die Daten mit bekannten oder einfach zu bedienenden Anwendungen lesen bzw. ändern möchten Entwickler, die aus Code der entwickelten Anwendung auf die Daten zugreifen möchten 3

4 Anwendungsbeispiele Anwendungsbeispiele von Datenbankschnittstellen: Webapplikation (z.b. ein Content-Management-System), welche mit Java Server Pages implementiert wurde, greift auf eine Datenbank (z.b. MS SQL Server) zu Mitarbeiterin erstellt Serienbrief mit MS Word, der an alle Kunden geschickt werden soll; die Kundendaten liegen in einer Datenbank (z.b. MS SQL Server) Applikation auf Smartphone speichert ihre internen Daten in einer eingebetteten Datenbank (z.b. SQLite), die auf dem gleichen Endgerät läuft 4

5 Anforderungen Anforderungen an Datenbankschnittstellen sind u.a. Portabilität, d.h. kann das verwendete RDBMS oder die Programmiersprache einfach ausgetauscht werden Fehleranfälligkeit, d.h. werden Fehler (z.b. inkorrektes SQL) bereits bei der Entwicklung oder erst beim Einsatz erkannt Wartbarkeit, d.h. erfordert Änderung (z.b. des Schemas) weitreichende Modifikationen des zugreifenden Codes Transparenz, d.h. bleiben die Spezifika des RDBMS bzw. der Datenbank (z.b. Schema) verborgen 5

6 Historisches Call-Level Interfaces (CLIs) als früher Ansatz, bei dem Hersteller sprachspezifische (z.b. für C oder Fortran) Schnittstellen für bestimmtes Datenbanksystem in Form von Bibliotheken zur Verfügung stellen Eingebettetes SQL erweitert Wirtssprache (z.b. C) um SQL-Kommandos, die vor Compilierung in Befehle der Wirtssprache (z.b. CLI-Aufrufe) übersetzt werden SQL/CI als standardisierte Schnittstelle in SQL:1999, die die Grundlage für Open Database Connectivity darstellt 6

7 Historisches Open Database Connectivity (ODBC) entkoppelt Programmiersprache und Datenbanksystem durch Verwendung von Treibern Java Database Connectivity (JDBC) als moderne objektorientierte Standardschnittstelle für Anwendungen in Java Frameworks für objekt-relationale Abbildung (z.b. Java Persistence und Hibernate) bilden Objekte mit Attributen auf Tabellen mit Spalten ab; die Datenbank kann den Entwicklern dabei verborgen bleiben, so dass keine SQL-Kenntnisse notwendig sind 7

8 11.2 Eingebettetes SQL Eingebettetes SQL erweitert eine Wirtssprache (z.b. C) um SQL-Kommandos für den Datenbankzugriff Erweiterungen sind keine eigentlichen Kommandos der Wirtssprache, so dass Code vor der eigentlichen Compilierung durch einen Präcompiler transformiert werden muss Präcompiler übersetzt die erweiterten Kommandos in eigentliche Kommandos der Wirtssprache (z.b. CLI-Aufrufe für Datenbankzugriff) 8

9 Eingebettetes SQL Präcompiler kann Korrektheit der SQL-Kommandos, auch ob sie kompatibel mit dem Schema sind, überprüfen Eingebettetes SQL oft auf statische SQL-Kommandos beschränkt, d.h. die Kommandos müssen zur Übersetzungszeit bereits feststehen Eingebettetes SQL spielt heute eine geringere Rolle SQLJ für Java Embedded SQL für C/C++ 9

10 SQLJ für Java SQL-Kommandos werden mit #sql ausgezeichnet und in Java-Code eingebettet Erweiterter Code muss mittels Präcompiler sqlj in echten, für den Java-Compiler verständlichen, Code umgewandelt werden Präcompiler überprüft, ob SQL-Kommandos korrekte Syntax haben, ob sie mit dem Schema übereinstimmen und die Typkompatibilität für den Datenaustausch Generierter Code greift per JDBC auf Datenbank zu 10

11 SQLJ für Java SQL-Kommandos werden mit #sql ausgezeichnet und in Java-Code eingebettet 1 #sql {INSERT INTO Studenten (MatrNr, Name, Vorname) 2 VALUES (23781, Max, Mü ller )} Wirtsvariablen erlauben Datenaustausch zwischen Java-Code und SQL-Kommandos 1 long matrnr = 23781; 2 #sql {DELETE FROM Studenten WHERE MatrNr = :matrnr}; 11

12 SQLJ für Java Iteratoren zum Lesen eines Anfrageergebnis in Java müssen vor Verwendung deklariert werden 1 #sql iterator StudentIter (long matrnr, String vorname, String name); hierdurch wird eine Klasse StudentIter generiert Definition einer Instanz der Klasse StudentIter und Ausführung der zugehörigen Anweisung 1 StudentIter iter; 2 #sql iter={ SELECT MatrNr, Name, Vorname FROM Studenten }; 12

13 SQLJ für Java Navigation durch das Anfrageergebnis 1 while (iter.next()) { 2 System.out.println(iter.matrnr() + " " + 3 iter.vorname() + " " + iter.name()); 4 } SQLJ-Code wird in Dateien mit Endung.sqlj abgelegt, um ihn von regulären Java-Code zu unterscheiden SQLJ unterstützt, mit Einschränkungen, dynamisches SQL: SQL-Kommandos können parametrisiert werden und somit erst zur Laufzeit genau definiert sein 13

14 SQLJ für Java 1 import java.sql.*; 2 import sqlj.runtime.ref.defaultcontext; 3 import oracle.sqlj.runtime.oracle; 4 5 #sql iterator StudentIter (long matrnr, String vorname, String name); 6 7 public class StudentExample 8 { 9 public static void main (String args[]) throws SQLException 10 { 11 // Verbindung zur Datenbank herstellen 12 Oracle.connect 13 (" jdbc: oracle: " user", " password"); // Iterator definieren 16 StudentIter iter; 17 #sql iter={ SELECT MatrNr, Name, Vorname FROM Studenten }; // Datensä tze lesen 20 while (iter.next()) { 21 System.out.println 22 (iter.matrnr() + " " + iter.vorname() + " " + iter.name()); 23 } 24 } 25 } 14

15 Embedded SQL für C 1 # include <string.h> 2 # include <stdio.h> 3 # include <ctype.h> 4 5 // Variablen von SQL- Communication Area einbinden 6 EXEC SQL INCLUDE SQLCA; 7 8 int main(int argc, char **argv) { 9 10 // Deklaration von Variablen 11 EXEC SQL BEGIN DECLARE SECTION; 12 VARCHAR uid[80]; 13 VARCHAR pwd[20]; 14 VARCHAR db[20]; 15 VARCHAR vorname[30]; 16 VARCHAR name[20]; 17 EXEC SQL END DECLARE SECTION; 18 // Verbindungsdaten setzen 15

16 Embedded SQL für C 19 // Verbindungsdaten setzen 20 strcpy(uid.arr," user"); 21 uid.len = strlen(uid.arr); 22 strcpy(pwd.arr," password"); 23 pwd.len = strlen(pwd.arr); 24 strcpy(db.arr," hochschule"); 25 db.len = strlen(db.arr); // Verbindung zur Datenbank herstellen 28 EXEC SQL CONNECT :uid IDENTIFIED BY :pwd USING :db; // Anfrage an Datenbank schicken 31 EXEC SQL SELECT Name, Vorname 32 FROM Studenten 33 INTO :name, :vorname 34 WHERE MatrNr = 23786; // Name und Vorname ausgeben 37 printf(" Der Student heisst %s %s", vorname, name); } 16

17 11.3 Open Database Connectivity (ODBC) Open Database Connectivity (ODBC) in den 1990ern von Microsoft entwickelt und Grundlage für den von der SQL Access Group (SAG) entworfenen Standard SQL/CLI Portabilität als Ziel von ODBC, d.h. Anwendung soll unabhängig vom verwendeten RDBMS (oder allgemein: Datenquelle) sein und deren Austausch soll einfach erfolgen können 17

18 Treibermanager und Treiber ODBC erreicht Portabilität durch Verwendung von Treiber als Vermittler zwischen Anwendung und Datenquelle (vgl. Druckertreiber und Office-Anwendungen) Anwendung kommuniziert mit Treibermanager über Aufrufe von festgelegten ODBC-Funktionen (z.b. SQLConnect zum Aufbau einer Verbindung) Datenquellen (z.b. Datenbank oder.csv-datei) sind beim Treibermanager registriert Treiber übersetzt ODBC-Funktionsaufrufe für die jeweilige Datenquelle um 18

19 Treibermanager und Treiber Anwendung Treibermanager Treiber RDBMS Treiber CSV RDBMS CSV 19

20 Treibermanager und Treiber Abhängig von der Art der ODBC-Datenquelle muss der Treiber selbst mehr oder weniger leisten, z.b. bei einem mächtigen RDBMS (z.b. MS SQL Server) können die SQL-Kommandos an das RDBMS unverändert weitergereicht werden bei einer einfachen Datenquelle (z.b. CSV-Dateien) muss der Treiber selbst sich um die Ausführung von SQL-Kommandos kümmern, d.h. intern ein DBMS (z.b. mit Selektion, Projektion und Join) implementieren 20

21 ODBC-Funktionen ODBC definierte drei Ebenen von Funktionen (API-levels) Core-Level Funktionen z.b. SQLConnect zum Aufbau einer Verbindung zu einem Treiber SQLAllocStmt zum Anlegen eines SQL-Kommandos Level-1 Funktionen z.b. SQLGetInfo zum Erfragen von Informationen über den Treiber SQLGetTypeInfo zum Erfragen unterstützter Datentypen Level-2 Funktionen z.b. SQLColumnPrivilege zum Erfragen verfügbarer Spalten SQLPrimaryKeys zum Erfragen von Primärschlüsselattributen 21

22 SQL-Unterstützung in ODBC ODBC kennt drei Ebenen (levels) der SQL-Unterstützung Minimale SQL-Grammatik CREATE TABLE und DROP TABLE INSERT, SELECT und UPDATE keine Gruppierung und Aggregation, keine Funktionen nur Datentyp CHAR Core SQL zusätzlich z.b. ALTER TABLE, CREATE INDEX, CREATE VIEW vollständiges INSERT, SELECT und UPDATE Datentypen z.b. VARCHAR, DECIMAL, NUMERIC, SMALLINT 22

23 SQL-Unterstützung in ODBC Extended SQL auch OUTER JOIN in SELECT skalare Funktionen wie SUBSTRING oder ABS zusätzliche Datentypen z.b. DATE und TIME Stapelverarbeitung von SQL-Kommandos Anlegen gespeicherter Prozeduren Portabilität und Performanz der Anwendung hängt von verwendetem API-Level und SQL-Unterstützung ab; ein höherer API-Level und eine höhere SQL-Unterstützung führen zu besserer Performanz, aber eben auch zu geringerer Portabilität 23

24 Datenbankzugriff mittels ODBC aus C 1 # include " SQL.H" 2 3 int main(int argc, char **argv) { 4 5 // Umgebungs - Handle belegen SQLAllocConnect( henv, & hdbc ); 6 SQLAllocEnv( &henv ); 7 8 // Verbindungs - Handle belegen 9 rc = SQLConnect( hdbc, server, SQL_NTS, uid, SQL_NTS, pwd, SQL_NTS ); // Verbindung aufbauen, Abbruch bei Fehler 12 if( rc!= SQL_SUCCESS && rc!= SQL_SUCCESS_WITH_INFO ) 13 return( print_err( hdbc, SQL_NULL_HSTM )); // Speicherplatz für SQL- Befehle belegen 16 SQLAllocStmt( hdbc, &hstmt ); // SQL- Kommando zum Anlegen einer Tabelle in String 19 szsql = " CREATE TABLE Studenten 20 ( MatrNr INTEGER, Vorname VARCHAR(30), Name VARCHAR(30))"; 21 // SQL- Kommando ausführen, Abbruch bei Fehler 24

25 Datenbankzugriff mittels ODBC aus C // SQL- Kommando ausführen, Abbruch bei Fehler 23 if( SQLExecDirect( hstmt, szsql, SQL_NTS )!= SQL_SUCCESS ) 24 return( print_err( hdbc, hstmt ); // Anlegen der Tabelle mit COMMIT abschließen 27 SQLTransact( hdbc, SQL_COMMIT ); // Ressourcen wieder freigeben und Verbindung schließen 30 SQLFreeStmt( hstmt, SQL_DROP ); 31 SQLFreeConnect( hdbc ); 32 SQLFreeEnv( henv ); return 0; 35 } 25

26 Datenbankzugriff mittels ODBC aus Excel ODBC hat sich als Standardschnittstelle etabliert und wird von Standardsoftware (z.b. MS Office) unterstützt; dies erlaubt u.a. folgende Anwendungsszenarien MS Excel und MS Access können als Frontend zum Lesen und Ändern von in einem RDBMS gespeicherter Daten verwendet werden Serienbriefe können in MS Word mittels Zugriff auf in RDBMS gespeicherter Daten generiert werden MS Excel kann als ODBC-Datenquelle dienen, d.h. Datenblätter können mittels SQL angefragt werden 26

27 11.4 Java Database Connectivity (JDBC) Java Database Connectivity (JDBC) von SUN (Oracle) stellt eine Schnittstelle zum Datenbankzugriff aus Java-Anwendungen bereit Ähnlich zu ODBC kommen Treiber zum Einsatz, um Anwendung und Datenbanksystem zu entkoppeln JDBC-to-ODBC und ODBC-to-JDBC Brücken erlauben Verwendung von ODBC-Datenquellen in Java bzw. JDBC-Datenquellen in Anwendungen mit ODBC-Unterstützung Klassen im Paket java.sql als Teil des Standard SDK 27

28 Treibermanager und Treiber Treibermanager (DriverManager) erzeugt Verbindung (Connection) mit einem Treiber und Verbindungsdaten (z.b. Benutzername und Passwort) JDBC unterscheidet vier Typen von Treibern Typ 1 übersetzt JDBC in ODBC (JDBC-to-ODBC Brücke) Typ 2 verwendet CLI des jeweiligen RDBMS Typ 3 verwendet systemunabhängige Middleware Typ 4 kommuniziert direkt mit dem jeweiligen RDBMS Treiber wird in Form eines JAR-Files zur Verfügung gestellt und muss sich im Classpath befinden 28

29 Ablauf einer Interaktion mit RDBMS via JDBC Interaktion mit RDBMS via JDBC hat folgende Phasen 1. Aufbau der Verbindung (erzeugt ein Instanz der Klasse Connection) 2. Anlegen eines SQL-Kommandos (als Instanz der Klasse Statement) 3. Senden des SQL-Kommandos (durch Aufruf einer Methode des Statement) 4. Verarbeiten des Ergebnis Anzahl geänderter Zeilen z.b. bei DELETE und UPDATE Ergebnismenge als Instanz von ResultSet bei SELECT 5. Freigeben der Ressourcen und Schließen der Verbindung 29

30 Verbindung (Connection) aufbauen Treiber für das RDBMS muss geladen werden 1 Class.forName(" com. microsoft. sqlserver. jdbc. SQLServerDriver") 1 Class.forName(" org. sqlite. JDBC") Verbindungsdaten werden in Form einer URL angegeben 1 String connectionurl = " jdbc: sqlserver://swl-srv03;" 2 + " databasename= Versandhandel; 3 + " user=xxx;password=xxx"; 1 String connectionurl = " jdbc: sqlite:/home/ user/" 2 + "dbs-versandhandel. sqlite" 30

31 Verbindung (Connection) aufbauen Verbindung zum RDBMS aufbauen 1 Connection conn = null; 2 try { 3 Connection conn = DriverManager.getConnection(connectionUrl); 4 } catch (SQLException sqle) 5 // spä ter mehr 6 } finally { 7 if (conn!= null) try {conn.close();} catch (SQLException sqle) {}; 8 } Verwendung von try-catch-finally Blöcken stellt sicher, dass die Verbindung auch bei Auftreten eines Fehlers geschlossen wird Grundsätzlich sind JDBC-Objekte zu schließen, da sie Ressourcen auf dem Client (z.b. Speicher) und dem Server (z.b. Sockets) belegen 31

32 SQL (Statement) Instanz von Statement anlegen 1 Statement stmt = null; // vor try 2 stmt = conn.createstatement(); // im try Sofern es sich um ein UPDATE, DELETE oder INSERT handelt, wird das Kommando wie folgt ausgeführt 1 int n = stmt.executeupdate(" DELETE FROM Studenten"); // im try 2 System.out.println("Es wurden " + n + " Zeilen geä ndert"); mit Anzahl geänderter Zeilen als Rückgabewert Schließen des Statement 1 stmt.close(); // spä testens im catch 32

33 Ergebnis (ResultSet) Handelt es sich um ein SELECT, wird das Kommando wie folgt ausgeführt 1 ResultSet rs = null; // vor try 2 stmt = conn.createstatement(); // im try 3 rs = stmt.executequery( 4 " SELECT MatrNr, Vorname, Name " 5 " FROM Studenten"); // im try mit Instanz von ResultSet als Rückgabewert ResultSet ähnelt dem Cursors-Konzept in Transact- SQL und erlaubt ein Navigieren im Anfrageergebnis; ein Ändern der Daten ist jedoch nicht möglich 33

34 Ergebnis (ResultSet) Ergebnismenge in ResultSet lässt sich wie folgt lesen 1 while(rs.next()) { // im try 2 long matrnr = rs.getlong(" MatrNr"); 3 String vorname = rs.getstring(" Vorname"); 4 String name = rs.getstring(" Name"); 5 System.out.println(matrnr + " " + vorname + " " + name); 6 } Ein Zugriff auf die Attribute einer Zeile im Ergebnis ist über ihren Namen möglich, alternativ über ihren Index 1 while(rs.next()) { // im try 2 long matrnr = rs.getlong(1); 3 String vorname = rs.getstring(2); 4 String name = rs.getstring(3); 5 System.out.println(matrnr + " " + vorname + " " + name); 6 } 34

35 Ergebnis (ResultSet) Zudem können Informationen zum Schema des Ergebnis z.b. Namen und Typen der Attribute erfragt werden 1 ResultSetMetaData rsmd = rs.getmetadata(); 2 3 // Zahl der Spalten erfragen 4 int columncount = rsmd.getcolumncount(); 5 6 // Name und Typ jeder Spalte ausgeben 7 for( int i = 1; i <= columncount; i++) { 8 System.out.println(" Spalte " + i + " heisst " 9 + rsmd.getcolumnlabel(i); 10 + " und hat Typ " rsmd.getcolumntypename(i); 12 } 13 } 35

36 Versandhandel in SQLite mit JDBC Xerial ( stellt einen JDBC-Treiber für SQLite-Datenbanken zur Verfügung 1 package de.htwsaar.swl; 2 3 import java.sql.connection; 4 import java.sql.drivermanager; 5 import java.sql.resultset; 6 import java.sql.sqlexception; 7 import java.sql.statement; 8 9 /** 10 * Zugriff auf Versandhandelsdaten in SQLite per JDBC 11 * 12 Klaus Berberich ( klaus. berberich@htwsaar.de) 13 */ 14 public class VersandhandelExample { public static void main(string[] args) { 17 Connection conn = null; 18 Statement stmt = null; 19 ResultSet rs = null; 20 try { 21 // JDBC- Treiber für SQLite laden 22 Class.forName(" org. sqlite. JDBC"); 23 36

37 Versandhandel in SQLite mit JDBC // Verbindung erstellen 25 conn = DriverManager.getConnection(" jdbc: sqlite:" + 26 "/ Users/ kberberi/ Desktop/dbs-unix. sqlite"); // Statement erstellen 29 stmt = conn.createstatement(); // Anfrage ausfü hren 32 rs = stmt. executequery(" SELECT Kunden_Nr, Vorname, Name, PLZ, Woh 33 + " FROM Kunden ORDER BY PLZ"); // Zeilen im Ergebnis mit allen Spalten ausgeben 36 while (rs.next()) { 37 System.out.println(rs.getLong(1) + " " 38 + rs.getstring(2) + " " 39 + rs.getstring(3) + " " 40 + rs.getint(4) + " " 41 + rs.getstring(5)); 42 } 43 } catch (SQLException sqle) { 37

38 Versandhandel in SQLite mit JDBC 1 2 } catch (SQLException sqle) { 3 System.out.println(sqle.getMessage()); 4 } catch (ClassNotFoundException cnfe) { 5 System.out.println(" Treiber unbekannt: " + cnfe.getmessage()); 6 } finally { 7 if (rs!= null) { 8 try { 9 rs.close(); 10 } catch (SQLException sqle) { 11 } 12 }; 13 if (stmt!= null) { 14 try { 15 stmt.close(); 16 } catch (SQLException sqle) { 17 } 18 }; 19 if (conn!= null) { 20 try { 21 conn.close(); 22 } catch (SQLException sqle) { 23 } 24 }; 25 } 26 } } 38

39 Versandhandel in SQLite mit JDBC Code zum Download auf Website zur Vorlesung JDBC-Treiber für MS SQL Server zum Download: Achtung: Andere URL zum Verbinden mit Datenbank 39

40 Zusammenfassung Datenbankschnittstellen erlauben Zugriff auf Datenbank aus einer externen Anwendung Portabilität als wichtige Anforderung, d.h. RDBMS oder Programmiersprache soll leicht austauschbar sein Call-Level Interfaces als Schnittstellen für bestimmtes RDBMS und bestimmte Programmiersprache Open Database Connectivity (ODBC) erreicht Entkopplung durch Verwendung von Treibern Java Database Connectivity (JDBC) für Java-Code 40

41 Literatur [1] A. Kemper und A. Eickler: Datenbanksysteme Eine Einführung, De Gruyter Oldenbourg, 2015 (Kapitel 4) [2] G. Saake, K.-U. Sattler und A. Heuer: Datenbanken - Konzepte und Sprachen, mitp Professional, 2013 (Kapitel 13) 41

11. Datenbankschnittstellen

11. Datenbankschnittstellen 11. Datenbankschnittstellen Inhalt 11.1 Motivation 11.2 Eingebettetes SQL 11.3 Open Database Connectivity (ODBC) 11.4 Java Database Connectivity (JDBC) 11.5 Objekt-Relationale Abbildung (ORM) 2 11.1 Motivation

Mehr

Datenbankschnittstellen erlauben Zugriff auf Datenbank aus einer externen Anwendung

Datenbankschnittstellen erlauben Zugriff auf Datenbank aus einer externen Anwendung Rückblick Datenbankschnittstellen erlauben Zugriff auf Datenbank aus einer externen Anwendung Portabilität als wichtige Anforderung, d.h. RDBMS oder Programmiersprache soll leicht austauschbar sein Call-Level

Mehr

Grundlagen von Datenbanken SS 2010 Kapitel 8: Datenbank-Einbettung in Programmiersprachen Prof. Dr. Stefan Böttcher Universität Paderborn

Grundlagen von Datenbanken SS 2010 Kapitel 8: Datenbank-Einbettung in Programmiersprachen Prof. Dr. Stefan Böttcher Universität Paderborn Grundlagen von Datenbanken SS 2010 Kapitel 8: Datenbank-Einbettung in Programmiersprachen Prof. Dr. Stefan Böttcher Universität Paderborn Grundlagen von Datenbanken - SS 2010 - Prof. Dr. Stefan Böttcher

Mehr

Kapitel 10. JDBC und SQLJ. Prof. Dr. Wolfgang Weber Vorlesung Datenbanken 1

Kapitel 10. JDBC und SQLJ. Prof. Dr. Wolfgang Weber Vorlesung Datenbanken 1 Kapitel 10 JDBC und SQLJ 1 JDBC und SQLJ Bisher: Einbettung von SQL (statisch bzw. dynamisch) in C, C++, COBOL, ADA (embedded SQL) bzw. prozedurale Erweiterungen für SQL in Oracle (PL/SQL) Was ist mit

Mehr

Webbasierte Informationssysteme

Webbasierte Informationssysteme SS 2004 Prof. Dr. Stefan Böttcher Universität Paderborn - SS 2004 - Prof. Dr. Stefan Böttcher Folie 1 Was ist eine relationale Datenbank? Menge von Relationen (=Tabellen) und Constraints (=Integritätsbedingungen)

Mehr

Willkommen. Datenbanken und Anbindung

Willkommen. Datenbanken und Anbindung Willkommen Datenbanken und Anbindung Welche stehen zur Wahl? MySQL Sehr weit verbreitetes DBS (YT, FB, Twitter) Open-Source und Enterprise-Version Libs in C/C++ und Java verfügbar Grundsätzlich ist ein

Mehr

Webbasierte Informationssysteme

Webbasierte Informationssysteme SS 2004 Prof. Dr. Stefan Böttcher Universität Paderborn - SS 2004 - Prof. Dr. Stefan Böttcher Folie 1 Was ist eine relationale Datenbank? Menge von Relationen (=Tabellen) und Constraints (=Integritätsbedingungen)

Mehr

JDBC. Java DataBase Connectivity

JDBC. Java DataBase Connectivity JDBC Java DataBase Connectivity JDBC-Schichten JDBC besteht aus 2 Teilen, 1. aus Datenbanktreibern, die den Anschluß von Java-Anwendungen an Datenbanksysteme wie Sybase, DB/2, Oracle, MS ACCESS oder Mini

Mehr

11 Anwendungsprogrammierung

11 Anwendungsprogrammierung 11 11 11.1 Programmiersprachenanbindung 11.2 11.3 183 11 Programmiersprachenanbindung Programmiersprachenanbindung Kopplungsarten: prozedurale oder CALL-Schnittstellen (call level interface) Beispiele:

Mehr

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

seit Java 1.1 Bestandteil der API: packages java.sql, javax.sql JDBC inoffizielle Abkürzung für: Java Database Connectivity seit Java 1.1 Bestandteil der API: packages java.sql, javax.sql ist eine Menge von Klassen und Methoden, um aus Java-Programmen relationale Datenbanken

Mehr

Datenbankschnittstellen erlauben Zugriff auf Datenbank aus einer externen Anwendung

Datenbankschnittstellen erlauben Zugriff auf Datenbank aus einer externen Anwendung Rückblick Datenbankschnittstellen erlauben Zugriff auf Datenbank aus einer externen Anwendung Portabilität als wichtige Anforderung, d.h. RDBMS oder Programmiersprache soll leicht austauschbar sein Call-Level

Mehr

Java Database Connectivity (JDBC) 14.07.2009 Walther Rathenau Gewerbeschule 1

Java Database Connectivity (JDBC) 14.07.2009 Walther Rathenau Gewerbeschule 1 Java Database Connectivity (JDBC) 14.07.2009 Walther Rathenau Gewerbeschule 1 Was ist JDBC? Hauptsächlich eine Sammlung von Java Klassen und Schnittstellen für eine einfache Verbindung von Java Programmen

Mehr

Java: MySQL-Anbindung mit JDBC.

Java: MySQL-Anbindung mit JDBC. Java: MySQL-Anbindung mit JDBC Vorarbeiten Wir brauchen: - MySQL-Server - JDBC-Treiber - (Import java.sql.*) Vorarbeiten MySQL-Server in unserem Falle: WAMP (= Apache) (runterladen, installieren, starten)

Mehr

Kapitel DB:VI (Fortsetzung)

Kapitel DB:VI (Fortsetzung) Kapitel DB:VI (Fortsetzung) VI. Die relationale Datenbanksprache SQL Einführung SQL als Datenanfragesprache SQL als Datendefinitionssprache SQL als Datenmanipulationssprache Sichten SQL vom Programm aus

Mehr

Kapitel 9. Embedded SQL. Prof. Dr. Wolfgang Weber Vorlesung Datenbanken 1

Kapitel 9. Embedded SQL. Prof. Dr. Wolfgang Weber Vorlesung Datenbanken 1 Kapitel 9 Embedded SQL Vorlesung Datenbanken 1 Embedded SQL (siehe auch [Date00]) Arbeitsweise ähnlich PL/SQL, allerdings: Normale Programmiersprache mit eingestreuten SQL-Befehlen und anderen Befehlen

Mehr

Java Database Connectivity-API (JDBC)

Java Database Connectivity-API (JDBC) Java Database Connectivity-API (JDBC) Motivation Design Grundlagen Typen Metadaten Transaktionen Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 1 Motivation Problem: Zugriff auf ein DBMS ist Herstellerabhängig

Mehr

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

JDBC. Es kann z.b. eine ODBC-Treiberverbindung eingerichtet werden, damit das JAVA-Programm auf eine ACCESS-DB zugreifen kann. JDBC in 5 Schritten JDBC (Java Database Connectivity) ist eine Sammlung von Klassen und Schnittstellen, mit deren Hilfe man Verbindungen zwischen Javaprogrammen und Datenbanken herstellen kann. 1 Einrichten

Mehr

vs. Fehler zur Übersetzungszeit

vs. Fehler zur Übersetzungszeit Client-Server-Architektur, Anbindung von Programmiersprachen, Call-Level-Schnittstellen: /, JDBC, :, J, gespeicherte Prozeduren, prozedurale Erweiterungen: /PSM, PL/. IPD, Forschungsbereich Systeme der

Mehr

Datenbank und Informationssysteme

Datenbank und Informationssysteme Datenbank und Informationssysteme Inhaltsverzeichnis 1 Programmierung von Datenbankzugriffen 3 1.1 Architektur des SQL/CLI am Beispiel JDBC................... 4 1.2 Anfragen und Ergebnismengen in JDBC......................

Mehr

Java Database Connectivity (JDBC) zum Zugriff aus in z.b. in Java geschriebenen Applikationen

Java Database Connectivity (JDBC) zum Zugriff aus in z.b. in Java geschriebenen Applikationen Rückblick Java Database Connectivity (JDBC) zum Zugriff aus in z.b. in Java geschriebenen Applikationen JDBC erlaubt Transaktionskontrolle, d.h. Festschreiben und Zurückrollen sowie setzten der Isolationsstufe

Mehr

Klausur Datenbanken II

Klausur Datenbanken II Klausur Datenbanken II 8.3.2001 Name Vorname Semester Matrikelnr Aufgabe Punkte maximal 1 8 2 8 3 3 4 3 5 4 6 6 7 6 8 6 9 [Zusatz] [4] Summe 44 Punkte erreicht Bitte geben Sie die Lösungen möglichst direkt

Mehr

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen 16OH21005 gefördert. Die Verantwortung für den Inhalt dieser

Mehr

Datenbanksysteme 2 Fachbereich Angewandte Informatik WS 11/12 Dipl.-Inf. Christian Pape. 6. Übung

Datenbanksysteme 2 Fachbereich Angewandte Informatik WS 11/12 Dipl.-Inf. Christian Pape. 6. Übung Datenbanksysteme 2 Fachbereich Angewandte Informatik WS 11/12 Dipl.-Inf. Christian Pape 6. Übung Aufgabe 1: In dieser Übung sollen Sie eine kleine Java-Anwendung schreiben, die auf die Oracle-Datenbank

Mehr

Oracle & Java HOW TO

Oracle & Java HOW TO Oracle & Java HOW TO Helge Janicke, Niels-Peter de Witt, Karsten Wolke 21. Januar 2002 Inhaltsverzeichnis 1 Java-Anbindung an Oracle-DB 2 2 Benötigte Programme und Daten 2 3 Einbinden der Klassen 2 4 Aufbau

Mehr

Kapitel 11: Anwendungsentwicklung

Kapitel 11: Anwendungsentwicklung Ludwig Maximilians Universität München Institut für Informatik Lehr- und Forschungseinheit für Datenbanksysteme Skript zur Vorlesung Wintersemester 2015/2016 Kapitel 11: Anwendungsentwicklung Vorlesung:

Mehr

Datenbanksysteme I Datenbankprogrammierung. 15.6.2009 Felix Naumann

Datenbanksysteme I Datenbankprogrammierung. 15.6.2009 Felix Naumann Datenbanksysteme I Datenbankprogrammierung 15.6.2009 Felix Naumann SQL mit einer Programmiersprache verbinden 2 Embedded SQL Kombiniert SQL mit 7 Programmiersprachen ADA, C, Cobol, Fortran, M, Pascal,

Mehr

Datenbanksysteme I Übung: JDBC. Jana Bauckmann

Datenbanksysteme I Übung: JDBC. Jana Bauckmann Datenbanksysteme I Übung: JDBC Jana Bauckmann Wo reicht SQL alleine nicht? 2 Web-Anwendungen Daten übersichtlich und schön präsentieren Komplizierte Fragestellungen Sind sich 2 Tupel ähnlich? Duplikaterkennung

Mehr

Kapitel 11: Anwendungsentwicklung

Kapitel 11: Anwendungsentwicklung Skript zur Vorlesung Wintersemester 2005/2006 Kapitel 11: Anwendungsentwicklung Vorlesung: Dr. Matthias Schubert Übungen: Elke Achtert, Arthur Zimek Skript 2004 Christian Böhm http://www.dbs.informatik.uni-muenchen.de/lehre/dbs

Mehr

Java Database Connectivity-API (JDBC)

Java Database Connectivity-API (JDBC) Java Database Connectivity-API (JDBC) Motivation Design Grundlagen Typen Metadaten Transaktionen Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 1 Motivation Problem: Zugriff auf ein DBMS ist herstellerabhängig

Mehr

SQLJ. Standardisierte Java-DB. DB-Schnittstelle. Spezifikationen. Oracle, IBM, Informix, Sybase,, Tandem, Sun, Microsoft stehen dahinter

SQLJ. Standardisierte Java-DB. DB-Schnittstelle. Spezifikationen. Oracle, IBM, Informix, Sybase,, Tandem, Sun, Microsoft stehen dahinter SQLJ Standardisierte Java-DB DB-Schnittstelle Spezifikationen Part 0: Embedded SQL für Java (ANSI-Standard; Object Language Binding) Statische Einbettung von SQL-Anweisungen in Java-Quelltext Part 1: Java

Mehr

Ho Ngoc Duc IFIS - Universität zu Lübeck

Ho Ngoc Duc IFIS - Universität zu Lübeck Ho Ngoc Duc IFIS - Universität zu Lübeck 16.04.2003 1 Standard für relationale DB: SQL Vor JDBC: Open Database Connectivity (ODBC), uniforme Schnittstelle für Zugriff JDBC: Programmierschnittstelle (Java-API)

Mehr

9. Sicherheitsaspekte

9. Sicherheitsaspekte 9. Sicherheitsaspekte Motivation Datenbanken enthalten häufig sensible Daten (z.b. personenbezogene oder unternehmenskritische) Vielzahl verschiedener Benutzer hat Zugriff (z.b. Anwendungen, Mitarbeiter,

Mehr

Kapitel DB:VI (Fortsetzung)

Kapitel DB:VI (Fortsetzung) Kapitel DB:VI (Fortsetzung) VI. Die relationale Datenbanksprache SQL Einführung SQL als Datenanfragesprache SQL als Datendefinitionssprache SQL als Datenmanipulationssprache Sichten SQL vom Programm aus

Mehr

Java und Datenbanksysteme Datenbankanbindung mit JDBC

Java und Datenbanksysteme Datenbankanbindung mit JDBC Java und Datenbanksysteme Datenbankanbindung mit JDBC 30.05.2001 Stefan Niederhauser sn@atelier-w.ch 1-Einführung Datenbanksysteme Java und Datenbanken: JDBC Geschichte der JDBC-Versionen Vergleich von

Mehr

Datenbanksysteme 2011

Datenbanksysteme 2011 Datenbanksysteme 2011 noch Kapitel 10: Datenbankapplikationen Oliver Vornberger Institut für Informatik Universität Osnabrück Datenbankapplikationen MS Visio MS Access Embedded SQL im C-Programm JDBC /

Mehr

Einführung in JDBC. IFIS Universität zu Lübeck 18.04.2007

Einführung in JDBC. IFIS Universität zu Lübeck 18.04.2007 Einführung in JDBC IFIS Universität zu Lübeck 18.04.2007 1 Was ist JDBC Standard für relationale DB: SQL Vor JDBC: Open Database Connectivity (ODBC), uniforme Schnittstelle für Zugriff JDBC: Programmierschnittstelle

Mehr

Cursor erlauben eines zeilenweise Verarbeitung einer Tabelle oder eines Anfrageergebnisses in Transact-SQL

Cursor erlauben eines zeilenweise Verarbeitung einer Tabelle oder eines Anfrageergebnisses in Transact-SQL Cursor Cursor erlauben eines zeilenweise Verarbeitung einer Tabelle oder eines Anfrageergebnisses in Transact-SQL Cursor sind grob vergleichbar mit Iteratoren in modernen Programmiersprachen wie Java;

Mehr

10. Programmieren in SQL

10. Programmieren in SQL 10. Programmieren in SQL Inhalt 10.1 Motivation 10.2 Prozedurale Erweiterungen von SQL 10.3 Gespeicherte Prozeduren 10.4 Benutzerdefinierte Funktionen 10.5 Verwendung anderer Programmiersprachen 2 10.1

Mehr

Datenbanksysteme. Programmieren von Datenbankzugriffen mit JDBC. Burkhardt Renz. Fachbereich MNI Technische Hochschule Mittelhessen

Datenbanksysteme. Programmieren von Datenbankzugriffen mit JDBC. Burkhardt Renz. Fachbereich MNI Technische Hochschule Mittelhessen Datenbanksysteme Programmieren von Datenbankzugriffen mit JDBC Burkhardt Renz Fachbereich MNI Technische Hochschule Mittelhessen Sommersemester 2018 Übersicht Architektur von JDBC Ziele von JDBC Grundstruktur

Mehr

Universität Augsburg, Institut für Informatik WS 2011/2012 Prof. Dr. W. Kießling 09. Dez Dr. M. Endres, Dr. S. Mandl, F. Wenzel Lösungsblatt 6

Universität Augsburg, Institut für Informatik WS 2011/2012 Prof. Dr. W. Kießling 09. Dez Dr. M. Endres, Dr. S. Mandl, F. Wenzel Lösungsblatt 6 Universität Augsburg, Institut für Informatik WS 2011/2012 Prof. Dr. W. Kießling 09. Dez. 2011 Dr. M. Endres, Dr. S. Mandl, F. Wenzel Lösungsblatt 6 Datenbanksysteme I Aufgabe 1: Deklarative Änderungsoperationen

Mehr

Client/Server-Programmierung

Client/Server-Programmierung Client/Server-Programmierung WS 2017/2018 Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 14. September 2017 Betriebssysteme / verteilte

Mehr

Kapitel 11: Anwendungsentwicklung

Kapitel 11: Anwendungsentwicklung Ludwig Maximilians Universität München Institut für Informatik Lehr- und Forschungseinheit für ysteme Skript zur Vorlesung Wintersemester 2010/2011 Kapitel 11: Anwendungs Vorlesung: DP Dr. Matthias Schubert

Mehr

Datenbanken SQL JDBC. Programmieren II. Dr. Klaus Höppner. Hochschule Darmstadt Sommersemester / 21

Datenbanken SQL JDBC. Programmieren II. Dr. Klaus Höppner. Hochschule Darmstadt Sommersemester / 21 Programmieren II Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2010 1 / 21 Datenbanken SQL JDBC 2 / 21 Relationale Datenbanken Ein Datenbanksystem ist ein System zur Speicherung von (großen) Datenmengen:

Mehr

RELATIONONALE DATENBANKEN MIT JDBC

RELATIONONALE DATENBANKEN MIT JDBC RELATIONONALE DATENBANKEN MIT JDBC Christoph Süsens 07.05.2012 Inhalt Abbildungsverzeichnis...3 Java Database Connection JDBC...4 Herstellen einer Verbindung JDBC - DBMS...4 Treiber Installation Beispiel:

Mehr

Einbettung in SQL. Zwei Prinzipien: (1) Statische Einbettung

Einbettung in SQL. Zwei Prinzipien: (1) Statische Einbettung Einbettung in SQL Zwei Prinzipien: (1) Statische Einbettung - Vorübersetzer-Prinzip (Pre-Compiler) - In Programmcode integrierte SQL-Anweisungen werden durch den Precompiler übersetzt, d.h. in Prozeduraufrufe

Mehr

Wie kommen die Befehle zum DBMS

Wie kommen die Befehle zum DBMS Wie kommen die Befehle zum DBMS Dr. Karsten Tolle Datenbanken und Informationssysteme Wie kommen die Befehle zum DBMS Bisher gesehen: SQL direkt zum DBMS Workbench Kommandozeile IBM Query Tool Weitere?

Mehr

PHP- Umgang mit Datenbanken (1)

PHP- Umgang mit Datenbanken (1) PHP- Umgang mit Datenbanken (1) Weitere Funktionen zum Umgang mit Datenbanken (Erzeugen, Löschen) und Tabellen (Erzeugen, Löschen) Zum Beispiel für das Erzeugen einer neuen Datenbank $dbname= blumendb

Mehr

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

Datenbankentwurf & Datenbankzugriff mit JDBC. Georg Köster Sven Wagner-Boysen Datenbankentwurf & Datenbankzugriff mit JDBC Georg Köster Sven Wagner-Boysen 6. November 2007 Gliederung 2 Datenbankentwurf für ProminentPeople.info ER-Modell Relationaler Entwurf Normalisierung Datenbankzugriff

Mehr

Client/Server-Programmierung

Client/Server-Programmierung Client/Server-Programmierung WS 2014/2015 Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 20. November 2015 Betriebssysteme / verteilte

Mehr

Programmieren II. Beispiele für RDBMS. Relationale Datenbanken. Datenbanken SQL. Dr. Klaus Höppner JDBC. Hochschule Darmstadt SS 2008

Programmieren II. Beispiele für RDBMS. Relationale Datenbanken. Datenbanken SQL. Dr. Klaus Höppner JDBC. Hochschule Darmstadt SS 2008 Programmieren II Datenbanken Dr. Klaus Höppner SQL Hochschule Darmstadt SS 2008 JDBC 1 / 20 2 / 20 Relationale Datenbanken Beispiele für RDBMS Ein Datenbanksystem ist ein System zur Speicherung von (großen)

Mehr

DB-Programmierung. Lehr- und Forschungseinheit Datenbanken und Informationssysteme 1. Ziele. DB2 Zugriff mit Java selbst programmieren

DB-Programmierung. Lehr- und Forschungseinheit Datenbanken und Informationssysteme 1. Ziele. DB2 Zugriff mit Java selbst programmieren DB-Programmierung Lehr- und Forschungseinheit Datenbanken und Informationssysteme 1 Ziele static SQL verstehen Build-Prozess / Art des Datenzugriffs Host-Variablen Vor- / Nachteile dynamic SQL verstehen

Mehr

Beispiel: DB-Mock (1/7)

Beispiel: DB-Mock (1/7) Beispiel: DB-Mock (1/7) Aufgabe: DB, auf die vereinfachend nur lesend zugeriffen wird mocken warum: benötigte keine DB-Lizenz, garantiert gleiche Werte ohne aufwändiges reset, kein Zeitverlust durch Verbindungsaufbau

Mehr

Modifikation der Datenbank

Modifikation der Datenbank Modifikation der Datenbank Löschen Einfügen Änderungen Änderungen von Sichten 71 Löschen Wir haben bereits gesehen, dass wir den gesamten Inhalt einer Tabelle r löschen können durch das Kommando: delete

Mehr

10 Anwendungsprogrammierung

10 Anwendungsprogrammierung 10 10 10.1 Programmiersprachenanbindung 10.2 10.3 PL/SQL 169 10 Teil X 0 Programmiersprachenanbindung 1 2 3 LINQ Sattler / Saake Datenbanksysteme Letzte Änderung: 11.10.2011 10 1 Programmiersprachenanbindung

Mehr

Anwendungsentwicklung für relationale Datenbanken setzt voraus, dass prozedurale Abläufe programmiert werden können!

Anwendungsentwicklung für relationale Datenbanken setzt voraus, dass prozedurale Abläufe programmiert werden können! Datenbanken: Standard CLI und JDBC Anwendungsentwicklung für relationale Datenbanken setzt voraus, dass prozedurale Abläufe programmiert werden können! (Endanwendern ist nicht zuzumuten, SQL zu lernen

Mehr

Oracle: Abstrakte Datentypen:

Oracle: Abstrakte Datentypen: Oracle: Abstrakte Datentypen: Oracle bietet zwei mögliche Arten um abstrakte Datentypen zu implementieren: Varying Array Nested Table Varying Array (kunde) kdnr kdname gekaufteart 1 Mustermann 1 4 5 8

Mehr

Datenbanksysteme 2011

Datenbanksysteme 2011 Datenbanksysteme 2011 Anfang von Kapitel 10: Datenbankapplikationen Vorlesung vom 06.06.2011 Oliver Vornberger Institut für Informatik Universität Osnabrück Datenbankapplikationen ODBC MS Visio MS Access

Mehr

1a) SQL Stored Procedure via IDs

1a) SQL Stored Procedure via IDs 1a) SQL Stored Procedure via IDs Erstellen Sie analog zu Aufgabe 2d) des ersten Übungsblatts eine SQL Stored Procedure, welche den Freundschaftsgrad zweier Benutzer eines sozialen Netzwerks aktualisiert.dazu

Mehr

Softwareentwicklung mit JAVA EE

Softwareentwicklung mit JAVA EE Softwareentwicklung mit JAVA EE Grundlagen: Datenbankprogrammierung Literatur T. Kudraß (Hrsg.): Taschenbuch Datenbanken, Hanser, 2007 DB-Programmierung-2 Einbettungstechniken Einbettung in 3GL Embedded

Mehr

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R 1.008. Vorlesung #6. SQL (Teil 4)

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R 1.008. Vorlesung #6. SQL (Teil 4) Vorlesung #6 SQL (Teil 4) Fahrplan Besprechung der Übungsaufgaben Einschub: Self Joins (relevant fürs Praktikum) Dynamische Intergritätsbedingungen, das Trigger - Konzept von Oracle Prozedurale Erweiterungen,

Mehr

SQL. SQL: Structured Query Language. Früherer Name: SEQUEL. Standardisierte Anfragesprache für relationale DBMS: SQL-89, SQL-92, SQL-99

SQL. SQL: Structured Query Language. Früherer Name: SEQUEL. Standardisierte Anfragesprache für relationale DBMS: SQL-89, SQL-92, SQL-99 SQL Früherer Name: SEQUEL SQL: Structured Query Language Standardisierte Anfragesprache für relationale DBMS: SQL-89, SQL-92, SQL-99 SQL ist eine deklarative Anfragesprache Teile von SQL Vier große Teile:

Mehr

Datenbankanwendungen (JDBC)

Datenbankanwendungen (JDBC) Datenbankanwendungen (JDBC) Hierarchie: Connection Transaction Statement Connection Aufbau (klassisch): Registrierung des JDBC Driver beim DriverManager: Class.forName(JDBC Driver); Eigentlicher Verbindungsaufbau

Mehr

Embedded SQL in PostgreSQL

Embedded SQL in PostgreSQL 7. Dezember 2010 Michael Meskes Seit 1993 Freie Software Seit 1994 Linux Seit 1995 Debian GNU/Linux Seit 1998 PostgreSQL Michael Meskes 1992-1996 Promotion 1996-1998 Projektleiter 1998-2000 Niederlassungsleiter

Mehr

Hauptschritte einer JDBC-App

Hauptschritte einer JDBC-App JDBC Java DataBase Connectivity Sammlung von Klassen und Interfaces zur Arbeit mit Datenbanken auf Basis von SQL Package java.sql Datenbankmanagementsystem und eine oder mehrere Datenbanken Jdbc Driver,

Mehr

Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 11. Dez M. Endres, A. Huhn, T. Preisinger Lösungsblatt 7

Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 11. Dez M. Endres, A. Huhn, T. Preisinger Lösungsblatt 7 Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 11. Dez. 2006 M. Endres, A. Huhn, T. Preisinger Lösungsblatt 7 Aufgabe 2 + 3: Datenbanksysteme I import java.sql.*; import oracle.jdbc.driver.*;

Mehr

AG Datenbanken und Informationssysteme Wintersemester 2006 / 2007

AG Datenbanken und Informationssysteme Wintersemester 2006 / 2007 AG Datenbanken und Informationssysteme Wintersemester 2006 / 2007 Prof. Dr.-Ing. Dr. h. c. Theo Härder Fachbereich Informatik Technische Universität Kaiserslautern http://wwwdvs.informatik.uni-kl.de import

Mehr

7. Übungsblatt. Für die Übung am Donnerstag, 14. Dezember 2006, von 15:30 bis 17:00 Uhr in 13/222.

7. Übungsblatt. Für die Übung am Donnerstag, 14. Dezember 2006, von 15:30 bis 17:00 Uhr in 13/222. AG Datenbanken und Informationssysteme Wintersemester 2006 / 2007 Prof. Dr.-Ing. Dr. h. c. Theo Härder Fachbereich Informatik Technische Universität Kaiserslautern http://wwwdvs.informatik.uni-kl.de 7.

Mehr

Daten Bank. 4. Vorlesung. Dr. Karsten Tolle PRG2 SS 2012

Daten Bank. 4. Vorlesung. Dr. Karsten Tolle PRG2 SS 2012 Daten Bank 4. Vorlesung Dr. Karsten Tolle PRG2 SS 2012 SQL -Anfragen join groupby groupby having select A 1,A 2,...,A n from R 1, R 2,...,R m [where conditions] [group by clause] [having clause] [order

Mehr

Datenbankzugriff mit JDBC

Datenbankzugriff mit JDBC Java: Kapitel 8 Datenbankzugriff mit JDBC Programmentwicklung WS 2008/2009 Holger Röder holger.roeder@informatik.uni-stuttgart.de Überblick über Kapitel 8 Einführung in SQL und JDBC Verbindung zur Datenbank

Mehr

Wie kommen die Befehle zum DBMS

Wie kommen die Befehle zum DBMS Wie kommen die Befehle zum DBMS Dr. Karsten Tolle Datenbanken und Informationssysteme Wie kommen die Befehle zum DBMS Bisher gesehen: SQL direkt zum DBMS MySQL Workbench / HeidiSQL Kommandozeile Weitere?

Mehr

3. Datenbankzugriff (JDBC) Grundlagen der Programmierung II (Java)

3. Datenbankzugriff (JDBC) Grundlagen der Programmierung II (Java) 3. Datenbankzugriff (JDBC) Grundlagen der Programmierung II (Java) Prof. Dr. Bernhard Humm Hochschule Darmstadt University of Applied Sciences Sommersemester 2006 Übersicht Grundlagen der Programmierung

Mehr

Hauptschritte einer JDBC-App

Hauptschritte einer JDBC-App JDBC Java DataBase Connectivity Sammlung von Klassen und Interfaces zur Arbeit mit Datenbanken auf Basis von SQL Package java.sql Datenbankmanagementsystem und eine oder mehrere Datenbanken Jdbc Driver,

Mehr

Datenbanken. Anwendungsentwicklung in Datenbanken: Prozedurale Spracherweiterung von SQL (z.b. PL/SQL bei Oracle)

Datenbanken. Anwendungsentwicklung in Datenbanken: Prozedurale Spracherweiterung von SQL (z.b. PL/SQL bei Oracle) Anwendungsentwicklung in Datenbanken: Unter Anwendungsentwicklung in Datenbanken versteht man die Entwicklung von Anwendungen, die über die Adhoc-Abfrage mit SQL hinausgeht. Es gibt verschiedene Möglichkeiten,

Mehr

Exercises for the course Databases and Information Systems I WS 2006/2007 Special exercise JDBC

Exercises for the course Databases and Information Systems I WS 2006/2007 Special exercise JDBC Prof. Dr. Stefan Böttcher Exercises for the course Databases and Information Systems I WS 2006/2007 Special exercise JDBC 1. Preliminary configurations 1.1. Register ODBC database Chose Arbeitsplatz Systemsteuerung

Mehr

Kapitel 2 Anwendungsprogrammierschnittstelle und Anfrageverarbeitung

Kapitel 2 Anwendungsprogrammierschnittstelle und Anfrageverarbeitung Kapitel 2 Anwendungsprogrammierschnittstelle und Anfrageverarbeitung Inhalt Kopplung von DB- und Programmiersprache Eingebettetes statisches SQL, SQL/PSM, Dynamisches SQL Call-Level-Interface (CLI), ODBC,

Mehr

SQL Tutorium Documentation

SQL Tutorium Documentation SQL Tutorium Documentation Release 1.1.0 Sandro Tonon 23.06.2015 Inhaltsverzeichnis 1 Inhalte: 3 1.1 SQL Developer.............................................. 3 1.2 SQL Befehle ausführen.........................................

Mehr

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER INHALTSVERZEICHNIS 1. Datenbanken 2. SQL 1.1 Sinn und Zweck 1.2 Definition 1.3 Modelle 1.4 Relationales Datenbankmodell 2.1 Definition 2.2 Befehle 3.

Mehr

In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen.

In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen. 1 In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen. Zunächst stellt sich die Frage: Warum soll ich mich mit der Architektur eines DBMS beschäftigen?

Mehr

Entwicklungsumgebung für die Laborübung

Entwicklungsumgebung für die Laborübung Entwicklungsumgebung für die Laborübung VL Datenbanksysteme Ingo Feinerer Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Gliederung

Mehr

UNIVERSITÄT ULM Fakultät für Ingenieurswissenschaften und Informatik Institut für Datenbanken und Informationssysteme

UNIVERSITÄT ULM Fakultät für Ingenieurswissenschaften und Informatik Institut für Datenbanken und Informationssysteme UNIVERSITÄT ULM Fakultät für Ingenieurswissenschaften und Informatik Institut für Datenbanken und Informationssysteme 8. Übung zur Vorlesung Datenbanksysteme WS 08/09 Musterlösung Aufgabe 8-1: SQLJ //

Mehr

Enterprise Computing Einführung in das Betriebssystem z/os. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/2013

Enterprise Computing Einführung in das Betriebssystem z/os. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/2013 UNIVERSITÄT LEIPZIG Enterprise Computing Einführung in das Betriebssystem z/os Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/2013 Transaktionsverarbeitung Teil 2 SQL copyright W. G. Spruth,

Mehr

Structured Query Language (SQL) als standardisierte Anfragesprache für relationale Datenbanken

Structured Query Language (SQL) als standardisierte Anfragesprache für relationale Datenbanken Rückblick Structured Query Language (SQL) als standardisierte Anfragesprache für relationale Datenbanken Data Definition Language zur Schemadefinition (z.b. CREATE TABLE zum Anlegen von Tabellen) Data

Mehr

Kapitel 14. Objekt-relationales Mapping (ORM) mit Hibernate bzw. Java Persistance API (JPA) Prof. Dr. Wolfgang Weber Vorlesung Datenbanken

Kapitel 14. Objekt-relationales Mapping (ORM) mit Hibernate bzw. Java Persistance API (JPA) Prof. Dr. Wolfgang Weber Vorlesung Datenbanken Kapitel 14 Objekt-relationales Mapping (ORM) mit Hibernate bzw. Java Persistance API (JPA) 1 Wozu Objekt-relationales Mapping? - Problematik - Business-Schicht OO-Klassen Unvereinbarkeit der Paradigmen

Mehr

Java Database Connectivity. Gracin Denis, IB 4 C

Java Database Connectivity. Gracin Denis, IB 4 C Java Database Connectivity Gracin Denis, IB 4 C Agenda 1. JDBC-Architektur 2. Treiber der JDBC 2.1 Typ-1 Treiber 2.2 Typ-2 Treiber 2.3 Typ-3 Treiber 2.4 Typ-4 Treiber 3. Verbindungsablauf 4. Connection

Mehr

Kurzeinführung ODBC. 1 Codebeispiele. 1.1 Embedded SQL

Kurzeinführung ODBC. 1 Codebeispiele. 1.1 Embedded SQL Kurzeinführung ODBC ODBC (Open Database Connectivity) ist eine von Microsoft entworfene Anwendungsschnittstelle (Application Programming Interface, API), welche in der Lage ist, auf alle gebräuchlichen

Mehr

Datenbanken 1 für Mediennformatiker WS 06. 4. ODBC, JDBC und SQLJ: Datenbank-Anbindung an Anwendungsprogramme

Datenbanken 1 für Mediennformatiker WS 06. 4. ODBC, JDBC und SQLJ: Datenbank-Anbindung an Anwendungsprogramme Datenbanken 1 für Mediennformatiker WS 06 4. ODBC, JDBC und SQLJ: Datenbank-Anbindung an Anwendungsprogramme Der letzte Schritt Diese grafische Oberfläche mit der Ebay-Datenbank verbinden... Anwendungen

Mehr

Übung Datenbanksysteme I Embedded SQL, Stored Procedures, JDBC

Übung Datenbanksysteme I Embedded SQL, Stored Procedures, JDBC Übung Datenbanksysteme I G-3.1.09, Campus III Hasso Plattner Institut Motivation Grenzen von SQL 1. Bedingte Anweisungen Erhöhe das Gehalt eines Arbeitsnehmers um 2%, falls er eine Belobigung erhalten

Mehr

FileMaker und Java...und es öffnen sich neue Welten!

FileMaker und Java...und es öffnen sich neue Welten! FileMaker und Java...und es öffnen sich neue Welten! schubec GmbH Inhaber und Geschäftsführer der schubec GmbH Betreiber von FileMakerProfis.de PHP Java Google Web Toolkit Vaadin Wicket SQL Datenbanken

Mehr

Erste Java-Programme (Scopes und Rekursion)

Erste Java-Programme (Scopes und Rekursion) Lehrstuhl Bioinformatik Konstantin Pelz Erste Java-Programme (Scopes und Rekursion) Tutorium Bioinformatik (WS 18/19) Konstantin: Konstantin.pelz@campus.lmu.de Homepage: https://bioinformatik-muenchen.com/studium/propaedeutikumprogrammierung-in-der-bioinformatik/

Mehr

Teil VIII. Weitere Datenbanksprachen

Teil VIII. Weitere Datenbanksprachen Teil VIII Weitere Datenbanksprachen Weitere Datenbanksprachen 1 Programmiersprachenanbindung 2 QBE 3 Änderungen in QBE 4 Anfragen in Access Sattler / Saake Datenbanksysteme Wintersemester 2010/11 8 1 Programmiersprachenanbindung

Mehr