Musterlösung Übungsblatt 11

Größe: px
Ab Seite anzeigen:

Download "Musterlösung Übungsblatt 11"

Transkript

1 Julia Wolters Abgabe: Aufgabe 41 1 Aufgabe CREATE TABLE auftraege ( 4 anfang TIMESTAMP NOT NULL, 5 ende TIMESTAMP, 6 kunde VARCHAR, 7 beschreibung VARCHAR, 8 PRIMARY KEY ( anfang, kunde, beschreibung ) 9 ) ; INSERT INTO auftraege VALUES ( :00, :00, Mueller, Nikolausen ) ; 12 INSERT INTO auftraege VALUES ( :00, :32, Meier, Foo ) ; 13 INSERT INTO auftraege VALUES ( :38, :05, Meier, Bar ) ; 14 INSERT INTO auftraege VALUES ( :38, :11, Meier, Foobar2 ) ; 15 INSERT INTO auftraege VALUES ( :30, :00, Meier, Foobar3 ) ; 16 INSERT INTO auftraege VALUES ( :00, :00, Muster AG, Testen ) ; a ) Arbeitszeit pro Auftrag ausrechnen 19 DROP VIEW auftraege_dauer ; 20 CREATE VIEW auftraege_dauer AS 21 SELECT, ( ende anfang ) AS dauer FROM auftraege ; 1

2 Übung WS Freitag, Uhr SELECT FROM auftraege_dauer ; SELECT EXTRACT ( MINUTE FROM dauer ) as minuten, EXTRACT ( HOUR FROM dauer ) as stunden, 26 ( CASE 27 WHEN EXTRACT ( MINUTE FROM dauer ) = 0 THEN 0 28 WHEN EXTRACT ( MINUTE FROM dauer ) < 15 THEN WHEN EXTRACT ( MINUTE FROM dauer ) < 30 THEN WHEN EXTRACT ( MINUTE FROM dauer ) < 45 THEN ELSE END ) AS minuten15 FROM auftraege_dauer ; SELECT kunde, beschreibung, dauer, dauer + ( ( 35 ( CASE 36 WHEN EXTRACT ( MINUTE FROM dauer ) = 0 THEN 0 37 WHEN EXTRACT ( MINUTE FROM dauer ) < 15 THEN WHEN EXTRACT ( MINUTE FROM dauer ) < 30 THEN WHEN EXTRACT ( MINUTE FROM dauer ) < 45 THEN ELSE END ) EXTRACT ( MINUTE FROM dauer ) ) interval 1 minute ) AS dauer15 42 FROM auftraege_dauer ; b ) Auftragsdauer für jeden Auftraggeber aufaddieren SELECT kunde, sum ( dauer ) FROM auftraege_dauer GROUP BY kunde ; c ) Kunden mit Aufträgen zwischen und SELECT DISTINCT kunde from auftraege 51 WHERE ende >= DATE AND anfang <= DATE ; oder SELECT DISTINCT kunde from auftraege 56 WHERE ( anfang, ende ) OVERLAPS ( DATE , DATE ) ; d ) Aufträge zwischen 2 0: 0 0 und 0 6: 0 0 Uhr oder an Wochenenden SELECT FROM auftraege_dauer WHERE 61 Zwischen 20 und 6 Uhr? 62 ( extract ( hour from anfang ) between 20 and 2 4) or 63 ( extract ( hour from anfang ) between 0 and 6) or 64 ( extract ( hour from ende ) between 20 and 2 4) or 65 ( extract ( hour from ende ) between 0 and 6) or 66 ( extract ( dow from anfang ) < extract ( dow from ende ) ) or 67 ( dauer > INTERVAL 1 day ) 68 Anfang am Wochenende? 2 Julia Wolters

3 Freitag, Uhr Übung WS or extract ( dow from anfang ) = 0 or extract ( dow from anfang ) = 6 70 Ende am Wochenende? 71 or extract ( dow from ende ) = 0 or extract ( dow from ende ) = 6 72 Anfang und Ende in der Woche, aber in unterschiedlichen Wochen eigentlich unnötig 73 or ( extract ( dow from anfang ) between 1 and 5 74 and extract ( dow from ende ) between 1 and 5 75 and ( extract ( week from anfang ) < extract ( week from ende ) 76 or extract ( year from anfang ) < extract ( year from ende ) ) ) ; e ) Aufträge an denen gerade gearbeitet wird SELECT FROM auftraege WHERE anfang < now ( ) AND ( now ( ) < ende OR ende IS NULL ) ; f ) Durchschnittliche Wochenarbeitszeit für abgeschlossene Aufträge SELECT min ( anfang ), max ( ende ), max ( ende ) min ( anfang ) AS zeitraum, 85 extract ( days from ( max ( ende ) min ( anfang ) ) ) as gesamttage, 86 sum ( dauer ) AS gesamtdauer, 87 ( sum ( dauer ) / extract ( days from ( max ( ende ) min ( anfang ) ) ) ) 7 AS wochendauer 88 FROM auftraege_dauer 89 WHERE ende < now ( ) AND ende IS NOT NULL ; Julia Wolters 3

4 4 Julia Wolters Übung WS Freitag, Uhr

5 Freitag, Uhr Aufgabe 43 Übung WS angestellter Schulz Meier Müller Schmidt Tupelnikus Relationica Tadagoliker vorgesetzter Schulz Schulz Meier Schulz Müller Tupelnikus Müller (a) Beim Löschen eines Tupels werden alle referenzierenden (nicht referenzierten) Tupel auch gelöscht. (b) angestellter Schulz Meier (1) Müller Schmidt (2) Tupelnikus (3) Relationica (2) Tadagoliker vorgesetzter Schulz Schulz Meier Schulz Müller Tupelnikus Müller Aufgabe 44 1 import java. sql. ; 2 import java. util. GregorianCalendar ; 3 import java. util. StringTokenizer ; 4 5 / 6 Diese Klasse s t e l l t d i e Verbindung zu e i n e r SQL Datenbank über JDBC her und f ü h r t 7 Operationen auf e i n e r e v e n t u e l l noch zu erzeugenden T a b e l l e personendaten durch. Die Daten 8 der T a b e l l e entstammen einem Array PersonenJDBC. persons } von Person} Objekten, 9 d i e j e w e i l s d i e Daten b e z ü g l i c h e i n e r Person e n t h a l t e n. 10 Henrik Blunck Jörg Mensmann / Julia Wolters 5

6 Übung WS Freitag, Uhr 15 p u b l i c c l a s s PersonenJDBC { p u b l i c s t a t i c f i n a l String PSQL_DRIVER = "org.postgresql.driver" ; 18 p u b l i c s t a t i c f i n a l String MYSQL_DRIVER = "com.mysql.jdbc.driver" ; p r i v a t e Connection db ; 21 p r i v a t e String dbname ; 22 p r i v a t e String username ; 23 p r i v a t e String password ; // Der Datenbestand, der in d i e Datenbank i n t e g r i e r t werden s o l l 26 p r i v a t e Person [ ] persons = { 27 new Person ( "Jackson", "Michael", , new GregorianCalendar (1966, 11, 9), Person. MALE ), 28 new Person ( "Bolton", "Michael", , new GregorianCalendar (1965, 1, 17), Person. MALE ), 29 new Person ( "Gabriel", "Peter", , new GregorianCalendar (1959, 4, 5), Person. MALE ), 30 new Person ( "Jackson", "Jennifer", , new GregorianCalendar (1980, 7, 23), Person. FEMALE ), 31 new Person ( "Hooker", "John Lee", , new GregorianCalendar (1916, 3, 7), Person. MALE ), 32 new Person ( "Turner", "Tina", , new GregorianCalendar (1958, 1, 17), Person. FEMALE ), 33 new Person ( "Rush", "Jennifer", , new GregorianCalendar (1961, 3, 21), Person. FEMALE ) 34 } ; p u b l i c PersonenJDBC ( ) { 37 } / 40 Abarbeitung der in der A u f g a b e n s t e l l u n g angegebenen Anforderungen 41 / 42 p u b l i c void dorequiredoperations ( ) { 43 // String Variable, das j e w e i l s d i e SQL Statements a l s Z e i c h e n k e t t e h ä l t 44 String sqlstring ; 45 // Das ResultSet, das j e w e i l s d i e Ergebnisse e i n z e l n e r Anfragen h ä l t 46 ResultSet rs ; 47 boolean tableexists = true ; 48 // Test, ob T a b e l l e mit Namen personendaten b e r e i t s e x i s t i e r t 49 try { 50 // db. getmetadata ( ) l i e f e r t DatabaseMetaData Objekt. g e t T a b l e s (.. ) l i e f e r t 51 // ResultSet, dass a l l e Tabellen e n t h ä l t, d i e d i e mit den durch d i e Parametern 6 Julia Wolters

7 Freitag, Uhr Übung WS // gegebenen K r i t e r i e n übereinstimmen. next ( ) g i b t f a l s e zurück, f a l l s kein 53 // n ä c h s t e s Element im R e s u l t S e t e x i s t i e r t e. 54 rs = db. getmetadata ( ). gettables ( "", "", "personendaten", n u l l ) ; 55 rs. beforefirst ( ) ; 56 tableexists = rs. next ( ) ; 57 } catch ( SQLException e ) { 58 reactonsqlexception ( e ) ; 59 } // F a l l s Tabellen n i c h t e x i s t i e r t e, erzeuge und f ü l l e s i e 62 i f (! tableexists ) { 63 // Tabellenschema erzeugen 64 try { 65 System. out. println ( "Erzeuge Tabellen..." ) ; 66 constructpersondatabase ( ) ; 67 } catch ( SQLException sqlexception ) { 68 reactonsqlexception ( sqlexception ) ; 69 } 70 } // T a b e l l e f ü l l e n mit den Daten aus dem Person Array persons 73 try { 74 fillpersondatabase ( ) ; 75 } catch ( SQLException sqlexception ) { 76 reactonsqlexception ( sqlexception ) ; 77 } // Auslesen des gesamten Datenbestandes der T a b e l l e personendaten und Ausgabe 80 try { 81 sqlstring = " SELECT * FROM personendaten" ; 82 rs = executequery ( sqlstring ) ; 83 System. out. println ( " Datenbank nach dem Einlesen des Datenbestandes:" ) ; 84 printresultset ( rs, 5) ; 85 } catch ( SQLException sqlexception ) { 86 reactonsqlexception ( sqlexception ) ; 87 } // Löschen d e s Person Arrays und Neuanlegen mit den den Daten aus d e r Personen Datenbank 90 try { 91 persons = n u l l ; 92 persons = extractpersonsfromdatabase ( ) ; 93 } catch ( SQLException sqlexception ) { 94 reactonsqlexception ( sqlexception ) ; 95 } Julia Wolters 7

8 Übung WS Freitag, Uhr // Ausgabe der Objekte in persons [ ] 99 System. out. println ( "Ausgabe der Objekte in persons[]:" ) ; 100 f o r ( i n t i = 0 ; i < persons. length ; i++) { 101 persons [ i ]. printperson ( ) ; 102 } // Anfrage an d i e Datenbank und Anzeigen i n d e r Konsole : Die Anfrage g i b t Vor und 105 // Nachnamen a l l e r Personen, deren Nachname mit J beginnt, geordnet nach 106 // a u f s t e i g e n d e n Nachnamen zurück. 107 try { 108 sqlstring = " SELECT lastname, firstname FROM personendaten WHERE" " lastname LIKE J% " ; 110 rs = executequery ( sqlstring ) ; 111 System. out. println ( " Datenbestand selektiert mit: " + sqlstring " " ) ; 113 printresultset ( rs, 2) ; 114 } c a t c h ( SQLException sqlexception ) { 115 reactonsqlexception ( sqlexception ) ; 116 } // Anfrage an d i e Datenbank und Anzeigen i n d e r Konsole : Die Anfrage g i b t Vor und 119 // Nachnamen und Geburtsdaten a l l e r Personen, d i e vor 1960 geboren sind, geordnet nach 120 // a u f s t e i g e n d e n Geburtstagen zurück. 121 try { 122 sqlstring = " SELECT lastname, firstname, dayofbirth FROM" " personendaten WHERE dayofbirth < order" " by dayofbirth" ; 125 rs = executequery ( sqlstring ) ; 126 System. out. println ( " Datenbestand selektiert mit: " + sqlstring " " ) ; 128 printresultset ( rs, 3) ; 129 } c a t c h ( SQLException sqlexception ) { 130 reactonsqlexception ( sqlexception ) ; 131 } // Anfrage an d i e Datenbank und Anzeigen i n d e r Konsole : Die Anfrage g i b t Vor und 134 // Nachnamen und Geburtsdaten a l l e r w e i b l i c h e n Personen, d i e zwischen 1960 und // geboren sind, geordnet nach a u f s t e i g e n d e n Geburtstagen zurück. 136 try { 8 Julia Wolters

9 Freitag, Uhr Übung WS sqlstring = " SELECT lastname, firstname, dayofbirth FROM" " personendaten WHERE dayofbirth >= " " and dayofbirth < and gender = female " " order by dayofbirth" ; 141 rs = executequery ( sqlstring ) ; 142 System. out. println ( " Datenbestand selektiert mit: " + sqlstring " " ) ; 144 printresultset ( rs, 3) ; 145 } c a t c h ( SQLException sqlexception ) { 146 reactonsqlexception ( sqlexception ) ; 147 } // Einfügen des genannten neuen E i n t rages 150 try { 151 db. setautocommit ( f a l s e ) ; 152 sqlstring = " DELETE FROM personendaten WHERE lastname = Jackson " ; 153 executeupdate ( sqlstring ) ; 154 sqlstring = " INSERT INTO personendaten values ( Jackson, Five, 5, NULL, NULL)" ; 155 executeupdate ( sqlstring ) ; 156 db. commit ( ) ; 157 db. setautocommit ( true ) ; 158 } c a t c h ( SQLException sqlexception ) { 159 reactonsqlexception ( sqlexception ) ; 160 } // S c h l i e s s e n der Verbindung 164 try { 165 db. close ( ) ; 166 } c a t c h ( SQLException sqlexception ) { 167 reactonsqlexception ( sqlexception ) ; 168 } 169 } / 172 Legt d i e T a b e l l e persondendaten in der Datenbank an 173 SQLException 175 / 176 p u b l i c v o i d constructpersondatabase ( ) throws SQLException { 177 String sqlstring ; 178 Statement stmt ; // Erzeugen der T a b e l l e 181 sqlstring = " CREATE TABLE personendaten ( lastname VARCHAR (20)," " firstname VARCHAR (20), ssn integer, dayofbirth CHAR(12)," + Julia Wolters 9

10 Übung WS Freitag, Uhr 183 " gender CHAR(6), PRIMARY KEY ( ssn), CHECK" " (gender in ( male, female )));" ; 185 stmt = db. createstatement ( ) ; 186 stmt. execute ( sqlstring ) ; 187 } / 190 Führt e i n e Anfrage an d i e verbundende Datenbank aus. 191 s q l S t r i n g Das auszuführende SQL Statement a l s S t r i n g. Das ResultSet, das das Ergbnis der Anfrage an d i e Datenbank e n t h ä l t. SQLException 195 / 196 p u b l i c ResultSet executequery ( String sqlstring ) throws SQLException { 197 Statement statement = db. createstatement ( ResultSet. TYPE_SCROLL_INSENSITIVE, 198 ResultSet. CONCUR_UPDATABLE ) ; 199 return statement. executequery ( sqlstring ) ; 200 } / 203 Führt e i n Update i n d e r verbundenden Datenbank aus. 204 s q l S t r i n g Das auszuführende SQL Statement a l s S t r i n g. Angabe über den E r f o l g des Updates SQLException 208 / 209 p u b l i c i n t executeupdate ( String sqlstring ) throws SQLException { 210 Statement statement = db. createstatement ( ) ; 211 return statement. executeupdate ( sqlstring ) ; 212 } / 215 F ü l l t d i e T a b e l l e personendaten mit dem Datenbestand im PersonenArray. Vorab werden 216 d i e a l t e n T a b e l l e n i n h a l t e g e l ö s c h t. 217 SQLException 219 / 220 p u b l i c v o i d fillpersondatabase ( ) throws SQLException { 221 Statement stmt = db. createstatement ( ) ; 222 String sqlstring = " DELETE FROM personendaten" ; 223 stmt. executeupdate ( sqlstring ) ; 224 f o r ( i n t i = 0 ; i < persons. length ; i++) { 225 sqlstring = " INSERT INTO personendaten VALUES( " persons [ i ]. getlastname ( ) + ", " 10 Julia Wolters

11 Freitag, Uhr Übung WS persons [ i ]. getfirstname ( ) + ", " Integer. tostring ( persons [ i ]. getssn ( ) ) + ", " getsqldatebyjavagregoriancalendar ( persons [ i ]. getdayofbirth ( ) ) + ", " persons [ i ]. getgender ( ) + " )" ; 231 stmt. executeupdate ( sqlstring ) ; 232 } 233 } / 236 K o n v e r t i e r t ein Objekt vom Typ ein Objekt vom Typ GregorianCalendar in 237 einen S t r i n g im SQL Date Format 238 calendar ein S t r i n g im SQL Date Format 241 / 242 p u b l i c s t a t i c String getsqldatebyjavagregoriancalendar ( 243 GregorianCalendar calendar ) { 244 String ret ; 245 ret = calendar. get ( java. util. Calendar. YEAR ) + " " calendar. get ( java. util. Calendar. MONTH ) + " " calendar. get ( java. util. Calendar. DAY_OF_MONTH ) ; 248 return ret ; 249 } / 252 K o n v e r t i e r t einen S t r i n g im SQL Date Format ( z.b ) in ein 253 Objekt vom Typ GregorianCalendar. 254 s q l D a t e 256 ein S t r i n g im SQL Date Format ein Objekt vom Typ GregorianCalendar. 258 / 259 p u b l i c s t a t i c GregorianCalendar getjavagreogoriancalendarebysqldate ( 260 String sqldate ) { 261 i f ( sqldate == n u l l ) r eturn new GregorianCalendar ( ) ; 262 e l s e { 263 StringTokenizer tokenizer = new StringTokenizer ( sqldate, " " ) ; 264 return new GregorianCalendar ( Integer. parseint ( tokenizer. nexttoken ( ) ), 265 Integer. parseint ( tokenizer. nexttoken ( ) ), Integer 266. parseint ( tokenizer. nexttoken ( ) ) ) ; 267 } 268 } / Julia Wolters 11

12 Übung WS Freitag, Uhr 271 Erzeugt aus dem I n h a l t der T a b e l l e personendaten der Datenbank ein Array von Instanzen 272 der Klasse Person. Ruft extractpersonsfromresultset ( ) auf SQLException 275 / 276 p u b l i c Person [ ] extractpersonsfromdatabase ( ) throws SQLException { 277 Statement statement = db. createstatement ( ResultSet. TYPE_SCROLL_INSENSITIVE, 278 ResultSet. CONCUR_UPDATABLE ) ; 279 String sqlstring = " SELECT * FROM personendaten" ; 280 ResultSet rs = statement. executequery ( sqlstring ) ; 281 Person [ ] ret = extractpersonsfromresultset ( rs ) ; 282 return ret ; 283 } / 286 Erzeugt aus einem ResultSet Objekt ein Array von Instanzen der Klasse 287 Person. Wird von extractpersonsfromdatabase ( ) a u f g e r u f e n. 288 rs Das ResultSet, aus dem d i e Personendaten zu e x t r a h i e r e n sind. Ein Array von Person Objekten, das d i e e x t r a h i e r t e n Daten 291 e n t h ä l t. SQLException 293 / 294 p u b l i c s t a t i c Person [ ] extractpersonsfromresultset ( ResultSet rs ) 295 throws SQLException { 296 i n t count = 0 ; 297 rs. beforefirst ( ) ; 298 while (! rs. islast ( ) ) { 299 rs. next ( ) ; 300 count++; 301 } 302 Person [ ] ret = new Person [ count ] ; rs. beforefirst ( ) ; 305 count = 1; 306 while (! rs. islast ( ) ) { 307 rs. next ( ) ; 308 count++; 309 boolean female ; 310 i f ( rs. getstring ( "gender" )!= n u l l && rs. getstring ( "gender" ). equalsignorecase ( Person. FEMALE_STRING ) ) { 311 female = true ; 312 } e l s e { 12 Julia Wolters

13 Freitag, Uhr Übung WS female = f a l s e ; 314 } 315 Person person = new Person ( rs. getstring ( "lastname" ), rs. getstring ( "firstname" ), rs. getint ( "ssn" ), getjavagreogoriancalendarebysqldate ( rs. getstring ( " dayofbirth " ) ), female ) ; 316 ret [ count ] = person ; 317 } 318 return ret ; 319 } / 322 Löscht a l l e Tupel aus der T a b e l l e personendaten der Datenbank. 323 SQLException 325 / 326 p u b l i c v o i d clearpersondatabase ( ) throws SQLException { 327 Statement stmt = db. createstatement ( ) ; 328 String sqlstring = " DELETE FROM personendaten" ; 329 stmt. executeupdate ( sqlstring ) ; 330 } / H e r s t e l l e n der Verbindung zur Datenbank und Setzen der d i e 334 Verbindung c h a r a k t i e r i s i e r e n d e n A t t r i b u t e des aufrufenden 335 O b j e k t e s indriver 337 Der Name des T r e i b e r s. E n t s p r i c h t dem a b s o l u t e n Klassenpfad 338 der T r e i b e r k l a s s e ClassNotFoundException 340 f a l l s ein f a l s c h e r Treiber s p e z i f i z i e r t wurde SQLException 342 f a l l s beim Ansprechen der Datenbank Fehler von d i e s e r 343 gemeldet werden 344 / 345 p u b l i c void establishandconnect ( String indriver ) 346 throws ClassNotFoundException, SQLException { 347 Class. forname ( indriver ) ; 348 db = DriverManager. getconnection ( dbname, username, password ) ; 349 } / 352 Gibt ein R e s u l t S e t in Tabellenform auf den Bildschirm aus. 353 rs Das ResultSet, das ausgegeben werden s o l l Julia Wolters 13

14 Übung WS Freitag, Uhr numofcolumns 356 Die Anzahl der A t t r i b u t w e r t e ( d. h. S palten ) der anzuzeigenden 357 Tupel ( d. h. Z e i l e n ) SQLException 359 / 360 p u b l i c s t a t i c void printresultset ( ResultSet rs, i n t numofcolumns ) 361 throws SQLException { 362 rs. beforefirst ( ) ; 363 while (! rs. islast ( ) && rs. next ( ) ) { 364 f o r ( i n t i = 1 ; i <= numofcolumns ; i++) { 365 System. out. print ( rs. getstring ( i ) + " " ) ; 366 } 367 System. out. println ( ) ; 368 } 369 } / 372 Methode z u r Ausnahmebehandlung während d e s Versuches, mit d e r Datenbank 373 zu kommunizieren. 374 s q l E x c e p t i o n Die geworfene Ausnahme 376 / 377 p r i v a t e void reactonsqlexception ( SQLException sqlexception ) { 378 boolean isfirstexception = true ; 379 while ( isfirstexception ( sqlexception. getnextexception ( )!= n u l l ) ) { 380 System. out 381. println ( " Während der Arbeit mit der Datenbank trat folgender Fehler auf: " sqlexception. tostring ( ) " Code:" sqlexception. geterrorcode ( ) ) ; 385 System. out. println ( " Die Verbindung verblieb in folgendem Status : " sqlexception. getsqlstate ( ) ) ; 387 isfirstexception = f a l s e ; 388 } 389 } / args 393 / 394 p u b l i c s t a t i c void main ( String args [ ] ) { 395 PersonenJDBC personenjdbc = new PersonenJDBC ( ) ; 396 // B e r e i t s t e l l e n der Eingabeparameter f ü r d i e Verbindung mit der Datenbank ; p r ü f t 14 Julia Wolters

15 Freitag, Uhr Übung WS // vorab, ob ein Passwort a l s Aufrufparameter übergeben wurde 398 i f ( args. length == 3) { 399 personenjdbc. dbname = args [ 0 ] ; 400 personenjdbc. username = args [ 1 ] ; 401 personenjdbc. password = args [ 2 ] ; 402 } e l s e i f ( args. length == 2) { 403 personenjdbc. dbname = args [ 0 ] ; 404 personenjdbc. username = args [ 1 ] ; 405 // F a l l s kein Passwort übergeben wurde, s e t z e das Passwort a l s l e e r e n S t r i n g 406 personenjdbc. password = "" ; 407 } e l s e { 408 // F a l l s d i e Parameteranzahl n i c h t s i n n v o l l i s t, beende das Programm 409 // mit Fehlermeldung 410 System. err 411. println ( " Benutzung: java PersonenJDBC <dbname > <dbusername > " "[< dbuserpasswd >] \n" ) ; 413 System. err 414. println ( " Beispiel: java PersonenJDBC jdbc: postgresql:// padme.uni - muenster. de/ mustermanndb mustermann}\ n" " oder java PersonenJDBC jdbc: mysql:// cpc.uni - muenster. de/ mustermanndb mustermann" ) ; System. exit ( 1 ) ; 418 } try { 421 i f ( personenjdbc. dbname. startswith ( "jdbc:postgresql:" ) ) { 422 System. out. println ( "Benutze PostgreSQL." ) ; 423 personenjdbc. establishandconnect ( PersonenJDBC. PSQL_DRIVER ) ; 424 } e l s e i f ( personenjdbc. dbname. startswith ( "jdbc:mysql:" ) ) { 425 System. out. println ( "Benutze MySQL." ) ; 426 personenjdbc. establishandconnect ( PersonenJDBC. MYSQL_DRIVER ) ; 427 } e l s e { 428 System. err. println ( " Unbekanntes Datenbankssystem.\ n" ) ; 429 System. exit ( 1 ) ; 430 } 431 } catch ( java. lang. ClassNotFoundException e ) { 432 System. out 433. println ( " Verbindung mit der Datenbank fehlgeschlagen: Treiber nicht gefunden. " e. tostring ( ) ) ; 435 } c a t c h ( SQLException sqlexception ) { 436 personenjdbc. reactonsqlexception ( sqlexception ) ; 437 } Julia Wolters 15

16 Übung WS Freitag, Uhr // Führt d i e in der A u f g a b e n s t e l l u n g genannten Anforderungen aus. 440 personenjdbc. dorequiredoperations ( ) ; 441 } 442 } 16 Julia Wolters

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

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

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

Programmieren II. Relationale Datenbanken. Vorlesung 07. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Sommersemester 2011.

Programmieren II. Relationale Datenbanken. Vorlesung 07. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Sommersemester 2011. Programmieren II Martin Schultheiß Hochschule Darmstadt Sommersemester 2011 1 / 26 Datenbanken SQL-Grundlagen JDBC SQL-Constraints 2 / 26 Relationale Datenbanken Ein Datenbanksystem ist ein System zur

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

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

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

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

Betreutes Programmieren Vorlesung Informatik II, Blatt 7 Musterlösung

Betreutes Programmieren Vorlesung Informatik II, Blatt 7 Musterlösung SS 2011 Fakultät für Angewandte Informatik Lehrprofessur für Informatik 15.06.2011 Prof. Dr. Robert Lorenz Betreutes Programmieren Vorlesung Informatik II, Blatt 7 Musterlösung Programmieraufwand für geübte

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

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

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

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

Einführung in die Informatik II

Einführung in die Informatik II Einführung in die Informatik II Die Structured Query Language SQL Prof. Dr. Nikolaus Wulff SQL Das E/R-Modell lässt sich eins zu eins auf ein Tabellenschema abbilden. Benötigt wird eine Syntax, um Tabellen

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

7. Datenbank-Zugriff. Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn. Zum Beispiel aus PHP-Skripten: Client 7-2

7. Datenbank-Zugriff. Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn. Zum Beispiel aus PHP-Skripten: Client 7-2 5 Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn 7 7. Datenbank-Zugriff Zum Beispiel aus PHP-Skripten: Client 7-2 Struktur einer Datenbank 7-3 Erzeugen von Datenbanken

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

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

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

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

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

ISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski. www.iit.tu-cottbus.de

ISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski. www.iit.tu-cottbus.de 08 Datenbanken Übung SQL Einführung Eckbert Jankowski www.iit.tu-cottbus.de Datenmodell (Wiederholung, Zusammenfassung) Objekte und deren Eigenschaften definieren Beziehungen zwischen den Objekten erkennen/definieren

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

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

Introduction to Data and Knowledge Engineering. 6. Übung SQL

Introduction to Data and Knowledge Engineering. 6. Übung SQL Introduction to Data and Knowledge Engineering 6. Übung SQL Aufgabe 6.1 Datenbank-Schema Buch PK FK Autor PK FK ISBN Titel Preis x ID Vorname Nachname x BuchAutor ISBN ID PK x x FK Buch.ISBN Autor.ID FB

Mehr

Universität Augsburg, Institut für Informatik WS 2009/2010 Prof. Dr. W. Kießling 18. Dez Dr. A. Huhn, F. Wenzel, M. Endres Lösungsblatt 8

Universität Augsburg, Institut für Informatik WS 2009/2010 Prof. Dr. W. Kießling 18. Dez Dr. A. Huhn, F. Wenzel, M. Endres Lösungsblatt 8 Universität Augsburg, Institut für Informatik WS 2009/2010 Prof. Dr. W. Kießling 18. Dez. 2009 Dr. A. Huhn, F. Wenzel, M. Endres Lösungsblatt 8 Aufgabe 1: JDBC 2.0 und Scrollable Result Sets Datenbanksysteme

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

Datenbanksysteme 2013

Datenbanksysteme 2013 Datenbanksysteme 2013 Kapitel 8: Datenintegrität Vorlesung vom 14.05.2013 Oliver Vornberger Institut für Informatik Universität Osnabrück Datenintegrität Statische Bedingung (jeder Zustand) Dynamische

Mehr

Funktionen. Überblick über Stored Functions. Syntax zum Schreiben einer Funktion. Schreiben einer Funktion

Funktionen. Überblick über Stored Functions. Syntax zum Schreiben einer Funktion. Schreiben einer Funktion Überblick über Stored Functions Funktionen Eine Funktion ist ein benannter PL/SQL- Block, der einen Wert zurückgibt. Eine Funktion kann in der Datenbank als Objekt zur wiederholbaren Ausführung gespeichert

Mehr

Übersicht der wichtigsten MySQL-Befehle

Übersicht der wichtigsten MySQL-Befehle Übersicht der wichtigsten MySQL-Befehle 1. Arbeiten mit Datenbanken 1.1 Datenbank anlegen Eine Datenbank kann man wie folgt erstellen. CREATE DATABASE db_namen; 1.2 Existierende Datenbanken anzeigen Mit

Mehr

Universität Augsburg, Institut für Informatik WS 2014/2015 Prof. Dr. W. Kießling 28. Nov. 2014 F. Wenzel, L. Rudenko Lösungsblatt 6

Universität Augsburg, Institut für Informatik WS 2014/2015 Prof. Dr. W. Kießling 28. Nov. 2014 F. Wenzel, L. Rudenko Lösungsblatt 6 Universität Augsburg, Institut für Informatik WS 2014/2015 Prof. Dr. W. Kießling 28. Nov. 2014 F. Wenzel, L. Rudenko Lösungsblatt 6 Aufgabe 1: SQL: DDL und DML a) DDL: Datenbanksysteme I CREATE TABLE Bundeslaender

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

Seminar 2. SQL - DML(Data Manipulation Language) und. DDL(Data Definition Language) Befehle.

Seminar 2. SQL - DML(Data Manipulation Language) und. DDL(Data Definition Language) Befehle. Seminar 2 SQL - DML(Data Manipulation Language) und DDL(Data Definition Language) Befehle. DML Befehle Aggregatfunktionen - werden auf eine Menge von Tupeln angewendet - Verdichtung einzelner Tupeln yu

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

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

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

7. Datenbank-Zugriff. Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn. Zum Beispiel aus PHP-Skripten: Client 7-2

7. Datenbank-Zugriff. Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn. Zum Beispiel aus PHP-Skripten: Client 7-2 5 Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn 7 7. Datenbank-Zugriff Zum Beispiel aus PHP-Skripten: Client 7-2 Struktur einer Datenbank 7-3 Erzeugen von Datenbanken

Mehr

Einführung in SQL. 1. Grundlagen SQL. Structured Query Language. Viele Dialekte. Unterteilung: i. DDL (Data Definition Language)

Einführung in SQL. 1. Grundlagen SQL. Structured Query Language. Viele Dialekte. Unterteilung: i. DDL (Data Definition Language) Einführung in SQL 1. Grundlagen Structured Query Language Viele Dialekte Unterteilung: i. DDL (Data Definition Language) ii. iii. DML (Data Modifing Language) DRL (Data Retrival Language) 1/12 2. DDL Data

Mehr

Vorlesung Informatik II

Vorlesung Informatik II Vorlesung Informatik II Universität Augsburg Sommersemester 2011 Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 10. Java: Datenhaltung mit Datenbanken 1 Datenbank-Programme Derby (Hersteller: Apache

Mehr

5.8 Bibliotheken für PostgreSQL

5.8 Bibliotheken für PostgreSQL 5.8 Bibliotheken für PostgreSQL Haskell/WASH: Modul Dbconnect PHP: pqsql-funktionen Java/JSP: JDBC Perl: DBI database interface modul Vorläufige Version 80 c 2004 Peter Thiemann, Matthias Neubauer 5.9

Mehr

MySQL-Befehle. In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben.

MySQL-Befehle. In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben. MySQL-Befehle 1. Einleitung In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben. 2. Arbeiten mit Datenbanken 2.1 Datenbank anlegen Eine Datenbank kann man wie folgt

Mehr

Anwendungsentwicklung Datenbanken SQL. Stefan Goebel

Anwendungsentwicklung Datenbanken SQL. Stefan Goebel Anwendungsentwicklung Datenbanken SQL Stefan Goebel SQL Structured Query Language strukturierte Abfragesprache von ANSI und ISO standardisiert deklarativ bedeutet was statt wie SQL beschreibt, welche Daten

Mehr

Wiederholung VU Datenmodellierung

Wiederholung VU Datenmodellierung Wiederholung VU Datenmodellierung VU Datenbanksysteme Reinhard Pichler Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Wintersemester

Mehr

Oracle 10g Einführung

Oracle 10g Einführung Kurs Oracle 10g Einführung Teil 5 Einführung Timo Meyer Administration von Oracle-Datenbanken Timo Meyer Sommersemester 2006 Seite 1 von 16 Seite 1 von 16 Agenda 1 Tabellen und Views erstellen 2 Indizes

Mehr

Kurzübersicht JDBC. Marc Monecke. monecke@informatik.uni-siegen.de. 15. Januar 2003

Kurzübersicht JDBC. Marc Monecke. monecke@informatik.uni-siegen.de. 15. Januar 2003 Kurzübersicht JDBC Marc Monecke monecke@informatik.uni-siegen.de 15. Januar 2003 Zusammenfassung Über JDBC-Schnittstellen können Anwendungsprogramme auf Datenbanken zugreifen, ohne daß dabei hersteller-

Mehr

SQL für Trolle. mag.e. Dienstag, 10.2.2009. Qt-Seminar

SQL für Trolle. mag.e. Dienstag, 10.2.2009. Qt-Seminar Qt-Seminar Dienstag, 10.2.2009 SQL ist......die Abkürzung für Structured Query Language (früher sequel für Structured English Query Language )...ein ISO und ANSI Standard (aktuell SQL:2008)...eine Befehls-

Mehr

Datenbanken (Übung 12)

Datenbanken (Übung 12) Datenbanken (Übung 12) Prof. Dr.-Ing. Norbert Fuhr Dipl.-Inform. Thomas Beckers (tbeckers@is.inf.uni-due.de) Universität Duisburg-Essen Fachgebiet Informationssysteme 1. 2. Februar 2012 Dipl.-Inform. Thomas

Mehr

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. Blatt Nr. 8 Hausaufgabe 1 Übung zur Vorlesung Grundlagen: Datenbanken im WS13/14 Henrik Mühe (muehe@in.tum.de)

Mehr

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird.

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird. Thomas Studer Relationale Datenbanken: Von den theoretischen Grundlagen zu Anwendungen mit PostgreSQL Springer, 2016 ISBN 978-3-662-46570-7 Dieser Foliensatz darf frei verwendet werden unter der Bedingung,

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

Tag 5 Inhaltsverzeichnis

Tag 5 Inhaltsverzeichnis Tag 5 Inhaltsverzeichnis ODBC / JDBC: Ziel und Prinzip JDBC Überblick Erstes Beispiel Queries (Execute- und UpdateQuery) Der Typ "ResultSet" Diverses Metadata PreparedStatement Transaktionen und Batches

Mehr

Database. Creates. -- Kunde(knr, nname, vname, adresse:adresse.aid) CREATE TABLE Kunde ( NUMERIC(13) PRIMARY KEY,

Database. Creates. -- Kunde(knr, nname, vname, adresse:adresse.aid) CREATE TABLE Kunde ( NUMERIC(13) PRIMARY KEY, Database Creates -- Adresse (aid, plz, ort, strasse, nummer) CREATE TABLE Adresse ( aid SERIAL PRIMARY KEY, plz SMALLINT NOT NULL, ort VARCHAR(40) NOT NULL, strasse VARCHAR(70) NOT NULL, nummer VARCHAR(20)

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 native json Support. Erste Schritte

Oracle native json Support. Erste Schritte Oracle native json Support Erste Schritte 1 Ausgangslage Als erster Schritt erstellen wir eine Tabelle, die wir für den weiteren Verlauf brauchen werden. Die Felder Id, Created und Username sind normale

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

PROGRAMMIERPROJEKT 2016 VERWENDETE TECHNOLOGIEN

PROGRAMMIERPROJEKT 2016 VERWENDETE TECHNOLOGIEN PROGRAMMIERPROJEKT 2016 VERWENDETE TECHNOLOGIEN Mathias Weber und Annette Bieniusa ÜBERBLICK Spark SQL SQL in Java SPARK WAS IST DAS? Framework zur Erstellung von Web-Anwendungen in Java Einfach zu verwenden

Mehr

Einführung in SQL. Sprachumfang: Indizes. Datensätzen. Zugriffsrechten

Einführung in SQL. Sprachumfang: Indizes. Datensätzen. Zugriffsrechten Einführung in SQL Die Sprache SQL (Structured Query Language) ist eine Programmiersprache für relationale Datenbanksysteme, die auf dem ANSI-SQL-Standard beruht. SQL wird heute von fast jedem Datenbanksystem

Mehr

Die Anweisung create table

Die Anweisung create table SQL-Datendefinition Die Anweisung create table create table basisrelationenname ( spaltenname 1 wertebereich 1 [not null],... spaltenname k wertebereich k [not null]) Wirkung dieses Kommandos ist sowohl

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

Universität Augsburg, Institut für Informatik WS 2009/2010 Prof. Dr. W. Kießling 11. Dez Dr. A. Huhn, F. Wenzel, M. Endres Lösungsblatt 7

Universität Augsburg, Institut für Informatik WS 2009/2010 Prof. Dr. W. Kießling 11. Dez Dr. A. Huhn, F. Wenzel, M. Endres Lösungsblatt 7 Universität Augsburg, Institut für Informatik WS 2009/2010 Prof. Dr. W. Kießling 11. Dez. 2009 Dr. A. Huhn, F. Wenzel, M. Endres Lösungsblatt 7 Aufgabe 1: Basisoperationen mit JDBC Datenbanksysteme I a)

Mehr

Udo Matthias Munz. Datenbanken und SQL. mit. Einführung. Informationstechnik

Udo Matthias Munz. Datenbanken und SQL. mit. Einführung. Informationstechnik Udo Matthias Munz Datenbanken und SQL mit Einführung Informationstechnik Zugriff auf eine Datenbank... 2 ODBC... 2 Eine DSN einrichten... 3 Verbindung zu einer Datenbank... 4 Datenbank... 4 Metadaten der

Mehr

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo.

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo. Mengenvergleiche: Mehr Möglichkeiten als der in-operator bietet der θany und der θall-operator, also der Vergleich mit irgendeinem oder jedem Tupel der Unteranfrage. Alle Konten außer das, mit dem größten

Mehr

Tag 5 Inhaltsverzeichnis

Tag 5 Inhaltsverzeichnis Tag 5 Inhaltsverzeichnis ODBC / JDBC: Ziel und Prinzip JDBC Überblick Erstes Beispiel Queries (Execute- und UpdateQuery) Der Typ "ResultSet" Diverses Metadata PreparedStatement Transaktionen und Batches

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 Programmieren von Datenbankzugriffen mit JDBC Fachbereich MNI Technische Hochschule Mittelhessen Sommersemester 2015 Überblick über das Package java.sql Übersicht Architektur von JDBC Grundstruktur eines

Mehr

Klausur zur Vorlesung Datenbanksysteme I

Klausur zur Vorlesung Datenbanksysteme I Prof. Dr. W. Kießling 30.01.2002 Lehrstuhl für Datenbanken und Informationssysteme Universität Augsburg Klausur zur Vorlesung Datenbanksysteme I Wintersemester 2001/2002 Name Vorname Matrikelnummer Aufgabe

Mehr

JDBC. Allgemeines ODBC. java.sql. Beispiele

JDBC. Allgemeines ODBC. java.sql. Beispiele JDBC Java Data Base Connectivity Programmierschnittstelle für relationale Datenbanken Sammlung von Klassen, welche zum Aufbau einer Verbindung zwischen einem Java-Programm und einer Datenbank dienen Verwendet

Mehr

Hochschule Karlsruhe Technik und Wirtschaft- 10.7.2013. Anhänge: Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Prof. Schmidt.

Hochschule Karlsruhe Technik und Wirtschaft- 10.7.2013. Anhänge: Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Prof. Schmidt. Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Datenbanken und Informationssysteme II Szenario: Projektverwaltung. Es gibt Projekte, Projektleiter, Mitarbeiter und ihre Zuordnung zu Projekten.

Mehr

Grundlagen der Informatik 2

Grundlagen der Informatik 2 Grundlagen der Informatik 2 Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik mwilhelm@hs-harz.de Raum 2.202 Tel. 03943 / 659 338 1 Gliederung 1. Einführung

Mehr

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. Übung zur Vorlesung Einführung in die Informatik 2 für Ingenieure (MSE) Alexander van Renen (renen@in.tum.de)

Mehr

Entwicklungsumgebung für die Laborübung

Entwicklungsumgebung für die Laborübung Entwicklungsumgebung für die Laborübung VU Datenbanksysteme Wolfgang Fischl Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Wintersemester

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

Praktikum zu Einführung in die Informatik für LogWings und WiMas Wintersemester 2013/14

Praktikum zu Einführung in die Informatik für LogWings und WiMas Wintersemester 2013/14 Praktikum zu Einführung in die Informatik für LogWings und WiMas Wintersemester 2013/14 Fakultät für Informatik Lehrstuhl 1 Dr. Lars Hildebrand Iman Kamehkhosh, Marcel Preuß, Henning Timm Übungsblatt 11

Mehr

3 Query Language (QL) Einfachste Abfrage Ordnen Gruppieren... 7

3 Query Language (QL) Einfachste Abfrage Ordnen Gruppieren... 7 1 Data Definition Language (DDL)... 2 1.1 Tabellen erstellen... 2 1.1.1 Datentyp...... 2 1.1.2 Zusätze.... 2 1.2 Tabellen löschen... 2 1.3 Tabellen ändern (Spalten hinzufügen)... 2 1.4 Tabellen ändern

Mehr

SQL Tutorial. SQL - Tutorial SS 06. Hubert Baumgartner. INSO - Industrial Software

SQL Tutorial. SQL - Tutorial SS 06. Hubert Baumgartner. INSO - Industrial Software SQL Tutorial SQL - Tutorial SS 06 Hubert Baumgartner INSO - Industrial Software Institut für Rechnergestützte Automation Fakultät für Informatik Technische Universität Wien Inhalt des Tutorials 1 2 3 4

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

Übungsaufgaben mit Lösungen

Übungsaufgaben mit Lösungen Abt. Wi.-Inf. II Wirtschaftsinformatik II: SQL 1 Übungsaufgaben mit Lösungen 1) Ausgabe sämtlicher Spalten der Tabelle DEPARTMENT. SELECT * FROM DEPARTMENT 2) Ausgabe aller Projektnummern und Projektnamen.

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

Grundlagen der Informatik 2

Grundlagen der Informatik 2 Grundlagen der Informatik 2 Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik mwilhelm@hs-harz.de Raum 2.202 Tel. 03943 / 659 338 1 Gliederung 1. Einführung

Mehr

PostgreSQL unter Debian Linux

PostgreSQL unter Debian Linux Einführung für PostgreSQL 7.4 unter Debian Linux (Stand 30.04.2008) von Moczon T. und Schönfeld A. Inhalt 1. Installation... 2 2. Anmelden als Benutzer postgres... 2 2.1 Anlegen eines neuen Benutzers...

Mehr

CoMa 04. Java II. Paul Boeck. 7. Mai Humboldt Universität zu Berlin Institut für Mathematik. Paul Boeck CoMa 04 7.

CoMa 04. Java II. Paul Boeck. 7. Mai Humboldt Universität zu Berlin Institut für Mathematik. Paul Boeck CoMa 04 7. CoMa 04 Java II Paul Boeck Humboldt Universität zu Berlin Institut für Mathematik 7. Mai 2013 Paul Boeck CoMa 04 7. Mai 2013 1 / 13 Verzweigungen Wenn-Dann Beziehungen if (BEDINGUNG) { else if (BEDINGUNG2)

Mehr

Datenbank und Tabelle mit SQL erstellen

Datenbank und Tabelle mit SQL erstellen Datenbank und Tabelle mit SQL erstellen 1) Übung stat Mit dem folgenden Befehlen legt man die Datenbank stat an und in dieser die Tabelle data1 : CREATE DATABASE stat; USE stat; CREATE TABLE data1 ( `id`

Mehr

Abfragen (Queries, Subqueries)

Abfragen (Queries, Subqueries) Abfragen (Queries, Subqueries) Grundstruktur einer SQL-Abfrage (reine Projektion) SELECT [DISTINCT] {* Spaltenname [[AS] Aliasname ] Ausdruck} * ; Beispiele 1. Auswahl aller Spalten SELECT * ; 2. Auswahl

Mehr

Datenmanagement I SoSe 2006 Aufgabenblatt 4

Datenmanagement I SoSe 2006 Aufgabenblatt 4 Datenmanagement I SoSe 2006 Aufgabenblatt 4 June 11, 2009 Versuchen Sie, einige der Anfragen zu formulieren (ab Punkt 6), die im Tutorium stehen, das hier zu finden ist: http://wwwiti.cs.uni-magdeburg.de/iti_db/lehre/dm/tut/tutorium.html.

Mehr

Datenbank- und Informationssysteme. Lösungsvorschläge zu Übungsblatt 2. Sommersemester 1999. CREATE DOMAIN KennzeichenDomain AS VARCHAR(9);

Datenbank- und Informationssysteme. Lösungsvorschläge zu Übungsblatt 2. Sommersemester 1999. CREATE DOMAIN KennzeichenDomain AS VARCHAR(9); Institut für Angewandte Informatik AIFB und Formale Beschreibungsverfahren Universität Karlsruhe (TH) Prof. Dr. W. Stucky U. Schmidle Tel.: 0721 / 608-3812, 3509 Fax.: 0721 / 693717 e-mail: stucky schmidle

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

1 Hartmann Anna Cäcilienstr Köln (0221) Behrens-Hoffmeister Heidi Lindenweg Köln (0221)

1 Hartmann Anna Cäcilienstr Köln (0221) Behrens-Hoffmeister Heidi Lindenweg Köln (0221) Erstellen einer Mitarbeiter-Datenbank 1 Erstellen einer Mitarbeiter-Datenbank Arbeitsauftrag Ziel der Übung Erstellen von Datenbanken mit Hilfe von SQL-Abfragen Aufgabe (1.) Erstellen Sie eine neue Datenbank

Mehr

Einführung in die Programmierung WS 2009/10. Übungsblatt 7: Imperative Programmierung, Parameterübergabe

Einführung in die Programmierung WS 2009/10. Übungsblatt 7: Imperative Programmierung, Parameterübergabe Ludwig-Maximilians-Universität München München, 04.12.2009 Institut für Informatik Prof. Dr. Christian Böhm Annahita Oswald, Bianca Wackersreuther Einführung in die Programmierung WS 2009/10 Übungsblatt

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

Datenbanksysteme I. Aufgabe 1: Views und Temporäre Relationen. Lösungsvorschlag:

Datenbanksysteme I. Aufgabe 1: Views und Temporäre Relationen. Lösungsvorschlag: Universität Augsburg, Institut für Informatik Wintersemester 2010/2011 Prof. Dr. W. Kießling 10. Dez. 2010 Dr. A. Huhn, F. Wenzel, M. Endres Lösungsblatt 6 Aufgabe 1: Views und Temporäre Relationen Datenbanksysteme

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

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. Blatt Nr. 05 Übung zur Vorlesung Grundlagen: Datenbanken im WS16/17 Harald Lang, Linnea Passing (gdb@in.tum.de

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

Lambda Expressions in Java 8

Lambda Expressions in Java 8 Sie sind da Lambda Expressions in Java 8 Rolf Borst Lambda Expressions sind cool Aus dem Internet Stimmt das? Das total uncoole Beispiel Person nachname : String vorname : String alter : int plz : String

Mehr

Prozedurale Datenbank- Anwendungsprogrammierung

Prozedurale Datenbank- Anwendungsprogrammierung Idee: Erweiterung von SQL um Komponenten von prozeduralen Sprachen (Sequenz, bedingte Ausführung, Schleife) Bezeichnung: Prozedurale SQL-Erweiterung. In Oracle: PL/SQL, in Microsoft SQL Server: T-SQL.

Mehr

Übung PL/SQL Trigger Lösungen

Übung PL/SQL Trigger Lösungen Übung PL/SQL Trigger Lösungen 1) Gebe das aktuelle Datum aus. Wofür steht dual? Ändere das Datum für Deine aktuelle Session auf das Format Jahr (4 Stellen) Monat (2 Stellen) Tag (2 Stellen)[Leerzeichen]Stunde

Mehr

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004)

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004) Nachtrag: Farben Farbblindheit (Light und Bartlein 2004) 1 Vorgeschlagene Farbskalen (Light and Bartlein 2004) Farbkodierung metrisch skalierter Daten Unterscheide: 1. Sequential Data (ohne Betonung der

Mehr

dbis Praktikum DBS I SQL Teil 2

dbis Praktikum DBS I SQL Teil 2 SQL Teil 2 Übersicht Fortgeschrittene SQL-Konstrukte GROUP BY HAVING UNION / INTERSECT / EXCEPT SOME / ALL / ANY IN / EXISTS CREATE TABLE INSERT / UPDATE / DELETE 2 SELECT Syntax SELECT FROM [WHERE [GROUP

Mehr

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

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München Kapitel 4 Dynamisches SQL Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München 2008 Thomas Bernecker, Tobias Emrich unter Verwendung der Folien des Datenbankpraktikums aus dem Wintersemester

Mehr

JDBC (Stichworte) Udo Kelter

JDBC (Stichworte) Udo Kelter JDBC (Stichworte) Udo Kelter 19.12.2011 Zusammenfassung dieses Lehrmoduls JDBC (Java Database Connectivity) ist eine Schnittstelle, über die von Java-Programmen aus auf die Inhalte relationaler Datenbanken

Mehr

Kapitel 4 Dynamisches SQL

Kapitel 4 Dynamisches SQL Kapitel 4 Dynamisches SQL Flien zum Datenbankpraktikum Wintersemester 2010/11 LMU München 2008 Thmas Bernecker, Tbias Emrich unter Verwendung der Flien des Datenbankpraktikums aus dem Wintersemester 2007/08

Mehr