Datenbankanwendung. Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern. Wintersemester 2014/15.

Größe: px
Ab Seite anzeigen:

Download "Datenbankanwendung. Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern. Wintersemester 2014/15. smichel@cs.uni-kl.de"

Transkript

1 Datenbankanwendung Wintersemester 2014/15 Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern

2 Übersicht der (kommenden) Vorlesungen ˆ Embedded SQL (in Java und C++) ˆ Stored Procedures und User-Defined Functions ˆ Database Triggers Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 2 / 54

3 Wiederholung: JDBC: Connect und einfache Anfrage // r e g i s t r i e r e g e e i g n e t e n T r e i b e r ( h i e r f u e r P o s t g r e s q l ) C l a s s. forname ( org. p o s t g r e s q l. D r i v e r ) ; // e r z e u g e Verbindung z u r Datenbank Connection conn = DriverManager. g e t C o n n e c t i o n ( j d b c : p o s t g r e s q l : / / l o c a l h o s t / u n i v e r s i t y, username, password ) ; // e r z e u g e e i n e i n f a c h e s Statement Objekt Statement stmt = conn. c r e a t e S t a t e m e n t ( ) ; // mit e x e c u t e Query koennen nun d a r a u f Anfragen a u s g e f u e h r t werden // E r g e b n i s s e i n Form e i n e s R e s u l t S e t O b j e k t s R e s u l t S e t r s e t = stmt. e x e c u t e Q u e r y ( SELECT p. p e r s n r from p r o f e s s o r e n p ) ; Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 3 / 54

4 Wiederholung: JDBC: Connect und einfache Anfrage // d i e s e s b e s i t z t Metadaten ResultSetMetaData metadata = r s e t. getmetadata ( ) ; // welche A t t r i b u t e ( S p a l t e n ) b e s i t z e n d i e E r g e b n i s Tupel? i n t column count = metadata. getcolumncount ( ) ; f o r ( i n t i n d e x =1; index<=column count ; i n d e x++) { System. out. p r i n t l n ( S p a l t e +i n d e x+ h e i s s t + metadata. getcolumnname ( i n d e x ) ) ; } // i t e r i e r e nun u e b e r E r g e b n i s s e w h i l e ( r s e t. n e x t ( ) ) { System. out. p r i n t l n ( r s e t. g e t S t r i n g ( 1 ) ) ; } Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 4 / 54

5 Call-level-Interface (CLI) ˆ Unter Verwendung einer Bibliothek werden aus dem Anwendungsprogramm (Wirtssprache) Funktionen aufgerufen, die mit dem DBMS kommunizieren. ˆ JDBC ist ein Beispiel für ein CLI ˆ Im embedded SQL werden hingegen SQL Anweisungen direkt in der Wirtssprache benutzt. ˆ (Dennoch werden diese letztendlich durch Aufrufe von DBMS-spezifischen Bibliotheken realisiert) Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 5 / 54

6 Embedded SQL (ESQL) Idee ˆ Benutze SQL-Anweisungen direkt im Programmcode ˆ Syntax in Java: #s q l { <sql statement > } ; ˆ Syntax in C oder C++ EXEC SQL <sql statement >; Zum Beispiel: EXEC SQL SELECT vorname, nachname INTO : vorname, : nachname FROM m i t a r b e i t e r t a b e l l e WHERE pnr = : pnr ; Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 6 / 54

7 SQLJ SQLJ: Embedded SQL für Java ˆ Einbettung von SQL in Java ˆ Anweisungen der Form #s q l { <sql statement > } ; Zum Beispiel: #s q l {INSERT INTO emp ( ename, s a l ) VALUES ( ' Joe ', 43000) } ; Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 7 / 54

8 SQLJ SQLJ: Embedded SQL für Java Idee ˆ SQL Anweisungen werden direkt im Java Code benutzt (embedded) ˆ Ein Precompiler übersetzt diesen gemischten Code (in *.sqlj Dateien) in normalen Java Code (in *.java Dateien). Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 8 / 54

9 SQLJ SQLJ: Schritte der Übersetzung Quelle: Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 9 / 54

10 SQLJ SQLJ: Vor- und Nachteile im Vergleich zu JDBC Vorteile ˆ Einfacher (kompakter) Code ˆ Verwendung der gleichen Variablen in SQL und in Java Nachteile ˆ Erfordert extra Übersetzung in normales Java. Umsetzung/Unterstützung ˆ Wird von Oracle angeboten (im eigenen DBMS) ˆ Sonst kaum (nicht) anzutreffen Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 10 / 54

11 SQLJ Beispiel 1 import j a v a. s q l. * ; 2 3 / * * 4 This i s what you have to do i n SQLJ 5 * */ 6 p u b l i c c l a s s SimpleDemoSQLJ 7 { 8 //TO DO: make a main t h a t c a l l s t h i s 9 0 p u b l i c Address getemployeeaddress ( i n t empno ) 1 throws SQLException 2 { 3 Address addr ; 4 #s q l { SELECT o f f i c e a d d r INTO : addr FROM employees 5 WHERE empnumber = : empno } ; 6 r e t u r n addr ; 7 } Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 11 / 54

12 SQLJ Beispiel 8 9 p u b l i c Address u p d a t e A d d r e s s ( Address addr ) 0 throws SQLException 1 { 2 #s q l addr = { VALUES(UPDATE ADDRESS ( : addr ) ) } ; 3 r e t u r n addr ; 4 } 5 } ˆ Vergleichbarer Code in JDBC ist um einiges länger ˆ Siehe obige URL (Oracle) Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 12 / 54

13 Embedded SQL in C/C++ Embedded SQL in C/C++ ˆ Weit verbreitet, wird von vielen DBMS unterstützt ˆ Postgresql: ECPG compiler ˆ Oracle: Pro*C/C++ compiler Embedded SQL ist standardisiert. Dies gilt allerdings nicht für Spracherweiterungen wie Oracles PL/SQL oder Postgresqls PL/pgSQL. Microsoft hat mit LINQ (Language Integrated Query) einen zu embedded SQL ähnlichen Ansatz für das.net Framework entwickelt. Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 13 / 54

14 Embedded SQL in C/C++ Beispiel 1 #i n c l u d e <s t d i o. h> 2 3 EXEC SQL BEGIN DECLARE SECTION ; 4 i n t matrnr ; 5 c h a r name [ ] ; 6 i n t matrnrbound ; 7 EXEC SQL END DECLARE SECTION ; 8 9 i n t main ( ) 0 { 1 EXEC SQL CONNECT TO u n i x : p o s t g r e s q l : / / l o c a l h o s t / u n i v e r s i t y ; 2 3 // s e l e c t f o r s i n g l e r e s u l t items, o t h e r w i s e use c u r s o r s 4 EXEC SQL SELECT matrnr INTO : matrnr from s t u d e n t e n where name = ' F i c h t e ' ; 5 6 p r i n t f ( matrnr=%s \n, matrnr ) ; Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 14 / 54

15 Embedded SQL in C/C++ Beispiel (2) 7 // nun e i n e Anfrage, d i e mehrere E r g e b n i s s e l i e f e r t 8 9 matrnrbound = 27000; 0 1 EXEC SQL DECLARE mycursor CURSOR FOR 2 SELECT matrnr, name 3 FROM s t u d e n t e n 4 WHERE matrnr < : matrnrbound 5 ORDER BY s e m e s t e r ; 6 7 EXEC SQL OPEN mycursor ; 8 EXEC SQL WHENEVER NOT FOUND DO BREAK; 9 w h i l e ( 1 ) { 0 EXEC SQL FETCH mycursor INTO : matrnr, : name ; 1 p r i n t f ( % i \ t%s \n, matrnr, name ) ; 2 } 3 EXEC SQL CLOSE mycursor ; 4 EXEC SQL COMMIT; 5 EXEC SQL DISCONNECT ALL ; 6 r e t u r n 0 ; 7 } Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 15 / 54

16 Embedded SQL in C/C++ Embedded SQL in C/C++ ECPG ˆ ecpg-commands.html Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 16 / 54

17 Embedded SQL in C/C++ Übersetzen von embedded SQL Code Das Tool ecpg ist der Precompiler für Postgresqls embedded C. ˆ Eingabe ist eine Quellcode-Code in C mit eingebetteten SQL Befehlen. ˆ Ausgabe ist C-Code (Datei), der mittels der ECPG Bibliothek in der Lage ist mit der Postgresql Datenbank zu kommunizieren. Übersetzung von embedded SQL in reines C: ecpg test.c -o test_parsed.c Kombilieren des C-Codes: gcc test_parsed.c -o test -I /usr/include/postgresql/ -lecpg Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 17 / 54

18 Embedded SQL in C/C++ Übersetzter ECPG Code Nur zur Veranschaulichung! 1 / * P r o c e s s e d by ecpg ( ) */ 2 / * These i n c l u d e f i l e s a r e added by the p r e p r o c e s s o r */ 3 #i n c l u d e <e c p g l i b. h> 4 #i n c l u d e <e c p g e r r n o. h> 5 #i n c l u d e <s q l c a. h> 6 / * End o f a u t o m a t i c i n c l u d e s e c t i o n */ 7 8 #l i n e 1 t e s t. c 9 0 #i n c l u d e <s t d i o. h> 1 2 / * exec s q l b e g i n d e c l a r e s e c t i o n */ 3 4 #l i n e 6 t e s t. c 5 i n t matrnr ; 6 7 #l i n e 7 t e s t. c 8 char name [ 1024 ] ; Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 18 / 54

19 Embedded SQL in C/C++ Übersetzter ECPG Code (2) 9 #l i n e 8 t e s t. c 0 i n t matrnrbound ; 1 / * exec s q l end d e c l a r e s e c t i o n */ 2 #l i n e 9 t e s t. c 3 4 i n t main ( ) 5 { 6 { ECPGconnect ( L I N E, 0, u n i x : p o s t g r e s q l : / / l o c a l h o s t / u n i v e r s i t y, NULL, NULL, NULL, 0) ; } 7 #l i n e 14 t e s t. c 8 9 // as con1 USER s m i c h e l ; 0 //EXEC SQL CONNECT TO u n i x : p o s t g r e s q l : / / l o c a l h o s t / u n i v e r s i t y AS myconnection USER s m i c h e l ; 1 2 // s e l e c t f o r s i n g l e r e s u l t items, o t h e r w i s e use c u r s o r s 3 { ECPGdo( L I N E, 0, 1, NULL, 0, ECPGst normal, s e l e c t matrnr from s t u d e n t e n where name = ' F i c h t e ', ECPGt EOIT, 4 ECPGt int,&( matrnr ), ( long ) 1, ( long ) 1, s i z e o f ( i n t ), 5 ECPGt NO INDICATOR, NULL, 0L, 0L, 0L, ECPGt EORT) ; } Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 19 / 54

20 Embedded SQL in C/C++ Übersetzter ECPG Code (3) 6 #l i n e 19 t e s t. c 7 p r i n t f ( matrnr=%i \n, matrnr ) ; 8 9 // nun e i n e Anfrage, d i e mehrere E r g e b n i s s e z u r u e c k l i e f e r t 0 1 matrnrbound = 27000; 2 3 / * d e c l a r e mycursor c u r s o r f o r s e l e c t matrnr, name from s t u d e n t e n where matrnr < $1 o r d e r by s e m e s t e r */ 4 #l i n e 31 t e s t. c { ECPGdo( L I N E, 0, 1, NULL, 0, ECPGst normal, d e c l a r e mycursor c u r s o r f o r s e l e c t matrnr, name from s t u d e n t e n where matrnr < $1 o r d e r by s e m e s t e r, 8 ECPGt int,&( matrnrbound ), ( long ) 1, ( long ) 1, s i z e o f ( i n t ), 9 ECPGt NO INDICATOR, NULL, 0L, 0L, 0L, ECPGt EOIT, ECPGt EORT) ; } Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 20 / 54

21 Embedded SQL in C/C++ Übersetzter ECPG Code (4) 0 #l i n e 33 t e s t. c 1 / * e xec s q l whenever not found b r e ak ; */ 2 #l i n e 34 t e s t. c 3 4 w h i l e ( 1 ) { 5 { ECPGdo( L I N E, 0, 1, NULL, 0, ECPGst normal, f e t c h mycursor, ECPGt EOIT, 6 ECPGt int,&( matrnr ), ( long ) 1, ( long ) 1, s i z e o f ( i n t ), 7 ECPGt NO INDICATOR, NULL, 0L, 0L, 0L, 8 ECPGt char, ( name ), ( long ) 1024,( long ) 1, ( ) * s i z e o f ( char ), 9 ECPGt NO INDICATOR, NULL, 0L, 0L, 0L, ECPGt EORT) ; 0 #l i n e 36 t e s t. c 1 2 i f ( s q l c a. s q l c o d e == ECPG NOT FOUND) break ; } 3 #l i n e 36 t e s t. c 4 5 p r i n t f ( %i \ t%s \n, matrnr, name ) ; 6 } Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 21 / 54

22 Embedded SQL in C/C++ Übersetzter ECPG Code (5) 7 { ECPGdo( L I N E, 0, 1, NULL, 0, ECPGst normal, c l o s e mycursor, ECPGt EOIT, ECPGt EORT) ; } 8 #l i n e 40 t e s t. c 9 0 { ECPGtrans ( L I N E, NULL, commit ) ; } 1 #l i n e 41 t e s t. c 2 3 { ECPGdisconnect ( L I N E, ALL ) ; } 4 #l i n e 42 t e s t. c 5 6 r e t u r n 0 ; 7 } Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 22 / 54

23 Embedded SQL in C/C++ Aufbau einer Verbindung zur DB #i n c l u d e <s t d i o. h> i n t main ( ) { EXEC SQL CONNECT TO u n i x : p o s t g r e s q l : // l o c a l h o s t / u n i v e r s i t y ; //... EXEC SQL COMMIT; EXEC SQL DISCONNECT ALL ; r e t u r n 0 ; } Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 23 / 54

24 Embedded SQL in C/C++ Aufbau einer Verbindung zur DB (2) ˆ Es können auch mehrere Verbindungen aufgebaut werden und via Namen benutzt werden: EXEC SQL CONNECT TO u n i x : p o s t g r e s q l : // l o c a l h o s t / u n i v e r s i t y ; AS conn1 ; ˆ Weitere Parameter wie Login, Passwort, Port sind natürlich ebenfalls möglich Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 24 / 54

25 Embedded SQL in C/C++ Host-Variablen Die sogennanten Host-Variablen sind Variablen, die gemeinsam vom Programmcode und SQL Anweisungen benutzt werden können. Der Name der C/C++ Variablen wird in SQL mit einem Doppelpunkt als Präfix benutzt. Z.B. EXEC SQL INSERT INTO s o m e t a b l e VALUES ( : v1, ' foo ', : v2 ) ; Deklaration Host-Variablen müssen speziell deklariert werden: EXEC SQL BEGIN DECLARE SECTION ; i n t x =4; c h a r f o o [ 1 6 ], bar [ 1 6 ] ; EXEC SQL END DECLARE SECTION ; ecpg-variables.html Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 25 / 54

26 Embedded SQL in C/C++ Transaktionen ˆ Abschließen einer Transaktion EXEC SQL COMMIT ˆ Rollback der aktuellen Transaktion EXEC SQL ROLLBACK ˆ Ein- bzw. Abschalten des automatischen Commits EXEC SQL SET AUTOCOMMIT TO ON EXEC SQL SET AUTOCOMMIT TO OFF Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 26 / 54

27 Embedded SQL in C/C++ Arbeiten mit Cursorn Gibt eine Anweisung mehrere Zeilen zurück müssen Cursor benutzt werden. In JDBC-Terminologie ist ein ResultSet ein Cursor..... matrnrbound = 27000; EXEC SQL DECLARE mycursor CURSOR FOR SELECT matrnr, name FROM s t u d e n t e n WHERE matrnr < : matrnrbound ORDER BY s e m e s t e r ; ˆ Die Host-Variable matrnbound wird hier direkt in der SQL-Anweisung benutzt. ˆ Man könnte auch eine parametrisierte SQL Anweisung benutzten. Wie wurde diese Klasse in JDBC genannt? Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 27 / 54

28 Embedded SQL in C/C++ Arbeiten mit Cursorn (2) ˆ Der Cursor muss nun nur noch geöffnet werden ˆ Dann kann via FETCH auf die einzelnen Tupel bzw. Spalten zugegriffen werden. // c u r s o r w i r d g e o e f f n e t EXEC SQL OPEN mycursor ; // was s o l l geschehen wenn k e i n e E r g e b n i s s e g e l i e f e r t werden? EXEC SQL WHENEVER NOT FOUND DO BREAK; // s o l a n g e k e i n BREAK a u f g e r u f e n w i r d l a u f e u e b e r Z e i l e n w h i l e ( 1 ) { EXEC SQL FETCH mycursor INTO : matrnr, : name ; p r i n t f ( % i \ t%s \n, matrnr, name ) ; } // c u r s o r w i r d g e s c h l o s s e n EXEC SQL CLOSE mycursor ; Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 28 / 54

29 Embedded SQL in C/C++ Prepared-Statements Ähnlich zu JDBC können wir auch in embedded SQL Prepared-Statements benutzen. EXEC SQL PREPARE stmt1 FROM SELECT o i d, p g d a t a b a s e WHERE o i d =? ; datname FROM Bei der (bzw. vor der) Ausführung müssen dann die freien Parameter gesetzt werden. Zudem wird erst jetzt angegeben in welchen Host-Variablen die Attribute des Ergebnis-Tupels gespeichert werden soll. EXEC SQL EXECUTE stmt1 INTO : dboid, : dbname USING 1 ; Wenn das Prepared-Statement nicht mehr gebraucht wird: EXEC SQL DEALLOCATE PREPARE name ; Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 29 / 54

30 Embedded SQL in C/C++ Prepared-Statements und Cursor Hier wird ein Prepared-Statement erzeugt und dann ein Cursor darüber definiert: EXEC SQL PREPARE stmt1 FROM SELECT o i d, datname FROM p g d a t a b a s e WHERE o i d >? ; EXEC SQL DECLARE f o o b a r CURSOR FOR stmt1 ; // wenn Ende e r r e i c h t i s t, m i t t e l s BREAK aus While S c h l e i f e a u s s t e i g e n EXEC SQL WHENEVER NOT FOUND DO BREAK; EXEC SQL OPEN f o o b a r USING ;... w h i l e ( 1 ) { EXEC SQL FETCH NEXT FROM f o o b a r INTO : dboid, : dbname ;... } EXEC SQL CLOSE f o o b a r ; Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 30 / 54

31 Embedded SQL in C/C++ Allgemein: Prepared-Statements, Static vs. Dynamic SQL Übersetzung von Anfragen im DBMS ˆ Tritt eine Anfrage zum ersten Mal auf, muss sie übersetzt werden (compiled). ˆ D.h. Syntaxprüfung, Prüfung von Rechten, Anfrageoptimierung, Code-Generierung, etc. Wiederverwendung von kompilierten Anfragen ˆ Sind Anfragen parametrisiert, wie im Falle von Prepared-Statements, so kann das DBMS den bereits erzeugten Plan wiederverwenden. ˆ Im Vergleich zu nicht parametrisierten Statements, fallen hier die Kosten für die Übersetzung nur ein Mal an. Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 31 / 54

32 Embedded SQL in C/C++ Allgemein: Prepared-Statements, Static vs. Dynamic SQL Wiederverwendung von kompilierten Anfragen ˆ DBMS prüft bei Eintreffen einer Anfrage ob Plan bereits existiert. ˆ Dazu werden Pläne in Cache gehalten ( Ersetzungsstrategien) Neu-Kompilierung bestehender Pläne Falls sich Eigenschaften der DB ändern die essentiell für Plangenerierung sind. Zum Beispiel: ˆ Indexe werden hinzugefügt oder gelöscht. ˆ Sehr viele Änderungen an Daten der relevanten Tabellen ˆ Explizite Anweisungen neu zu kompilieren, bzw. ˆ neue Statistiken verfügbar Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 32 / 54

33 Embedded SQL in C/C++ Andere CLIs für Postgresql Für C++: libpqxx ˆ Für Ruby: pg ˆ require 'pg' conn = PG::Connection.open(:host => 'localhost', :dbname => 'university', :user => 'username', :password => 'my password') res = conn.exec("select name from studenten") res.each do row puts row['name'] end Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 33 / 54

34 Stored Procedures/UDFs Stored Procedures / User-Defined Functions Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 34 / 54

35 Stored Procedures/UDFs Stored Procedures/UDFs Bislang: Kommunikation mit DBMS via Anwendungsprogrammen: Einzelne Statements, Verarbeitung in Wirtssprache. Manchmal ist es aber sinnvoll, Teile der Anwendung direkt im DBMS auszuführen und nicht via einzelnen SQL Statements. Vorteile ˆ Daten müssen nicht erst auf dem DBMS zur Anwendung gebracht werden (und umgekehrt) ˆ Höhere Performanz ˆ Code kann wiederverwendet werden (zwischen Anwendungen) Nachteile ˆ Etwas aufwendiger zu erstellen. ˆ Debugging schwieriger. Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 35 / 54

36 Stored Procedures/UDFs SQL vs. SQL/PSM vs. PL/SQL bzw. PL/pgSQL SQL ˆ Standard Query Language für Datenbanksysteme. ˆ SQL Anweisungen können via Anwendungsprogrammierung (JDBC oder Embedded SQL) an DB geschickt werden. PSM ˆ Persistent, Stored Modules (PSM) ˆ Im SQL:2003 Standard definiert. Erlaubt es prozeduralen Code direkt innerhalb der DB zu schreiben. PL/SQL bzw. PL/pgSQL ˆ Procedural Language/(PostgreSQL) Structured Query Language ˆ Prozedurale Sprache, benutzt in Oracle bzw. Postgresql ˆ PL/SQL bzw. PL/pgSQL erlauben diese Anwendungslogik als Prozedur innerhalb des DBMS zu definieren. Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 36 / 54

37 Stored Procedures/UDFs Vorteile von Stored Procedures / User Defined Functions ˆ Ausführungspläne können vorübersetzt werden, sind wiederverwendbar ˆ Anzahl der Zugriffe des Anwendungsprogramms auf das DBMS werden reduziert ˆ Prozeduren sind als gemeinsamer Code für verschiedene Anwendungsprogramme nutzbar ˆ Es wird ein höherer Isolationsgrad der Anwendung von dem DBMS erreicht. Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 37 / 54

38 Stored Procedures/UDFs Beispiel CREATE FUNCTION g e t S t u d e n t ( m a t r n r i n t ) RETURNS i n t AS $ $ DECLARE qty i n t ; BEGIN SELECT COUNT( * ) INTO qty FROM s t u d e n t e n WHERE s t u d e n t e n. matrnr = m a t r n r ; RETURN qty ; END; $ $ LANGUAGE p l p g s q l ; select * from getstudent(26120); Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 38 / 54

39 Stored Procedures/UDFs Unterschied Stored Procedures und UDFs Generel ˆ UDF = user-defined function ˆ Stored procedure muss explizit mit CALL aufgerufen werden (SQL EXEC CALL name)) ˆ UDF kann direkt in SQL ohne CALL benutzt werden In Postgresql ˆ In Postgres (9.3) gibt es allerdings keinen Unterschied zwischen stored procedures und UDFs ˆ UDF wird aufgerufen in SELECT statements, z.b. select from myfunction( ); Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 39 / 54

40 Stored Procedures/UDFs UDFs in Postgresql Verschiedene Arten von UDFs ˆ Query language Funktionen (SQL) ˆ Procedural language Funktionen (PL/pgSQL, Perl,...) ˆ Interne Funktionen ˆ C Funktionen ˆ PL/Java erlaubt auch die Nutzung von Java ( Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 40 / 54

41 Stored Procedures/UDFs LANGUAGE SQL Query Language (SQL) Funktionen Mit Hilfe des Schlüsselworts LANGUAGE wird angegeben welche Sprache zur Definition dieser Funktion benutzt wurde, hier SQL. ˆ Diese Funktion hat den Rückgabewert void ˆ Sie ist definiert als einfaches SQL delete Statement und besitzt auch keine Eingabeparameter. CREATE FUNCTION clean emp ( ) RETURNS v o i d AS $ $ DELETE FROM emp WHERE s a l a r y < 0 ; $ $ LANGUAGE SQL ; Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 41 / 54

42 Stored Procedures/UDFs LANGUAGE SQL Query Language Funktionen (2) ˆ Diese Funktion hat als Parameter ein Tupel der Relation emp, die neben Name des Mitarbeiters, dessen Gehalt (Salary), Alter und Raum (Als Point-Objekt) enthält. ˆ Der Rückgabewert ist Typ numeric INSERT INTO emp VALUES ( ' B i l l ', 4200, 45, ' ( 2, 1 ) ' ) ; CREATE FUNCTION d o u b l e s a l a r y (emp) RETURNS numeric AS $ $ SELECT $1. s a l a r y * 2 AS s a l a r y ; $ $ LANGUAGE SQL ; Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 42 / 54

43 Stored Procedures/UDFs LANGUAGE SQL Query Language Funktionen (3) CREATE FUNCTION addtoroom ( p r o f e s s o r e n ) RETURNS i n t AS $ $ s e l e c t $1. raum+1 ; $ $ LANGUAGE SQL Anwendung/Aufruf: select name, addtoroom(professoren.*) from professoren; Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 43 / 54

44 Stored Procedures/UDFs LANGUAGE SQL Query Language Funktionen (4) Hier wird eine Funktion definiert, die ein Dummy-Tupel für einen neuen Professor erzeugt (gemäß der Relation professoren): CREATE FUNCTION n e u e r P r o f ( ) RETURNS p r o f e s s o r e n AS $ $ SELECT 1 as p e r s n r, t e x t ' Unbekannt ' AS name, t e x t ' C3 ' as rang, 123 as raum ; $ $ LANGUAGE SQL ; Anwendung zum Beispiel: insert into professoren (select * from neuerprof()); Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 44 / 54

45 Stored Procedures/UDFs LANGUAGE SQL Query Language Funktionen (5) Diese Funktion hat mehrere Eingaben und mehrere Ausgaben: CREATE FUNCTION sum n product ( x i n t, y i n t, OUT sum i n t, OUT product i n t ) AS $ $ SELECT $1 + $2, $1 * $2 $ $ LANGUAGE SQL ; Beispielaufruf: SELECT * FROM sum_n_product(11,42); sum product (1 row) Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 45 / 54

46 Stored Procedures/UDFs LANGUAGE SQL Query Language Funktionen (6) Ruckgabewerte: Einzelne Zeilen vs. Tabellen CREATE FUNCTION a l l e P r o f s ( ) RETURNS p r o f e s s o r e n as $ $ s e l e c t * from p r o f e s s o r e n ; $ $ LANGUAGE SQL ; Beispielaufruf: select * from alleprofs(); persnr name rang raum Sokrates C4 226 (1 row) Was macht select alleprofs();? Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 46 / 54

47 Stored Procedures/UDFs LANGUAGE SQL Tabellen als Rückgabewerte: Table Functions CREATE FUNCTION g e t P r o f s ( i n t ) RETURNS TABLE( p e r s n r i n t ) AS $ $ SELECT p e r s n r from p r o f e s s o r e n p WHERE p. p e r s n r < $1 ; $ $ LANGUAGE SQL ; select * from getprofs(2130); persnr (3 rows) Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 47 / 54

48 Stored Procedures/UDFs LANGAGE PL/pgSQL PL/pgSQL Anstelle von SQL in den vorherigen Beispielen wird nun PL/pgSQL betrachtet. [ <<l a b e l >> ] [ DECLARE d e c l a r a t i o n s ] BEGIN s t a t e m e n t s END [ l a b e l ] ; Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 48 / 54

49 Stored Procedures/UDFs LANGAGE PL/pgSQL PL/pgSQL Anstelle von SQL in den vorherigen Beispielen wird nun PL/pgSQL betrachtet. CREATE FUNCTION s a l e s t a x ( s u b t o t a l r e a l ) RETURNS r e a l AS $ $ BEGIN RETURN s u b t o t a l * ; END; $ $ LANGUAGE p l p g s q l ; Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 49 / 54

50 Stored Procedures/UDFs LANGAGE PL/pgSQL PL/pgSQL CREATE FUNCTION c o n c a t s e l e c t e d f i e l d s ( i n t sometablename ) RETURNS t e x t AS $ $ BEGIN RETURN i n t. f 1 i n t. f 3 i n t. f 5 i n t. f 7 ; END; $ $ LANGUAGE p l p g s q l ; Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 50 / 54

51 Stored Procedures/UDFs LANGAGE PL/pgSQL PL/pgSQL Funktion mit zwei Eingabeparametern und zwei Ausgabeparametern: CREATE FUNCTION sum n product ( x i n t, y i n t, OUT sum i n t, OUT prod i n t ) AS $ $ BEGIN sum := x + y ; prod := x * y ; END; $ $ LANGUAGE p l p g s q l ; Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 51 / 54

52 Stored Procedures/UDFs LANGAGE PL/pgSQL PL/pgSQL: SELECT INTO SQL Anfragen, die nur eine Zeile zurück liefern können direkt in Variablen eingelesen werden, z.b. SELECT * INTO myrec FROM emp WHERE empname = myname ; Falls mehrere Ergebnisse geliefert werden wird die erste Zeile benutzt. Durch die Angabe von STRICT, also SELECT * INTO STRICT myrec FROM emp WHERE empname = myname ; wird darauf geachtet, dass es nur genau ein Ergebnis gibt (ansonsten wird eine Exception geworfen). Siehe EXECUTE für dynamische Anfragen und PERFORM für Anfragen ohne Eregebnis zu berücksitigen: Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 52 / 54

53 Stored Procedures/UDFs LANGAGE PL/pgSQL PL/pgSQL: Kontrollstrukturen PL/pgSQL bietet die übliche Auswahl and Kontrollstrukturen wie IF-Statements und Schleifen (LOOP WHILE, FOR), EXIT (=break), CONTINUE LOOP IF END IF ; END LOOP; count > 0 THEN EXIT ; Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 53 / 54

54 Stored Procedures/UDFs LANGAGE PL/pgSQL PL/pgSQL: Kontrollstrukturen und SQL Anfragen Über Anfrageergebnisse iterieren CREATE OR REPLACE FUNCTION t e s t i t ( ) RETURNS i n t as $ $ DECLARE myprofs RECORD; myint i n t = 0 ; BEGIN FOR myprofs i n SELECT * FROM p r o f e s s o r e n WHERE p e r s n r <2130 LOOP myint = myprofs. p e r s n r + myint ; END LOOP; r e t u r n myint ; END; $ $ LANGUAGE p l p g s q l ; Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 54 / 54

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

Gesicherte Prozeduren

Gesicherte Prozeduren Gesicherte Prozeduren Wenn eine Anwendung auf einer Client-Maschine läuft, wird normalerweise jede SQL-Anweisung einzeln vom Client an den Server gesandt, und jedes Ergebnistupel wird einzeln zurückgeliefert.

Mehr

2. Datenbank-Programmierung

2. Datenbank-Programmierung 2. Datenbank-Programmierung SQL ist eingeschränkt bezüglich der algorithmischen Mächtigkeit, z.b. Berechnung einer transitiven Hülle ist in Standard-SQL nicht möglich. Die Einschränkung ist von Bedeutung

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

3. Stored Procedures und PL/SQL

3. Stored Procedures und PL/SQL 3. Stored Procedures und PL/SQL Wenn eine Anwendung auf einer Client-Maschine läuft, wird normalerweise jede SQL-Anweisung einzeln vom Client an den Server gesandt, und jedes Ergebnistupel wird einzeln

Mehr

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

Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum: 11.09.2009 Hochschule Darmstadt DATENBANKEN Fachbereich Informatik Praktikum 3 Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum: 11.09.2009 PL/SQL Programmierung Anwendung des Cursor Konzepts und Stored Procedures Und Trigger

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

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

Universität Stuttgart Abteilung Anwendersoftware 01.07.2002. - Steht für Embedded SQL in Java. - Java-Methoden als SQL Stored-Procedures

Universität Stuttgart Abteilung Anwendersoftware 01.07.2002. - Steht für Embedded SQL in Java. - Java-Methoden als SQL Stored-Procedures SQLJ Basics Universität Stuttgart Abteilung Anwendersoftware 01.07.2002 Was ist SQLJ? SQLJ Part 0: - Steht für Embedded SQL in Java SQLJ Part 1: - Java-Methoden als SQL Stored-Procedures SQLJ Part 2: -

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

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

SQL (Structured Query Language) Schemata Datentypen

SQL (Structured Query Language) Schemata Datentypen 2 SQL Sprachelemente Grundlegende Sprachelemente von SQL. 2.1 Übersicht Themen des Kapitels SQL Sprachelemente Themen des Kapitels SQL (Structured Query Language) Schemata Datentypen Im Kapitel SQL Sprachelemente

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

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

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

Folgendes PL/SQL Codefragment zeigt das grundlegende Statement für diesen Test: Java. http://www.trivadis.com/images/javaperf_tcm16-7133.

Folgendes PL/SQL Codefragment zeigt das grundlegende Statement für diesen Test: Java. http://www.trivadis.com/images/javaperf_tcm16-7133. Page 1 of 7 Betrifft: Java oder PL/SQL? Art der Info: Technische Background Info Autor: Guido Schmutz (guido.schmutz@trivadis.com) Quelle: Aus unserer Schulungs- und Beratungstätigkeit Mit Oracle8.1 besteht

Mehr

Oracle 12c: Neuerungen in PL/SQL. Roman Pyro DOAG 2014 Konferenz

Oracle 12c: Neuerungen in PL/SQL. Roman Pyro DOAG 2014 Konferenz Oracle 12c: Neuerungen in PL/SQL Roman Pyro DOAG 2014 Konferenz Herrmann & Lenz Services GmbH Herrmann & Lenz Solutions GmbH Erfolgreich seit 1996 am Markt Firmensitz: Burscheid (bei Leverkusen) Beratung,

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

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

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

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

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick...2 2.Parameterübergabe... php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick...2 2.Parameterübergabe...7 3.Zugriff auf mysql Daten...11 Verteilte Systeme: php.sxw Prof.

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

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

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

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Suche schlecht beschriftete Bilder mit Eigenen Abfragen Suche schlecht beschriftete Bilder mit Eigenen Abfragen Ist die Bilderdatenbank über einen längeren Zeitraum in Benutzung, so steigt die Wahrscheinlichkeit für schlecht beschriftete Bilder 1. Insbesondere

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

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

Informatik 12 Datenbanken SQL-Einführung

Informatik 12 Datenbanken SQL-Einführung Informatik 12 Datenbanken SQL-Einführung Gierhardt Vorbemerkungen Bisher haben wir Datenbanken nur über einzelne Tabellen kennen gelernt. Stehen mehrere Tabellen in gewissen Beziehungen zur Beschreibung

Mehr

Übung 7 DBMS-FUNKTIONALITÄTEN UND DATENIMPORT

Übung 7 DBMS-FUNKTIONALITÄTEN UND DATENIMPORT Übung 7 DBMS-FUNKTIONALITÄTEN UND DATENIMPORT 1 Metadaten a) Wozu werden Metadaten im Umfeld von DBMS benötigt? b) Nennen Sie mindestens zwei weitere Anwendungsfelder, in denen Metadaten zum Einsatz kommen.

Mehr

Whitepaper. Produkt: combit Relationship Manager. Datensatzhistorie mit dem SQL Server 2000 und 2005. combit GmbH Untere Laube 30 78462 Konstanz

Whitepaper. Produkt: combit Relationship Manager. Datensatzhistorie mit dem SQL Server 2000 und 2005. combit GmbH Untere Laube 30 78462 Konstanz combit GmbH Untere Laube 30 78462 Konstanz Whitepaper Produkt: combit Relationship Manager Datensatzhistorie mit dem SQL Server 2000 und 2005 Datensatzhistorie mit dem SQL Server 2000 und 2005-2 - Inhalt

Mehr

Übungsblatt 8- Lösungsvorschlag

Übungsblatt 8- Lösungsvorschlag Universität Innsbruck - Institut für Informatik Prof. Günther Specht, R.Binna, N.Krismer, M. Tschuggnall 30. November 2012 Proseminar Datenbanksysteme Übungsblatt 8- Lösungsvorschlag Aufgabe 1 (Trigger)

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

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin PhpMyAdmin = grafsches Tool zur Verwaltung von MySQL-Datenbanken Datenbanken erzeugen und löschen Tabellen und Spalten einfügen,

Mehr

Universität Duisburg-Essen Informationssysteme Prof. Dr.-Ing. N. Fuhr. Praktikum Datenbanken / DB2 Woche 8: Trigger, SQL-PL

Universität Duisburg-Essen Informationssysteme Prof. Dr.-Ing. N. Fuhr. Praktikum Datenbanken / DB2 Woche 8: Trigger, SQL-PL Betreuer: Sascha Kriewel, Tobias Tuttas Raum: LF 230 Bearbeitung: 26., 27. und 29. Juni 2006 Datum Team (Account) Vorbereitung Präsenz Aktuelle Informationen, Ansprechpartner und Material unter: http://www.is.inf.uni-due.de/courses/dbp_ss07/index.html

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

E-Commerce: IT-Werkzeuge. Web-Programmierung. Kapitel 6: Datenbankabfragen mit SQL und PHP. Stand: 24.11.2014. Übung WS 2014/2015

E-Commerce: IT-Werkzeuge. Web-Programmierung. Kapitel 6: Datenbankabfragen mit SQL und PHP. Stand: 24.11.2014. Übung WS 2014/2015 Übung WS 2014/2015 E-Commerce: IT-Werkzeuge Web-Programmierung Kapitel 6: Datenbankabfragen mit SQL und PHP Stand: 24.11.2014 Benedikt Schumm M.Sc. Lehrstuhl für ABWL und Wirtschaftsinformatik Katholische

Mehr

OP-LOG www.op-log.de

OP-LOG www.op-log.de Verwendung von Microsoft SQL Server, Seite 1/18 OP-LOG www.op-log.de Anleitung: Verwendung von Microsoft SQL Server 2005 Stand Mai 2010 1 Ich-lese-keine-Anleitungen 'Verwendung von Microsoft SQL Server

Mehr

Qt-Projekte mit Visual Studio 2005

Qt-Projekte mit Visual Studio 2005 Qt-Projekte mit Visual Studio 2005 Benötigte Programme: Visual Studio 2005 Vollversion, Microsoft Qt 4 Open Source s. Qt 4-Installationsanleitung Tabelle 1: Benötigte Programme für die Qt-Programmierung

Mehr

Java: Vererbung. Teil 3: super() www.informatikzentrale.de

Java: Vererbung. Teil 3: super() www.informatikzentrale.de Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und

Mehr

How to install freesshd

How to install freesshd Enthaltene Funktionen - Installation - Benutzer anlegen - Verbindung testen How to install freesshd 1. Installation von freesshd - Falls noch nicht vorhanden, können Sie das Freeware Programm unter folgendem

Mehr

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

Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 27. Nov. 2006 M. Endres, A. Huhn, T. Preisinger Lösungsblatt 5 Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 27. Nov. 2006 M. Endres, A. Huhn, T. Preisinger Lösungsblatt 5 Aufgabe 1: Projektion Datenbanksysteme I π A1,...,A n (π B1,...,B

Mehr

Kompilieren und Linken

Kompilieren und Linken Kapitel 2 Kompilieren und Linken Bevor wir uns auf C++ selbst stürzen, brauchen wir einiges Vorgeplänkel, wie man komfortabel ein größeres C++- kompilieren kann. Mit Java stellt sich der Kompiliervorgang

Mehr

Professionelle Seminare im Bereich MS-Office

Professionelle Seminare im Bereich MS-Office Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion

Mehr

cs241: Datenbanken mit Übungen HS 2011

cs241: Datenbanken mit Übungen HS 2011 UNIVERSITÄT BASEL Prof. Dr. Heiko Schuldt MSc. Nenad Stojnić BSc. Ivan Giangreco BSc. Florian Lindörfer cs241: Datenbanken mit Übungen HS 2011 Übung 5 Abgabe bis: 4.11.2011 Hinweise: Modalitäten der Abgabe:

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

1 Vom Problem zum Programm

1 Vom Problem zum Programm Hintergrundinformationen zur Vorlesung GRUNDLAGEN DER INFORMATIK I Studiengang Elektrotechnik WS 02/03 AG Betriebssysteme FB3 Kirsten Berkenkötter 1 Vom Problem zum Programm Aufgabenstellung analysieren

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

Datumsangaben, enthält mindestens Jahr, Monat, Tag

Datumsangaben, enthält mindestens Jahr, Monat, Tag Datenbanken mit SQL Informatik - Sprenger Häufig wird mit Tabellenkalkulationen gearbeitet, obwohl der Einsatz von Datenbanken sinnvoller ist. Tabellenkalkulationen wie Microsoft Excel oder LibreOffice

Mehr

Java Kurs für Anfänger Einheit 5 Methoden

Java Kurs für Anfänger Einheit 5 Methoden Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden

Mehr

Unterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur

Unterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur Unterprogramme Unterprogramme sind abgekapselte Programmfragmente, welche es erlauben, bestimmte Aufgaben in wiederverwendbarer Art umzusetzen. Man unterscheidet zwischen Unterprogrammen mit Rückgabewert

Mehr

7. Übung - Datenbanken

7. Übung - Datenbanken 7. Übung - Datenbanken Informatik I für Verkehrsingenieure Aufgaben inkl. Beispiellösungen 1. Aufgabe: DBS a Was ist die Kernaufgabe von Datenbanksystemen? b Beschreiben Sie kurz die Abstraktionsebenen

Mehr

Vorkurs C++ Programmierung

Vorkurs C++ Programmierung Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:

Mehr

Datenbanken für Online Untersuchungen

Datenbanken für Online Untersuchungen Datenbanken für Online Untersuchungen Im vorliegenden Text wird die Verwendung einer MySQL Datenbank für Online Untersuchungen beschrieben. Es wird davon ausgegangen, dass die Untersuchung aus mehreren

Mehr

M. Graefenhan 2000-12-07. Übungen zu C. Blatt 3. Musterlösung

M. Graefenhan 2000-12-07. Übungen zu C. Blatt 3. Musterlösung M. Graefenhan 2000-12-07 Aufgabe Lösungsweg Übungen zu C Blatt 3 Musterlösung Schreiben Sie ein Programm, das die Häufigkeit von Zeichen in einem eingelesenen String feststellt. Benutzen Sie dazu ein zweidimensionales

Mehr

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten Was sind Berechtigungen? Unter Berechtigungen werden ganz allgemein die Zugriffsrechte auf Dateien und Verzeichnisse (Ordner) verstanden.

Mehr

mit Musterlösungen Prof. Dr. Gerd Stumme, Dipl.-Inform. Christoph Schmitz 11. Juni 2007

mit Musterlösungen Prof. Dr. Gerd Stumme, Dipl.-Inform. Christoph Schmitz 11. Juni 2007 6. Übung zur Vorlesung Datenbanken im Sommersemester 2007 mit Musterlösungen Prof. Dr. Gerd Stumme, Dipl.-Inform. Christoph Schmitz 11. Juni 2007 Aufgabe 1: Rekursion Betrachten Sie die folgende Tabelle

Mehr

DLLs (dynamic loaded libraries) mit MingW erstellen

DLLs (dynamic loaded libraries) mit MingW erstellen DLLs (dynamic loaded libraries) mit MingW erstellen Autor: Michel D. Schmid Datum: April 2, 2009 Contents 1 Einführung 1 1.1 Open-Source Tools.......................................... 1 2 Beispiel 1:

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. 7 Übung zur Vorlesung Grundlagen: Datenbanken im WS13/14 Henrik Mühe (muehe@in.tum.de) http://www-db.in.tum.de/teaching/ws1314/dbsys/exercises/

Mehr

Funktion rsync mit den actinas Cube Systemen.

Funktion rsync mit den actinas Cube Systemen. Funktion rsync mit den actinas Cube Systemen. Unternehmen haben oft keine ausgebildete IT Abteilung. Trotzdem oder gerade deshalb sind Backups so wichtig, denn das ist im Falle eines Datenverlustes, Ihre

Mehr

Excel Funktionen durch eigene Funktionen erweitern.

Excel Funktionen durch eigene Funktionen erweitern. Excel Funktionen durch eigene Funktionen erweitern. Excel bietet eine große Anzahl an Funktionen für viele Anwendungsbereiche an. Doch es kommt hin und wieder vor, dass man die eine oder andere Funktion

Mehr

ORM & OLAP. Object-oriented Enterprise Application Programming Model for In-Memory Databases. Sebastian Oergel

ORM & OLAP. Object-oriented Enterprise Application Programming Model for In-Memory Databases. Sebastian Oergel ORM & OLAP Object-oriented Enterprise Application Programming Model for In-Memory Databases Sebastian Oergel Probleme 2 Datenbanken sind elementar für Business-Anwendungen Gängiges Datenbankparadigma:

Mehr

Aktualisierung zum Buch Windows und PostgreSQL

Aktualisierung zum Buch Windows und PostgreSQL Aktualisierung zum Buch Windows und PostgreSQL von Stefan Kunick Stand 16.12.2009 Seite 1 Vorwort: In der Version 8.4 hat sich nun einiges geändert. Auf einige Punkte gehe ich in diesem PDF-Dokument ein

Mehr

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER Inhalt 1 Einleitung... 1 2 Einrichtung der Aufgabe für die automatische Sicherung... 2 2.1 Die Aufgabenplanung... 2 2.2 Der erste Testlauf... 9 3 Problembehebung...

Mehr

DB2 Kurzeinführung (Windows)

DB2 Kurzeinführung (Windows) DB2 Kurzeinführung (Windows) Michaelsen c 25. Mai 2010 1 1 Komponenten von DB2 DB2 bietet zahlreiche graphische Oberflächen für die Verwaltung der verschiedenen Komponenten und Anwendungen. Die wichtigsten

Mehr

Datenbanken & Informationssysteme Übungen Teil 1

Datenbanken & Informationssysteme Übungen Teil 1 Programmierung von Datenbankzugriffen 1. Daten lesen mit JDBC Schreiben Sie eine Java-Anwendung, die die Tabelle Books in der Datenbank azamon ausgibt. Verwenden Sie dabei die SQL-Anweisung select * from

Mehr

Oracle Forms. Aufbau und Bestandteile von Formularen. Erstellen eines neuen Blocks. Starten von Oracle Forms

Oracle Forms. Aufbau und Bestandteile von Formularen. Erstellen eines neuen Blocks. Starten von Oracle Forms Oracle Forms Oracle Forms ist eine Applikation für den Entwurf und die Erstellung Forms-basierender Anwendungen. Diese Forms umfassen Dateneingabe-Formulare Datenabfrage-Formulare Browser-Formulare Oracle

Mehr

Hinweise zur Installation von MySQL

Hinweise zur Installation von MySQL Hinweise zur Installation von MySQL Im Folgenden werden einige Hinweise gegeben, die die Einrichtung einer MySQL-Lernumgebung am eigenen Windows-Rechner erleichtern sollen. Der Text ist vor allem für diejenigen

Mehr

Dokumentation zur Anlage eines JDBC Senders

Dokumentation zur Anlage eines JDBC Senders Dokumentation zur Anlage eines JDBC Senders Mithilfe des JDBC Senders ist es möglich auf eine Datenbank zuzugreifen und mit reiner Query Datensätze auszulesen. Diese können anschließend beispielsweise

Mehr

Projektbericht Gruppe 12. Datenbanksysteme WS 05/ 06. Gruppe 12. Martin Tintel Tatjana Triebl. Seite 1 von 11

Projektbericht Gruppe 12. Datenbanksysteme WS 05/ 06. Gruppe 12. Martin Tintel Tatjana Triebl. Seite 1 von 11 Datenbanksysteme WS 05/ 06 Gruppe 12 Martin Tintel Tatjana Triebl Seite 1 von 11 Inhaltsverzeichnis Inhaltsverzeichnis... 2 1. Einleitung... 3 2. Datenbanken... 4 2.1. Oracle... 4 2.2. MySQL... 5 2.3 MS

Mehr

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Objektorientierte Programmierung für Anfänger am Beispiel PHP Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten

Mehr

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java: Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen

Mehr

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: VBA Programmierung mit Excel Schleifen 1/6 Erweiterung der Aufgabe Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: Es müssen also 11 (B L) x 35 = 385 Zellen berücksichtigt

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

Datenbank-Verschlüsselung mit DbDefence und Webanwendungen.

Datenbank-Verschlüsselung mit DbDefence und Webanwendungen. Datenbank-Verschlüsselung mit DbDefence und Webanwendungen. In diesem Artikel werden wir Ihnen zeigen, wie Sie eine Datenbank verschlüsseln können, um den Zugriff einzuschränken, aber trotzdem noch eine

Mehr

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI Universität Osnabrück Drei-Schichten-Architektur 3 - Objektorientierte Programmierung in Java Vorlesung 6: 3-Schichten-Architektur Fachkonzept - GUI SS 2005 Prof. Dr. F.M. Thiesing, FH Dortmund Ein großer

Mehr

SEMINAR Modifikation für die Nutzung des Community Builders

SEMINAR Modifikation für die Nutzung des Community Builders 20.04.2010 SEMINAR Modifikation für die Nutzung des Community Builders Step by Step Anleitung ecktion SEMINAR Modifikation für die Nutzung des Community Builders Step by Step Anleitung Bevor Sie loslegen

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen

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

Powerful PL/SQL: Collections indizieren mit VARCHAR2- Indizes ein Praxisbeispiel

Powerful PL/SQL: Collections indizieren mit VARCHAR2- Indizes ein Praxisbeispiel Powerful PL/SQL: Collections indizieren mit VARCHAR2- Indizes ein Praxisbeispiel Schlagworte Autor: Klaus Friemelt, MT AG dynamisches BULK SQL, VARCHAR2-indizierte PL/SQL-Tabellen Einleitung Mit den letzten

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

4D Server v12 64-bit Version BETA VERSION

4D Server v12 64-bit Version BETA VERSION 4D Server v12 64-bit Version BETA VERSION 4D Server v12 unterstützt jetzt das Windows 64-bit Betriebssystem. Hauptvorteil der 64-bit Technologie ist die rundum verbesserte Performance der Anwendungen und

Mehr

Fakultät für Informatik & Wirtschaftsinformatik DB & IS II - SS 2015. Metadaten

Fakultät für Informatik & Wirtschaftsinformatik DB & IS II - SS 2015. Metadaten Fakultät für Informatik & Wirtschaftsinformatik Metadaten Metadaten sind Daten über Daten Data-Dictionary speichert Informationen über die Struktur der Daten, z.b.: Tabellen, Spalten, Datentypen Primär-

Mehr

Lehrveranstaltung Grundlagen von Datenbanken

Lehrveranstaltung Grundlagen von Datenbanken Verbindungsanleitung mit der Datenbank Um sich mit der Datenbank für die Übung zu verbinden, gibt es mehrere Möglichkeiten. Zum einen ist die Datenbank aus dem Netz des Informatikums direkt erreichbar.

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In

Mehr

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress. Anmeldung http://www.ihredomain.de/wp-admin Dashboard Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress. Das Dashboard gibt Ihnen eine kurze Übersicht, z.b. Anzahl der Beiträge,

Mehr

C++ Grundlagen. ++ bedeutet Erweiterung zum Ansi C Standard. Hier wird eine Funktion eingeleitet

C++ Grundlagen. ++ bedeutet Erweiterung zum Ansi C Standard. Hier wird eine Funktion eingeleitet C++ Grundlagen ++ bedeutet Erweiterung zum Ansi C Standard Hier wird eine Funktion eingeleitet Aufbau: In dieser Datei stehen die Befehle, die gestartet werden, wenn das Programm gestartet wird Int main()

Mehr

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank In den ersten beiden Abschnitten (rbanken1.pdf und rbanken2.pdf) haben wir uns mit am Ende mysql beschäftigt und kennengelernt, wie man

Mehr

MySQL Installation. AnPr

MySQL Installation. AnPr Name Klasse Datum 1 Allgemeiner Aufbau Relationale Datenbank Management Systeme (RDBMS) werden im Regelfall als Service installiert. Der Zugriff kann über mehrere Kanäle durchgeführt werden, wobei im Regelfall

Mehr

Objektrelationale Datenbanken

Objektrelationale Datenbanken Vorlesung Datenbanksysteme vom 26.11.2008 Objektrelationale Datenbanken Konzepte objektrelationaler DBs SQL:1999 OO vs. OR Konzepte objektrelationaler Datenbanken Große Objekte (LOBs: Large Objects) Mengenwertige

Mehr

Inhalt. Einbettungstechniken für SQL. 1. Datenbank-Programmierung. Statische Einbettung

Inhalt. Einbettungstechniken für SQL. 1. Datenbank-Programmierung. Statische Einbettung Vorbemerkungen Inhalt Einbettungstechniken für SQL 1. Datenbankprogrammierung auf der Client-Seite: Embedded SQL, JDBC und SQLJ 2. Datenbankprogrammierung auf der Server-Seite: Stored Procedures 3. Erweiterbarkeit

Mehr

Einführung in die Programmierung

Einführung in die Programmierung : Inhalt Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund - mit / ohne Parameter - mit / ohne Rückgabewerte

Mehr

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders

Mehr

2. Einrichtung der ODBC-Schnittstelle aus orgamax (für 32-bit-Anwendungen)

2. Einrichtung der ODBC-Schnittstelle aus orgamax (für 32-bit-Anwendungen) 1. Einführung: Über den ODBC-Zugriff können Sie bestimmte Daten aus Ihren orgamax-mandanten in anderen Anwendungen (beispielsweise Microsoft Excel oder Microsoft Access) einlesen. Dies bietet sich beispielsweise

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

Urs Meier (urs.meier@trivadis.com) Art der Info Technical Info (Februar 2002) Aus unserer Projekterfahrung und Forschung

Urs Meier (urs.meier@trivadis.com) Art der Info Technical Info (Februar 2002) Aus unserer Projekterfahrung und Forschung Betrifft Optimizer Autor Urs Meier (urs.meier@trivadis.com) Art der Info Technical Info (Februar 2002) Quelle Aus unserer Projekterfahrung und Forschung Einführung Mit jedem Oracle Release nimmt die Anzahl

Mehr

Zur drittletzten Zeile scrollen

Zur drittletzten Zeile scrollen 1 Fragen und Antworten zur Computerbedienung Thema : Zur drittletzten Zeile scrollen Thema Stichwort Programm Letzte Anpassung Zur drittletzten Zeile scrollen Scrollen VBA Excel 1.02.2014 Kurzbeschreibung:

Mehr

Software Engineering Klassendiagramme Assoziationen

Software Engineering Klassendiagramme Assoziationen Software Engineering Klassendiagramme Assoziationen Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Lesen von Multiplizitäten (1) Multiplizitäten werden folgendermaßen

Mehr