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

Größe: px
Ab Seite anzeigen:

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

Transkript

1 Anwendungsentwicklung in Datenbanken: Unter Anwendungsentwicklung in Datenbanken versteht man die Entwicklung von Anwendungen, die über die Adhoc-Abfrage mit SQL hinausgeht. Es gibt verschiedene Möglichkeiten, über die SQL-Möglichkeiten hinaus zu gehen: Prozedurale Spracherweiterung von SQL (z.b. PL/SQL bei Oracle) Vorhalten von Aufrufschnittstellen zwischen Programmiersprache und Datenbank (z.b. ODBC, JDBC) Konzepte der Einbettung von SQL in Programmiersprachen (Embedded SQL, z.b. C++) Ereignisgesteuerte Programmausführungen (Trigger) Bei allen Ideen der Kombination von Programmiersprachen einerseits und den Konzepten der relationalen Datenbanken andererseits zeigt sich, dass es einen sogenannten Impedance Mismatch gibt, eine Unverträglichkeit zwischen den beiden Welten, die mit den o.a. Ideen immer nur angenähert gelöst wird. 1

2 Prozedurale Spracherweiterungen von SQL Große relationale Datenbankmanagement-System bieten eine eigene, proprietäre Erweiterung des Sprachumfangs über SQL hinaus an, die prozedurale Möglichkeiten einführt und auf das Konzept der Relation anwenden lässt. Im SQL-99 ist hierzu ein Standard definiert. Diese Sprachen bieten auch die Möglichkeit, Prozeduren oder Funktionen zu definieren, die parametrisiert mehrfach verwendet werden können. Auch die Definition von Triggern (aktive, ereignisgesteuerte Programmteile) ist möglich. Wir lernen im Folgenden die Erweiterung von Oracle (PL/SQL) kennen. PL steht für Procedural Language. 2

3 Prozedurale Spracherweiterungen von SQL Im Wesentlichen wird die Sprache um die prozeduralen Konzepte Sequenz, Schleife, Alternative erweitert. Hierzu werden die Tupel der Relationen sequenzialisiert abgearbeitet und nicht mengenweise, wie bei SQL-DML-Abfragen. Um dies zu gewährleisten, gibt es den sogenannten Cursor, nicht zu verwechseln mit dem blinkenden Cursor auf dem Bildschirm. Sowohl Anwendungsprogramm als auch die SQL-Befehle werden im selben DBMS gespeichert, so dass ein Performance-Gewinn zu anderen Ansätzen gegeben ist. Mit Stored Procedures können ganze Abfolgen als eine Transaktion durchgeführt werden, so dass sichergestellt ist, dass bestimmte Abfolgen (Transaktionen) komplett durchgeführt werden. 3

4 Prozedurale Spracherweiterungen von SQL: hier Oracle PL/SQL Bei Oracle PL/SQL ist die einfachste Form der anonyme Block, in dem man eine Abfolge spezifizieren und anschließend ablaufen lassen kann. Die grundlegende Syntax eines anonymen Blockes ist: DECLARE <Deklarationen> BEGIN <PL/SQL-Code> EXCEPTION <PL/SQL-Code> END; / 4

5 Prozedurale Spracherweiterungen von SQL: hier Oracle Beispiel: Gegeben sei die folgende Tabelle Markt Das anonyme Block: liefert: DECLARE CURSOR m IS SELECT Verkaufsmarkt FROM Markt; VM Markt.Verkaufsmarkt%type; -- VM ist vom gleichen Typ wie Markt.Verkaufsmarkt BEGIN OPEN m; -- Cursor öffnen FETCH m INTO VM; -- Cursor in Variable VM einlesen dbms_output.put_line('markt'); -- Ausgabe dbms_output.put_line('-----'); WHILE m%found - WHILE solange noch Tupel existieren LOOP dbms_output.put_line(vm); FETCH m INTO VM; END LOOP; CLOSE m; -- Cursor schliessen END; / Markt Rheinischer Tonmarkt Internat. Tonmarkt Verkaufsmarkt Rheinischer Tonmarkt Internat. Tonmarkt - Marktstandort Mainz 5

6 Prozedurale Spracherweiterungen von SQL: hier Oracle Erläuterungen: CURSOR deklariert einen Cursor in Form eines SELECT-Statements. Der Cursor kann explizit FOR UPDATE deklariert werden, dann können Datenbank-Attribute geändert werden. %TYPE bei der Deklaration ermöglicht die typgleiche Definition von Variablen. OPEN öffnet einen Cursor und setzt ihn auf das erste durch das SELECT- Statement definierte Tupel. CLOSE schließt den Cursor. FETCH liest ein Tupel in die (lokalen) Variablen, die folgen. DBMS_OUTPUT.PUT_LINE produziert Ausgaben auf den Bildschirm. %FOUND liefert TRUE, falls der Cursor noch auf einen Datensatz zeigt. WHILE LOOP END LOOP: WHILE-Schleife FOR LOOP END LOOP: FOR-Schleife IF THEN [ELSE ] END IF: Verzweigung -- bedeutet Kommentar für den Rest der Zeile /* */ bedeutet, dass Kommentar ist. 6

7 Prozedurale Spracherweiterungen von SQL: hier Oracle Beispiel: CURSOR FOR UPDATE Die fehlenden Standorte erhalten Darmstadt als Standort. DECLARE CURSOR m IS SELECT Marktstandort FROM Markt FOR UPDATE OF Marktstandort; MS Markt.Marktstandort%type; BEGIN OPEN m; FETCH m INTO MS; WHILE m%found LOOP IF MS IS NULL THEN UPDATE Markt SET Marktstandort = 'Darmstadt' WHERE CURRENT OF m; END IF; FETCH m INTO MS; END LOOP; CLOSE m; END; / Nur mit diesem Zusatz sind Änderungen innerhalb des Programms möglich. Tupel, auf das der Cursor zeigt 7

8 Prozedurale Spracherweiterungen von SQL: hier Oracle Beispiel: Komplexer Cursor Im Programm sollen die Produkte, die ein Service sind, aus dem Angebot genommen werden, wenn sie auf einem Markt angeboten werden, dessen Standort nicht bekannt ist. Produkt: Markt: ProdNr Produktart Funktion Tee-Service Gebrauch Kaffee-Service Gebrauch Schale Deko Krug Deko Verkaufsmarkt Marktstandort Rheinischer Tonmarkt Mainz Internat. Tonmarkt - Angebot: ProdNr Verkaufsmarkt Rheinischer Tonmarkt Rheinischer Tonmarkt Rheinischer Tonmarkt Internat. Tonmarkt Internat. Tonmarkt 8

9 Prozedurale Spracherweiterungen von SQL: hier Oracle Beispiel: Komplexer Cursor DECLARE CURSOR c IS SELECT Produktart, Marktstandort FROM Markt,Produkt,Angebot WHERE MARKT.VERKAUFSMARKT = ANGEBOT.VERKAUFSMARKT AND PRODUKT.PRODUKTNR = ANGEBOT.PRODUKTNR FOR UPDATE OF Angebot.ProduktNr; PArt Produkt.Produktart%type; MSt Markt.Marktstandort%type; BEGIN OPEN c; FETCH c INTO PArt, MSt; WHILE c%found LOOP IF PArt like '%Service%' AND MSt IS NULL THEN DELETE FROM ANGEBOT WHERE CURRENT OF c; END IF; FETCH c INTO PArt, MSt; END LOOP; CLOSE c; END; / Bedingungen: Service und auf einem Markt ohne Standort angeboten Löschen des Tupels 9

10 Prozedurale Spracherweiterungen von SQL: hier Oracle PL/SQL Neben dem anonymen Block ist es bei Oracle PL/SQL möglich, Prozeduren und Funktionen zu spezifizieren, die dann i.d.r. mit Parametern dynamisch ablaufen. Funktionen unterscheiden sich von Prozeduren insbesondere durch den Rückgabewert. Die grundlegende Syntax der Prozedur: der Funktion: CREATE OR REPLACE PROCEDURE <Prozedurname> (Param1 [IN OUT IN OUT] Typ1,...) IS <Deklarationen> BEGIN <SQL- und PL/SQL-Anweisungen> ohne return-wert EXCEPTION <Ausnahmen> END; / CREATE OR REPLACE FUNCTION <Funktionsname> (Param1 Typ1,...) RETURN <Ergebnistyp> IS <Deklarationen> BEGIN <SQL- und PL/SQL-Anweisungen> mit return-wert EXCEPTION <Ausnahmen> END; / 10

11 Prozedurale Spracherweiterungen von SQL: hier Oracle PL/SQL Prozeduren und Funktionen: CREATE OR REPLACE dient dazu, evtl. bereits vorhandene Funktionen oder Prozeduren zu überschreiben. Die so definierten Prozeduren sind im DB-System gespeichert und jederzeit aufrufbar. Funktionen liefern einen Rückgabe-Wert. Mindestens ein RETURN muss innerhalb der Funktion enthalten sein. Parameter in Prozeduren können als IN oder OUT oder als IN OUT spezifiziert werden. Nur mit OUT spezifizierte Parameter haben eine Auswirkung auf die Datenbank. Funktions- und Prozeduraufrufe können in Programmen durchgeführt werden. Funktionsaufrufe können auch direkt innerhalb SELECT-Befehlen verwendet werden. 11

12 Prozedurale Spracherweiterungen von SQL: hier Oracle Beispiel: Prozedur Für angebotene Produkte gibt der Benutzer den Ort und die Funktion an. Die Prozedur ermittelt daraus die Anzahl der passenden Angebote. Alternative 1: Die Bedingungen werden im Programm überprüft. 12 create or replace PROCEDURE AngebotAnzahl2 (Ort IN varchar, Fkt IN varchar, Anzahl OUT integer) AS CURSOR c1 IS SELECT ProduktNr FROM Produkt WHERE Fkt = Funktion; CURSOR c2 IS SELECT Verkaufsmarkt FROM Markt WHERE Ort = Marktstandort; CURSOR c3 IS SELECT ProduktNr, Verkaufsmarkt FROM Angebot; PPNr Produkt.ProduktNr%type; MVM Markt.Verkaufsmarkt%type; APNr Angebot.ProduktNr%type; AVM Angebot.Verkaufsmarkt%type; i INTEGER; BEGIN i := 0; OPEN c1; FETCH c1 INTO PPNr; WHILE c1%found LOOP OPEN c3; FETCH c3 INTO APNr, AVM; WHILE C3%FOUND LOOP IF PPNr = APNr THEN OPEN c2; FETCH c2 INTO MVM; WHILE c2%found LOOP IF MVM = AVM THEN i := i + 1; exit; END IF; FETCH c2 INTO MVM; END LOOP; CLOSE c2; END IF; FETCH c3 INTO APNr, AVM; END LOOP; CLOSE c3; FETCH c1 INTO PPNr; END LOOP; CLOSE c1; Anzahl := i; END; /

13 Prozedurale Spracherweiterungen von SQL: hier Oracle Beispiel: Prozedur Für angebotene Produkte gibt der Benutzer den Ort und die Funktion an. Die Prozedur ermittelt daraus die Anzahl der passenden Angebote. Alternative 2: Die Bedingungen werden im Cursor überprüft. CREATE OR REPLACE PROCEDURE AngebotAnzahl (Ort IN varchar, Fkt IN varchar, Anzahl OUT integer) AS CURSOR c IS SELECT COUNT(*) FROM Markt, Produkt, Angebot WHERE MARKT.VERKAUFSMARKT = ANGEBOT.VERKAUFSMARKT AND PRODUKT.PRODUKTNR = ANGEBOT.PRODUKTNR AND Ort = Marktstandort AND Fkt = Funktion; BEGIN OPEN c; FETCH c INTO Anzahl; CLOSE c; END; 13

14 Prozedurale Spracherweiterungen von SQL: hier Oracle Durch die Kombinationsmöglichkeit von CURSOR mit der prozeduralen Programmierung ist stets zu überprüfen, welche Teile bereits mit dem CURSOR abgearbeitet werden können und welche im Programmcode zu implementieren sind. Folgender anonyme Block ruft die Prozedur (beide Alternativen sind möglich) auf: declare k integer; begin dbms_output.put_line ('Anzahl der Angebote von Dekoprodukten'); AngebotAnzahl ('Mainz', 'Deko', k); dbms_output.put_line (k); dbms_output.put_line ('Anzahl der Angebote von Gebrauchsprodukten'); AngebotAnzahl ('Mainz', 'Gebrauch', k); dbms_output.put_line (k); end; / 14

15 Prozedurale Spracherweiterungen von SQL: hier Oracle Beispiel: Funktion Für angebotene Produkte gibt der Benutzer den Ort und die Funktion an. Die Prozedur ermittelt daraus die Anzahl der passenden Angebote. Das als Prozedur bekannte Beispiel wird nun als Funktion spezifiziert. Der Ausgabeparameter ist nun das Ergebnis der Funktion selbst. CREATE OR REPLACE FUNCTION AngebotAnzahl (Ort varchar, Fkt varchar) RETURN INTEGER AS CURSOR c IS SELECT COUNT(*) FROM Markt,Produkt,Angebot WHERE MARKT.VERKAUFSMARKT = ANGEBOT.VERKAUFSMARKT AND PRODUKT.PRODUKTNR = ANGEBOT.PRODUKTNR AND Ort = Marktstandort AND Fkt = Funktion; Rückgabewert 15 Anzahl integer; BEGIN OPEN c; FETCH c INTO Anzahl; CLOSE c; RETURN Anzahl; END; / Rückgabewert Folgender anonyme Block ruft die Funktion auf: declare begin dbms_output.put_line ('Anzahl der Angebote von Dekoprodukten: AngebotAnzahlFKT ('Mainz', 'Deko')); dbms_output.put_line ('Anzahl der Angebote von Gebrauchsprodukten: AngebotAnzahlFKT ('Mainz', 'Gebrauch')); end; /

16 Prozedurale Spracherweiterungen von SQL: hier Oracle Als Alternative zu dem anonymen Block ist es bei Funktionen möglich eine Funktion direkt in einem SELECT-Statement aufzurufen. Dies dient i.d.r. aber nur zum schnellen Testen der Funktion. Hierzu ist eine spezielle Tabelle DUAL vordefiniert, die als DUMMY dem Benutzer zur Verfügung steht. Das folgende SQL-Statement: select AngebotAnzahlFKT ('Mainz', 'Gebrauch') AS Mainzer_Gebrauchtangebote FROM DUAL; liefert Mainzer_Gebrauchtangebote 2 16

17 Prozedurale Spracherweiterungen von SQL: hier Oracle Benutzereingaben sind möglich. Die Variablen müssen entsprechend deklariert werden, wie das folgende Beispiel zeigt: declare o varchar(20) := &OrtsEingabe; f varchar(20) := &FunktionsEingabe; begin dbms_output.put_line ('Anzahl der Angebote von ' f 'produkten in ' o ': ' AngebotAnzahlFKT (o, f)); end; / Im Ergebnis liefert der Programmaufruf bei Ortseingabe von Mainz und Funktionseingabe von Deko : Anzahl der Angebote von Dekoprodukten in Mainz: 1 17

18 Prozedurale Spracherweiterungen von SQL: hier Oracle Bewertung von Funktionen und Prozeduren: Funktionen und Prozeduren dienen der besseren Strukturierung in großen Programmen. Gleiche Programmabläufe werden auf diese Weise nur einmal deklariert. Die Prozeduren, Funktionen und Programme werden im DBMS selbst gespeichert. Sowohl Programme, Prozeduren und Funktionen als auch die eingebetteten SQL- Befehle werden vom gleichen DBMS ausgeführt (hohe Performance). Stored Procedures können auch zur Integritätssicherung genutzt werden. 18

19 Java DataBase Connectivity (JDBC) JDBC wurde 1996 durch die Firma SUN spezifiziert. JDBC ist ein Standard im Bereich der Schnittstelle von Java zu relationalen Datenbanken. Es stellt ein Application Programming Interface (API) bereit, um JAVA mit SQL zu verbinden. Durch JDBC wird dynamisches SQL unterstützt, d.h. die genutzten SQL-Befehle können zur Laufzeit (und nicht bereits zur Übersetzungszeit) generiert werden mit dem Vorteil der möglichen Dynamik und dem Nachteil der Nicht-Überprüfbarkeit vor dem Programm-Ablauf. Wesentlich zur Verwendung der entsprechenden Interface-Befehle ist die Klassenbibliothek java.sql. Vier Klassen in dieser Bibliothek werden grundsätzlich in jedem JAVA-Programm verwendet, um die Datnbank-Anwendungen zu implementieren: java.sql.drivermanager java.sql.connection java.sql.statement java.sql.resultset 19

20 Java DataBase Connectivity (JDBC) Beispiel (Abfrage mit Schleife): package jdbc_beispiele; import java.sql.*; public class JDBC_Beispiele { public static void main(string[] args) throws SQLException { DriverManager.registerDriver(new oracle.jdbc.driver.oracledriver()); String url = "jdbc:oracle:thin:@localhost:1521:xe"; Connection con = DriverManager.getConnection(url, "hr", "hr"); Statement stmt = con.createstatement(); } } Import der Klassenbibliothek Laden der Oracle-Treiber Herstellen der Verbindung zur Datenbank (url, User, Pwd) ResultSet rset = stmt.executequery("select ProduktNr, Produktart, Funktion FROM PRODUKT"); while (rset.next()) { int i = rset.getint("produktnr"); String s1 = rset.getstring("produktart"); String s2 = rset.getstring("funktion"); System.out.println (i + " " + s1 + " " + s2); } con.close(); 20

21 Java DataBase Connectivity (JDBC) Beispiel (Abfrage mit Schleife, Fortsetzung): Weiterschalten des Cursor und Abfrage auf Existenz eines Tupel (vgl. FETCH / FOUND bei PL/SQL) Anfrage Auslesen der Spalten } } Statement stmt = con.createstatement(); ResultSet rset = stmt.executequery("select ProduktNr, Produktart, Funktion FROM PRODUKT"); while (rset.next()) { int i = rset.getint("produktnr"); String s1 = rset.getstring("produktart"); String s2 = rset.getstring("funktion"); System.out.println (i + " " + s1 + " " + s2); } con.close(); Bildschirmausgabe 21

22 Java DataBase Connectivity (JDBC) Beispiel (UPDATE): package jdbc_beispiele; import java.sql.*; public class JDBC_Änderung_mit_Cursor { public static void main(string[] args) throws SQLException { DriverManager.registerDriver(new oracle.jdbc.driver.oracledriver()); String url = "jdbc:oracle:thin:@localhost:1521:xe"; Connection con = DriverManager.getConnection(url, "hr", "hr"); String updatequery = "UPDATE Markt SET Marktstandort = 'Darmstadt' WHERE Marktstandort IS NULL"; PreparedStatement ustmt = con.preparestatement (updatequery); int num = ustmt.executeupdate (updatequery); con.close(); } } 22

23 Java DataBase Connectivity (JDBC) Beispiel (INSERT): package jdbc_beispiele; import java.sql.*; public class JDBC_Einfügen_mit_Cursor { public static void main(string[] args) throws SQLException { DriverManager.registerDriver(new oracle.jdbc.driver.oracledriver()); String url = "jdbc:oracle:thin:@localhost:1521:xe"; Connection con = DriverManager.getConnection(url, "hr", "hr"); String insertquery = "INSERT INTO Markt values ('Neumarkt', 'Wiesbaden')"; PreparedStatement istmt = con.preparestatement (insertquery); int num = istmt.executeupdate (insertquery); con.close(); } } 23

24 Java DataBase Connectivity (JDBC) JDBC ermöglicht im Unterschied zu dem proprietären PL/SQL, in einer Standard- Programmiersprache auf professionelle Datenbanksysteme zuzugreifen. JAVA-Programmierer können mit objektorientierten Konzepten auf die relationale Datenbank zugreifen. Neben dem hier gezeigten Vorgehen gibt es mit JDBC die Möglichkeit Stored Procedures aufzurufen (vgl. PL/SQL) Verteilte Transaktionen zu spezifizieren weitere Datentypen zu nutzen. Grundsätzlich sind die PL/SQL-Programme und die Programme mit JDBC miteinander vergleichbar (Cursor-Definition, Schleifen, If-Then-Else, ). Bei JDBC kommt die Notwendigkeit hinzu, die Verbindung zu dem Datenbankserver aufzubauen, da das Programmsystem nicht innerhalb des Datenbank-Systems liegt wie bei PL/SQL. 24

25 SQLJ SQLJ bietet die Möglichkeit, SQL-Anweisungen direkt in JAVA-Code einzubetten. Die SQL-Anweisungen innerhalb des JAVA-Codes sind statisch, können also nicht mehr zur Laufzeit verändert werden. Dies liefert allerdings den Vorteil, dass die SQL-Anweisungen zur Übersetzungszeit syntaktisch und semantisch überprüft werden können. SQLJ-Anweisungen werden mittels Pre-Compiler in JAVA-Code übersetzt. Anschließend kann das so komplettierte JAVA-Programm kompiliert werden. Es gibt weitere Standard-Definitionen innerhalb von SQLJ, in denen JAVA-Klassen für User Defined Types spezifiziert werden bzw. es wird beschrieben wie JAVA-Klassen in SQL-Statements angesprochen werden können. 25

26 SQLJ Ablauf der Abarbeitung Start mit einem JAVA-Quellcode, der statisch eingebettet SQL-Befehle enthält. Der SQLJ-Übersetzer erstellt daraus JAVA-Quell-Code mit JDBC-_Aufrufen. Dieser kann wie zuvor gesehen mit einem JAVA-Compiler übersetzt werden. Ergebnis: JVA-Bytecode mit JDBC-Aufrufen. 26

27 SQLJ Codierung SQL-Befehle im JAVA-Code werden mit #sql eingeleitet. Ein Cursor wird durch ein sogenanntes Iterator-Objekt spezifiziert. Der Iterator muss speziell deklariert werden und zu dem Format (Anzahl und Typen der Spalten) des Cursors passen. Beispiel: Definition des Iterators #sql ITERATOR PrdItr (int ProdNr, String ProdArt); #sql PrdItr = {select ProdNr, Produktart from Toepferprodukt}; while (PrdItr.next ()) { System.out.println (PrdItr.ProdNr() + " " + PrdItr.Produktart()); } PrdItr.close(); Zuweisung zu dem entsprechenden SQL-Befehl Abarbeitung des Cursors (vgl. FETCH / FOUND) 27

28 JDBC und SQLJ im Vergleich Die Programme können bei SQLJ bereits zur Übersetzungszeit syntaktisch überprüft werden. Eine Vorübersetzung bei SQLJ bedeutet auch einen Performance-Gewinn gegenüber JDBC. SQLJ ist statisch, d.h. die SQL-Befehle müssen bereits zur Übersetzungszeit feststehen. Bei JDBC sind die SQL-Befehle dynamisch. Sie können also zur Laufzeit angepasst werden. Die Syntax ist bei SQLJ insofern einfacher, da sie sehr stark an JAVA angepasst ist. 28

29 Trigger Trigger sind ereignisgesteuerte Prozeduren, d.h. sie werden nicht durch konkrete Aufrufe wie Prozeduren aktiviert, sondern durch Ereignisse, aufgrund derer sie reagieren. Ein Trigger bezieht sich auf genau eine Tabelle. Trigger werden definiert mindestens durch Optional das Ereignis, durch das sie aktiviert werden (insert, update, delete), den Zeitpunkt (vorher oder nachher) zu dem Ereignis eine Menge von Anweisungen (vgl. Prozedur), die ausgeführt werden. können Variablen verwendet werden, die die Verwendung der aktivierten Attribute ermöglichen. Durch OLD bzw. NEW können diese vor und nach dem Ereignis erfasst werden. Die Verwendung erfolgt mit einem vorgestellten : kann man mit WHEN die Ausführung des Trigger-Rumpfes an Bedingungen knüpfen. kann festgelegt werden, ob sie ein Mal (pro Befehlsausführung) oder mehrmals (für jeden geänderten Datensatz) ausgeführt werden. Ersteres ist die Voreinstellung. 29

30 Trigger Syntax (Oracle): CREATE [OR REPLACE] TRIGGER <trigger_name> {BEFORE AFTER} {INSERT DELETE UPDATE} ON <table_name> [REFERENCING [NEW AS <new_row_name>] OLD AS <old_row_name>]] [FOR EACH ROW [WHEN (<trigger_condition>)]] Hinweis: Bei Verwendung von Views (s. Beispiel auf kommenden Folien) kann statt BEFORE bzw. AFTER auch INSTEAD OF stehen., was bedeutet, dass das eingegebene Statement nicht ausgeführt wird, sondern nur die Statements des Triggers. REFERENCING kann verwendet werden, um den Variablen NEW bzw. OLD Alias- Namen zu geben. 30

31 Trigger Beispiel: Ein Produkt soll in der entsprechenden Tabelle gelöscht werden. Da es Angebote zu den Produkten gibt, müssen diese zuvor gelöscht werden, da sonst die Konsistenz in der Datenbank (hier: referentielle Integrität) verletzt wird. Dies erledigt der folgende Trigger CREATE OR REPLACE TRIGGER DeleteTrigger BEFORE DELETE ON Produkt FOR EACH ROW BEGIN DELETE FROM Angebot WHERE ProduktNr = :OLD.ProduktNr; END; 31

32 Trigger Beispiel: Ein Angebot soll in der entsprechenden Tabelle eingefügt werden. Angebote benötigen jedoch jeweils einen Eintrag in den Tabellen Produkt und Markt, auf die sie referenzieren. Der folgende Trigger erledigt diese Aufgabe, wobei bei Produkt bzw. Markt jeweils nur der Primärschlüssel eingetragen werden kann. Die restlichen Attribute erhalten NULL-Werte. CREATE OR REPLACE TRIGGER InsertTrigger BEFORE INSERT ON Angebot FOR EACH ROW BEGIN INSERT INTO Produkt (ProduktNr) VALUES (:NEW.ProduktNr); INSERT INTO Markt (Verkaufsmarkt) VALUES (:NEW.Verkaufsmarkt); END; 32

33 Trigger Beispiel: Der Benutzer erhält einen View, so dass er alle Angebote mit den Märkten und Produkten gemeinsam sieht. Dieser View ist nicht eine Tabelle sondern der natürliche Verbund zwischen den drei Tabellen Produkt, Markt und Angebot: CREATE OR REPLACE VIEW PAM AS SELECT P.ProduktNR, Produktart, Funktion, M.Verkaufsmarkt, Marktstandort FROM Produkt P, Angebot A, Markt M WHERE P.ProduktNr = A.ProduktNr AND A.Verkaufsmarkt = M.Verkaufsmarkt; SELECT * FROM PAM; liefert PRODUKTNR PRODUKTART FUNKTION VERKAUFSMARKT MARKTSTANDORT Schale Deko Rheinischer Tonmarkt Mainz Kaffee-Service Gebrauch Rheinischer Tonmarkt Mainz Tee-Service Gebrauch Rheinischer Tonmarkt Mainz Krug Deko Internat. Tonmarkt Tee-Service Gebrauch Internat. Tonmarkt - 33

34 Trigger Beispiel (Fortsetzung): Es ist nicht möglich, in diesen View, der nur virtuell existiert, eine Zeile einzufügen, zu ändern oder zu löschen, da sich der View aus drei Tabellen zusammensetzt. Folgender Trigger löst das Problem des INSERT: CREATE OR REPLACE TRIGGER EinfView INSTEAD OF INSERT ON PAM FOR EACH ROW BEGIN INSERT INTO Produkt (ProduktNr, Produktart, Funktion) VALUES (:NEW.ProduktNr, :NEW.Produktart, :NEW.Funktion); INSERT INTO Markt (Verkaufsmarkt, Marktstandort) VALUES (:NEW.Verkaufsmarkt, :NEW.Marktstandort); INSERT INTO Angebot (ProduktNr, Verkaufsmarkt) VALUES (:NEW.ProduktNr, :NEW.Verkaufsmarkt); END; INSERT INTO PAM VALUES (47112, Tasse', Gebrauch', Lokalmarkt', Wiesbaden'); bewirkt, dass die genannten Attributwerte konsistent in die drei Tabellen mit jeweils einer Zeile eingetragen werden. 34

35 Trigger Beispiel (Fortsetzung): Das Löschen auf dem View lässt sich analog lösen: CREATE OR REPLACE TRIGGER DelView INSTEAD OF DELETE ON PAM FOR EACH ROW BEGIN DELETE FROM Angebot WHERE ProduktNr = :OLD.ProduktNr AND Verkaufsmarkt = :OLD.Verkaufsmarkt; DELETE FROM Produkt WHERE ProduktNr = :OLD.ProduktNr; DELETE FROM Markt WHERE Verkaufsmarkt = :OLD.Verkaufsmarkt; END; DELETE FROM PAM WHERE ProduktNr = AND Verkaufsmarkt = 'Lokalmarkt'; bewirkt, dass die genannten Attributwerte konsistent aus den drei Tabellen gelöscht werden. 35

36 Trigger Beispiel (Fortsetzung): Der folgende Trigger enthält die Funktionalität der beiden vorherigen Trigger in einem: CREATE OR REPLACE TRIGGER EinfDelView INSTEAD OF INSERT OR DELETE ON PAM FOR EACH ROW BEGIN IF INSERTING THEN INSERT INTO Produkt (ProduktNr, Produktart, Funktion) VALUES (:NEW.ProduktNr, :NEW.Produktart, :NEW.Funktion); INSERT INTO Markt (Verkaufsmarkt, Marktstandort) VALUES (:NEW.Verkaufsmarkt, :NEW.Marktstandort); INSERT INTO Angebot (ProduktNr, Verkaufsmarkt) VALUES (:NEW.ProduktNr, :NEW.Verkaufsmarkt); END IF; IF DELETING THEN DELETE FROM Angebot WHERE ProduktNr = :OLD.ProduktNr AND Verkaufsmarkt = :OLD.Verkaufsmarkt; DELETE FROM Produkt WHERE ProduktNr = :OLD.ProduktNr; DELETE FROM Markt WHERE Verkaufsmarkt = :OLD.Verkaufsmarkt; END IF; END; 36

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

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

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

Mehr

11 Anwendungsprogrammierung

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

Mehr

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

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

Mehr

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

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

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

Funktion definieren Gibt Summe der Gehälter zurück. Aufruf in einem SQL-Statement

Funktion definieren Gibt Summe der Gehälter zurück. Aufruf in einem SQL-Statement Funktion definieren Gibt Summe der Gehälter zurück Aufruf in einem SQL-Statement Dr. Christian Senger Einführung PL/SQL 1 Procedures & Transaktionen CREATE OR REPLACE PROCEDURE write_log ( log_code IN

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

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

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

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

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

Softwareentwicklung mit JAVA EE

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

Mehr

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

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

Vorbereitungen zum 3. Praktikum (PL/SQL):

Vorbereitungen zum 3. Praktikum (PL/SQL): Vorbereitungen zum 3. Praktikum (PLSQL): SQL ist eine nicht-prozedurale Sprache der 4. Generation, die es nicht erlaubt, Elemente von 3.-Generation-Sprachen (Schleifen, Verzweigungen, etc.) zu benutzen.

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

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

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

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

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

Mehr

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

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

Mehr

Datenbankprogrammierung 1

Datenbankprogrammierung 1 Datenbankprogrammierung 1 Die Folien basieren auf: Datenbanken: Konzepte und Sprachen, Andreas Heuer und Gunter Saake, mitp-verlag, 2. Auflage, 2000, http://wwwiti.cs.uni-magdeburg.de/biber/ Datenbanken

Mehr

Übung Datenbanksysteme I JDBC. Thorsten Papenbrock

Übung Datenbanksysteme I JDBC. Thorsten Papenbrock Übung Datenbanksysteme I JDBC Thorsten Papenbrock Motivation: Grenzen von SQL 2 1. Bedingte Anweisungen Erhöhe das Gehalt eines Arbeitsnehmers um 2%, falls er eine Belobigung erhalten hat 2. Darstellung

Mehr

Übung Datenbanksysteme I JDBC. Thorsten Papenbrock

Übung Datenbanksysteme I JDBC. Thorsten Papenbrock Übung Datenbanksysteme I JDBC Thorsten Papenbrock Motivation: Grenzen von SQL 2 1. Bedingte Anweisungen Erhöhe das Gehalt eines Arbeitsnehmers um 2%, falls er eine Belobigung erhalten hat 2. Darstellung

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

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

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

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

Persistenz von Objekten relationale Datenbank Eigene Datenstruktur XML (JAXB) Proprietäre Dateiformate (Lochkarten)

Persistenz von Objekten relationale Datenbank Eigene Datenstruktur XML (JAXB) Proprietäre Dateiformate (Lochkarten) Persistenz von Objekten relationale Datenbank Eigene Datenstruktur XML (JAXB) Proprietäre Dateiformate (Lochkarten) O/R Mapping - Objekte (Attribute) - 1:1, 1:n, n:m Beziehungen - Vererbungen (- Interfaces)

Mehr

Java und Datenbanksysteme Datenbankanbindung mit JDBC

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

Mehr

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

6. Datenintegrität. Integritätsbedingungen

6. Datenintegrität. Integritätsbedingungen 6. Integritätsbedingungen dienen zur Einschränkung der Datenbankzustände auf diejenigen, die es in der realen Welt tatsächlich gibt. sind aus dem erstellten Datenmodell ableitbar (semantisch) und können

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

DBS: Anwendungsprogrammierung

DBS: Anwendungsprogrammierung Bisher: Grundlagen / Theorie DBS: Anwendungsprogrammierung Daten Schema Datenbank 1 Daten Schema Datenbank 2 DBMS Benutzer 1 Benutzer 2 Benutzer n Hier: Idee der Praxis Datenbanksysteme Benutzer Anwendungskontrollkomponenten

Mehr

Datenbanksysteme. Dominic Pacher. Datenbanken und Informationssysteme (DBIS) Institut für Informatik Universität Innsbruck. dbis-informatik.uibk.ac.

Datenbanksysteme. Dominic Pacher. Datenbanken und Informationssysteme (DBIS) Institut für Informatik Universität Innsbruck. dbis-informatik.uibk.ac. Datenbanksysteme Dominic Pacher Datenbanken und Informationssysteme (DBIS) Institut für Informatik Universität Innsbruck dbis-informatik.uibk.ac.at 1 Übersicht Was passiert in den kommenden 90 Minuten?

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

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

Oracle Datenbankprogrammierung mit PL/SQL Grundlagen

Oracle Datenbankprogrammierung mit PL/SQL Grundlagen Oracle Datenbankprogrammierung mit PL/SQL Grundlagen Seminarunterlage Version: 12.05 Version 12.05 vom 29. Januar 2015 Dieses Dokument wird durch die veröffentlicht.. Alle Rechte vorbehalten. Alle Produkt-

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

Datenbanken: Prozedurales SQL

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

Mehr

Struktur von PL/SQL. Oracle PL/SQL Die Programmiersprache von Oracle. Ein Beispiel. Bildschirmausgabe. Using Oracle PL/SQL.

Struktur von PL/SQL. Oracle PL/SQL Die Programmiersprache von Oracle. Ein Beispiel. Bildschirmausgabe. Using Oracle PL/SQL. Oracle PL/SQL Die Programmiersprache von Oracle Struktur von PL/SQL Using Oracle PL/SQL http://www-db.stanford.edu/~ullman/fcdb/oracle/or-plsql.html Constraints and Triggers http://www-db.stanford.edu/~ullman/fcdb/oracle/or-triggers.html

Mehr

Semantische Integrität (auch: Konsistenz) der in einer Datenbank gespeicherten Daten als wichtige Anforderung

Semantische Integrität (auch: Konsistenz) der in einer Datenbank gespeicherten Daten als wichtige Anforderung 6. Datenintegrität Motivation Semantische Integrität (auch: Konsistenz) der in einer Datenbank gespeicherten Daten als wichtige Anforderung nur sinnvolle Attributwerte (z.b. keine negativen Semester) Abhängigkeiten

Mehr

Praktikum Datenbanksysteme

Praktikum Datenbanksysteme Praktikum Datenbanksysteme Herbstsemester 2012 Dr. Andreas Geppert Platform Architecture Technology Infrastructure Services Credit Suisse geppert@acm.org Herbstsemester 2012 Slide 1 Themenübersicht konzeptueller

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

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

Transaktionen in der Praxis. Dr. Karsten Tolle

Transaktionen in der Praxis. Dr. Karsten Tolle Transaktionen in der Praxis Dr. Karsten Tolle Praxisbeispiel in Java Connection con = null; try { con = DriverManager.getConnection("jdbc:db2:sample"); } catch (Exception e) { e.printstacktrace(); } con.setautocommit(false);

Mehr

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

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

Mehr

Zugriff auf die Datenbank. Ulf Leser Wissensmanagement in der Bioinformatik

Zugriff auf die Datenbank. Ulf Leser Wissensmanagement in der Bioinformatik Zugriff auf die Datenbank Ulf Leser Wissensmanagement in der Bioinformatik Wie komme ich an die Datenbank? Alternativen Alles in Java machen JDBC Treiber von Oracle herunterladen Java programmieren Java-basierte

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

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

Einführung in PL/SQL

Einführung in PL/SQL Einführung in PLSQL Prozedurale Erweiterung der Sprache SQL um Elemente wie Variablen, Schleifen, Bedingungen, Ausnahmebehandlung Code läuft innerhalb der Datenbank ab und ist deshalb sehr performant Zusätzlich

Mehr

Von der passiven zur aktiven Datenbank II. Trigger Views Prozerdurale SQL-Erweiterungen

Von der passiven zur aktiven Datenbank II. Trigger Views Prozerdurale SQL-Erweiterungen Von der passiven zur aktiven Datenbank II Trigger Views Prozerdurale SQL-Erweiterungen Konzept der aktiven DB ECA-Prinzip: Event, Condition, Action Spezifizierte DB-Zustände Ereignis ggf. automatische

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

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

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

PL/pgSQL. VU Datenbanksysteme. Reinhard Pichler

PL/pgSQL. VU Datenbanksysteme. Reinhard Pichler PL/pgSQL VU Datenbanksysteme Reinhard Pichler Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Wintersemester 2015/16 Gliederung Einführung

Mehr

Views in SQL. 2 Anlegen und Verwenden von Views 2

Views in SQL. 2 Anlegen und Verwenden von Views 2 Views in SQL Holger Jakobs bibjah@bg.bib.de, holger@jakobs.com 2010-07-15 Inhaltsverzeichnis 1 Wozu dienen Views? 1 2 Anlegen und Verwenden von Views 2 3 Schreibfähigkeit von Views 3 3.1 Views schreibfähig

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

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

Datenbankanwendung. Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern. Wintersemester 2014/15. smichel@cs.uni-kl.de Datenbankanwendung Wintersemester 2014/15 Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern smichel@cs.uni-kl.de Übersicht der (kommenden) Vorlesungen ˆ Embedded SQL (in Java und C++) ˆ Stored Procedures

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

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

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

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

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

Programmierung von Datenbank Anwendungen

Programmierung von Datenbank Anwendungen Programmierung von Datenbank Anwendungen ESQL, ODBC, JDBC und co Methoden! bisher interaktive Verwendung von SQL! Terminal! Skripte! Ausführen von SQL aus Programmiersprache heraus! proprietäre APIs! standardisierte

Mehr

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

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

Mehr

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

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

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

Strukturierte Objekttypen

Strukturierte Objekttypen Strukturierte Objekttypen Der Typ t approxmatch row des letzten Beispiels ist ein sogenannter Objekttyp. Definition: Ein Objekttyp ist ein Datentyp, bei dem (u.u. verschiedene) bekannte Datentypen zu einem

Mehr

Übung: Data Warehousing und Data Mining

Übung: Data Warehousing und Data Mining Übung: Data Warehousing und Data Mining Sebastian Wandelt 20. Oktober 2011 wandelt@informatik.hu-berlin.de Überblick Organisatorisches Kurze Einführung JDBC PL/SQL 1. Aufgabenblatt Ablauf des Semesters

Mehr

Datenabstraktion / Kapselung in (O)RDBMS

Datenabstraktion / Kapselung in (O)RDBMS Datenabstraktion / Kapselung in (O)RDBMS Prozeduren und Funktionen (Routinen) SQL 92: Stored Procedures SQL:2003: Unterscheidung zw. Funktionen und Prozeduren Prozedur: Nicht an einen bestimmten Datentyp

Mehr

PostgreSQL im praktischen Einsatz. Stefan Schumacher

PostgreSQL im praktischen Einsatz. Stefan Schumacher PostgreSQL im praktischen Einsatz 2. Brandenburger Linux Infotag 2005 Stefan Schumacher , PGP Key http:/// $Header: /home/daten/cvs/postgresql/folien.tex,v 1.11 2005/04/25

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

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

Wie kommen die Befehle zum DBMS

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

Mehr

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

Trigger schreiben. Überblick über Trigger. Datenbank Trigger: Beispiel. Aufbau eines Triggers

Trigger schreiben. Überblick über Trigger. Datenbank Trigger: Beispiel. Aufbau eines Triggers Überblick über Trigger Trigger schreiben Ein Trigger ist ein PL/SQL Block, der implizit aufgerufen wird, wenn ein bestimmtes Ereignis eintritt. Ein Trigger kann ein Datenbanktrigger oder ein Anwendungstrigger

Mehr

SQLJ SQLJ. SQL-Klauseln. Embedded SQL für Java. Einbettungsprinzip. Host-Variablen. SQLJ ist in 3 Teile gegliedert: Stefan Böttcher Sven Groppe

SQLJ SQLJ. SQL-Klauseln. Embedded SQL für Java. Einbettungsprinzip. Host-Variablen. SQLJ ist in 3 Teile gegliedert: Stefan Böttcher Sven Groppe Datenbanken und Informationsysteme I Stefan Böttcher Sven Groppe Universität Paderborn ist in 3 Teile gegliedert: Part 0: Embedded SQL für Java ANSI-Standard Baut auf die JDBC API auf Part 1: Java Stored

Mehr

10 Anwendungsprogrammierung

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

Mehr

Bitte tragen Sie sofort und leserlich Namen, Studienkennzahl und Matrikelnummer ein und legen Sie Ihren Studentenausweis

Bitte tragen Sie sofort und leserlich Namen, Studienkennzahl und Matrikelnummer ein und legen Sie Ihren Studentenausweis Gruppe A Bitte tragen Sie sofort und leserlich Namen, Studienkennzahl und Matrikelnummer ein und legen Sie Ihren Studentenausweis bereit. PRÜFUNG AUS DATENBANKSYSTEME VU 184.686 7. 5. 2014 Kennnr. Matrikelnr.

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

Isolationsstufen für. Dr. Karsten Tolle Dienstag 31. Januar 2012

Isolationsstufen für. Dr. Karsten Tolle Dienstag 31. Januar 2012 Isolationsstufen für Transaktionen / Sicherheit Dr. Karsten Tolle Dienstag 31. Januar 2012 Praxisbeispiel in Java Connection con = null; try { con = DriverManager.getConnection("jdbc:db2:sample"); } catch

Mehr

Datenbanken SQL. Insert, Update, Delete, Drop. Krebs

Datenbanken SQL. Insert, Update, Delete, Drop. Krebs Datenbanken SQL Insert, Update, Delete, Drop Krebs Inhalt 1. Datensätze einfügen: INSERT 2. Datensätze verändern: UPDATE 3. Datensätze löschen: DROP vs. DELETE Beispiel Datenbank Schule Klasse P_Klasse

Mehr

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

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

Mehr

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

Ü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

NoSQL mit Postgres 15. Juni 2015

NoSQL mit Postgres 15. Juni 2015 Tag der Datenbanken 15. Juni 2015 Dipl.-Wirt.-Inform. Agenda l Vorstellung l Marktübersicht l Warum PostgreSQL? l Warum NoSQL? l Beispielanwendung Seite: 2 Vorstellung Dipl.-Wirt.-Inform. [1990] Erste

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.3 Datenänderung/-zugriff mit SQL (DML)

5.3 Datenänderung/-zugriff mit SQL (DML) 5.3 Datenänderung/-zugriff mit SQL (DML) Hinweis: - DML-Anweisungen sind mengenorientiert - Mit einer Anweisungen kann mehr als ein Tupel eingefügt, geändert, gelöscht oder gelesen werden Benutzungs- und

Mehr

Themen des Kapitels. 2 Grundlagen von PL/SQL. PL/SQL Blöcke Kommentare Bezeichner Variablen Operatoren. 2.1 Übersicht. Grundelemente von PL/SQL.

Themen des Kapitels. 2 Grundlagen von PL/SQL. PL/SQL Blöcke Kommentare Bezeichner Variablen Operatoren. 2.1 Übersicht. Grundelemente von PL/SQL. 2 Grundlagen von PL/SQL Grundelemente von PL/SQL. 2.1 Übersicht Themen des Kapitels Grundlagen von PL/SQL Themen des Kapitels PL/SQL Blöcke Kommentare Bezeichner Variablen Operatoren Im Kapitel Grundlagen

Mehr

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

SQL und Java. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München Kapitel 5 SQL und Java Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München 2008 Thomas Bernecker, Tobias Emrich unter Verwendung der Folien des Datenbankpraktikums aus dem Wintersemester 2007/08

Mehr

Kommunikation und Datenhaltung

Kommunikation und Datenhaltung Institut für Programmstrukturen und Datenorganisation (IPD) Kommunikation und Datenhaltung Datenbankanwendungsentwicklung Institut für Programmstrukturen und Datenorganisation (IPD) Überblick über den

Mehr

Datenbanksysteme I. Klausur zum Praktikum. Mehrere Professoren prüfen mit genau einem Beisitzer genau einen Studenten.

Datenbanksysteme I. Klausur zum Praktikum. Mehrere Professoren prüfen mit genau einem Beisitzer genau einen Studenten. Lehrstuhl für Datenbanken und Informationssysteme Wintersemester 1999/2000 Universität Augsburg, Institut für Informatik 25. Februar 2000 Prof. Dr. Werner Kießling A. Leubner, M. Wagner Datenbanksysteme

Mehr

SQL Tutorium Documentation

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

Mehr

fbi h_da Datenbanken Kapitel 6: Prozedurale Spracherweiterungen von SQL, Stored Procedure und Trigger, JDBC Kapitel 6-1 Datenbanken 1 (Bachelor)

fbi h_da Datenbanken Kapitel 6: Prozedurale Spracherweiterungen von SQL, Stored Procedure und Trigger, JDBC Kapitel 6-1 Datenbanken 1 (Bachelor) Datenbanken Kapitel 6: Prozedurale Spracherweiterungen von SQL, Stored Procedure und Trigger, JDBC Kapitel 6-1 Prozedurale Spracherweiterungen von SQL, Stored Procedure und Trigger, JDBC Inhalte des Kapitels

Mehr

Java und Datenbanken Ein Überblick

Java und Datenbanken Ein Überblick Java und Datenbanken Ein Überblick Benjamin Lietzau & Philipp Meyer Sommersemester 2011 1 Themenüberblick 29.03.11 - Benjamin Lietzau & Philipp Meyer - Java und Datenbanken 2 Themenüberblick 1. Einführung

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

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