10. Anwendungsprogrammierung. Client-Server-Architektur. Funktionsgruppen in DB-Anwendungen. Client-Server-Modell

Größe: px
Ab Seite anzeigen:

Download "10. Anwendungsprogrammierung. Client-Server-Architektur. Funktionsgruppen in DB-Anwendungen. Client-Server-Modell"

Transkript

1 10. Anwendungsprogrammierung Client-Server-Architektur Client-Server-Architektur Anbindung von Programmiersprachen Call-Level-Schnittstellen: SQL/CLI, JDBC Einbettung: Embedded SQL, SQLJ Gespeicherte Prozeduren Prozedurale Erweiterungen: SQL/PSM, PL/SQL Web-Anbindung von Datenbanken typische Architektur von DB-Anwendungen, da zentrale Verwaltung durch DBMS notwendig Prinzip: Client nimmt Dienste eines Servers in Anspruch erfordert Kenntnis über angebotene Dienste Protokoll zur Regelung der Interaktion VL Datenbanken I 10 1 VL Datenbanken I 10 2 Client-Server-Modell Funktionsgruppen in DB-Anwendungen Client (Dienstnehmer) 1.Anforderung Server (Diensterbringer) Präsentation und Benutzerinteraktion Anwendungslogik Datenmanagementfunktionalität 2.Bearbeitung 3.Antwort VL Datenbanken I 10 3 VL Datenbanken I 10 4

2 2-Schichten-Architektur 3-Schichten-Architektur Benutzerschnittstelle Benutzerschnittstelle Client Anwendungslogik DB-Schnittstelle Client Anwendungslogik DB-Schnittstelle CORBA, RMI,... Applikationsserver DBMS-Protokoll DBMS-Protokoll DB-Server DB-Server VL Datenbanken I 10 5 VL Datenbanken I 10 6 Programmiersprachenanbindung Cursor-Konzept Kopplungsarten: prozedurale oder CALL-Schnittstellen (call level interface) Einbettung einer DB-Sprache in Programmiersprachen statische Einbettung: Vorübersetzer-Prinzip SQL-Anweisungen zur Übersetzungszeit festgelegt dynamische Einbettung: Konstruktion von SQL-Anweisungen zur Laufzeit Spracherweiterungen und neue Sprachentwicklungen Anwendungsprogramm PASCAL Cursor SQL Datenbank Relation VL Datenbanken I 10 7 VL Datenbanken I 10 8

3 Cursor in SQL Cursor in SQL2 Cursor-Deklaration: declare AktBuch cursor for select ISBN, Titel, Verlagsname from Bücher where Verlagsname = Thomson ; Cursor-Deklaration mit Änderungsmöglichkeit: declare AktBuch cursor for select ISBN, Titel, Verlagsname from Bücher for update of ISBN, Titel; declare CursorName [insensitive] [scroll] cursor for... next: Gehe weiter zum nächsten Tupel prior: Gehe zum vorherigen Tupel first bzw. last: Gehe zum ersten bzw. letzten Tupel absolute n from: Gehe zum n-ten Tupel des Cursors (negative Werte werden relativ zum letzten Tupel rückwärts gewertet absolute -1 ist also äquivalent zu last) relative n from: Gehe zum n-ten Tupel relativ zur aktuellen Cursor-Position VL Datenbanken I 10 9 VL Datenbanken I SQL/CLI: Der Standard CLI: Handles Call-Level-Interface: Bibliothek von Prozeduren/Funktionen zur Kommunikation mit dem DBMS Definition und Ausführung von Anfragen Verarbeitung von Ergebnissen SQL/CLI: ISO-Standard für API Programmiersprachen: C/C++, Ada, Fortran, Pascal,... VL Datenbanken I Handle: Verweis auf globale Datenstruktur zur Kommunikation mit DBMS C-Datentyp: SQLHANDLE erforden explizite Allokation (SQLAllocHandle) Arten: Environment Handles: Verwaltung des globalen Zustandes der Applikation Connection Handles: Verwaltung von Verbindungsdaten Statement Handles: Informationen zu einer SQL-Anweisung Description Handles: Daten zu Ergebnisspalten bzw. Paramtern VL Datenbanken I 10 12

4 CLI: Aufbau einer DB-Verbindung CLI: Anfrageausführung 1. Handles allokieren SQLHANDLE henv; /* Environment Handle */ SQLHANDLE hdbc; /* Connection Handle */ SQLAllocHandle (SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv); if (SQLAllocHandle (SQL_HANDLE_DBC, henv, &hdbc)!= SQL_SUCCESS) /* Fehlerbehandlung */ 2. Verbindung herstellen SQLCHAR *server = "shop_db", *uid = "scott", *pwd = "tiger"; SQLConnect (hdbc, server, SQL_NTS, uid, SQL_NTS, pwd, SQL_NTS); VL Datenbanken I SQLHANDLE hstmt; SQLCHAR *select = "select KNr, Name, Ort from Kunde"; SQLAllocHandle (SQL_HANDLE_STMT, hdbc, &hstmt); SQLExecDirect (hstmt, select, SQL_NTS); VL Datenbanken I CLI: Ergebnisverarbeitung CLI: Transaktionssteuerung 1. Bindung an Variablen herstellen SQLINTEGER knr; SQLCHAR kname[31], kort[51]; SQLBindCol (hstmt, 1, SQL_C_LONG, (SQLPOINTER) &knr, 0, NULL); SQLBindCol (hstmt, 2, SQL_C_CHAR, kname, 31, NULL); SQLBindCol (hstmt, 3, SQL_C_CHAR, kort, 51, NULL); 2. Ergebnisse auslesen while (SQLFetch (hstmt) == SQL_SUCCESS) printf ("Kunde = %ld, %s, %s\n", knr, kname, kort); Transaktion erfolgreich beenden SQLEndTrans (SQL_HANDLE_DBC, hdbc, SQL_COMMIT); Transaktion abbrechen SQLEndTrans (SQL_HANDLE_DBC, hdbc, SQL_ROLLBACK); VL Datenbanken I VL Datenbanken I 10 16

5 ODBC JDBC: Überblick SQL/CLI-konforme Implementierung für Microsoft Windows Zugriff auf verschiedene Datenbanksysteme über systemspezifische Treiber möglich dynamisches Laden von Treibern (implementiert als DLL) Registrierung von Datenquellen mit Name, System, Treiber, Verbindungsinformation Datenbankzugriffsschnittstelle für Java abstrakte, datenbankneutrale Schnittstelle vergleichbar mit ODBC Low-Level-API: direkte Nutzung von SQL Java-Package java.sql DriverManager: Einstiegspunkt, Laden von Treibern Connection: Datenbankverbindung Statement: Ausführung von Anweisungen über eine Verbindung ResultSet: verwaltet Ergebnisse einer Anfrage, Zugriff auf einzelne Spalten VL Datenbanken I VL Datenbanken I JDBC: Ablauf JDBC: Verbindungsaufbau 1. Aufbau einer Verbindung zur Datenbank Angabe der Verbindungsinformationen Auswahl und Laden des Treibers 2. Senden einer SQL-Anweisung Definition der Anweisung Belegung von Parametern 3. Verarbeiten der Anfrageergebnisse Navigation über Ergebnisrelation Zugriff auf Spalten 1. Treiber laden Class.forName ("com.company.dbdriver"); 2. Verbindung herstellen Connection con; String url = "jdbc:subprotocol:datasource"; con = DriverManager.getConnection (url, "scott", "tiger"); JDBC-URL spezifiziert Datenquelle/Datenbank Verbindungsmechanismus (Protokoll, Server-Host und Port) VL Datenbanken I VL Datenbanken I 10 20

6 JDBC: Anfrageausführung JDBC: Ergebnisverarbeitung 1. Anweisungsobjekt (Statement) erzeugen Statement stmt = con.createstatement (); 2. Anweisung ausführen String query = "SELECT titel, preis FROM buch"; ResultSet rset = stmt.executequery (query); Klasse java.sql.statement Ausführung von Anfragen (SELECT) mit executequery Ausführung von Änderungsanweisungen (DELETE, INSERT, UPDATE) mit executeupdate 1. Navigation über Ergebnismenge (Cursor-Prinzip) while (rset.next ()) { // Verarbeitung der einzelnen Tupel... } 2. Zugriff auf Spaltenwerte über gettype-methoden über Spaltenindex String titel = rset.getstring (1); über Spaltenname String titel = rset.getstring ("titel"); VL Datenbanken I VL Datenbanken I JDBC: Fehlerbehandlung JDBC: Änderungsoperationen Fehlerbehandlung mittels Exception-Mechanismus SQLException für alle SQL- und DBMS-Fehler try { // Aufruf von JDBC-Methoden... } catch (SQLException exc) { System.out.println (SSQLException: "+ exc.getmessage ()); } DDL- und DML-Operationen mittels executeupdate liefert Anzahl der betroffenen Zeilen (für DML-Operationen) Statement stmt = con.createstatement (); int rows = stmt.executeupdate ( " UPDATE buch SET bestand = bestand-1"+ " WHERE isbn = "); VL Datenbanken I VL Datenbanken I 10 24

7 JDBC: Transaktionssteuerung Statische Einbettung: Embedded SQL Methoden von Connection commit () rollback () Auto-Commit-Modus implizites Commit nach jeder Anweisung Transaktion besteht nur aus einer Anweisung Umschalten mittels setautocommit (boolean) exec sql declare AktBuch cursor for select ISBN, Titel, Verlagsname from Bücher for update of ISBN, Titel; Öffnen und Schließen einer Datenbank exec sql connect UniBeispiel; VL Datenbanken I VL Datenbanken I Deklarationen Datentransfer Deklaration benutzter Datenbankrelationen exec sql declare Buch table ( ISBN char(10) not null, Titel char(120) not null, Verlagsname char(30) not null); Deklaration gemeinsamer Variablen exec sql begin declare section; BuchISBN char(10); NeuerPreis real; exec sql end declare section; exec sql update Buch_Versionen set Preis = :NeuerPreis where ISBN = :BuchISDN ; exec sql insert into Buch_Versionen values (:NeuISBN, :NeuAuflage, 1995, :Seiten, :Preis); exec sql select ISBN, Auflage, Jahr, Preis into :ISBN, :Auflage, :Jahr, :Preis from Buch_Versionen where ISBN = :SuchISBN and Auflage = 1; VL Datenbanken I VL Datenbanken I 10 28

8 Datentransfer (II) Einsatz der Cursor-Technik Indikator-Variablen zum Test auf null-werte: exec sql select :ISBN, Auflage, Jahr, Preis into :ISBN, :Auflage, :Jahr, :Preis:PreisInd from Buch_Versionen where ISBN = :SuchISBN and Auflage = :SuchAuflage; exec sql open AktBuch; exec sql fetch AktBuch into :ISBN, :Titel, :Verlagsname; exec sql close AktBuch; exec sql delete from Bücher where current of AktBuch; VL Datenbanken I VL Datenbanken I Fehler- und Ausnahmebehandlung Transaktionssteuerung SQL Communication Area exec sql include sqlca; exec sql commit work; exec sql rollback work; whenever -Anweisung exec sql whenever <Bedingung> <Aktion>; not found: Kein Tupel wurde gefunden, definiert etwa als sqlcode = 100. sqlwarning: Warnung, entspricht etwa sqlcode > 0 sqlcode 100. sqlerror: Fehler, also sqlcode < 0. VL Datenbanken I VL Datenbanken I 10 32

9 Dynamische Einbettung: Dynamic SQL Dynamische Einbettung: Dynamic SQL exec sql begin declare section; AnfrageString char(256) varying; exec sql end declare section; exec sql declare AnfrageObjekt statement; AnfrageString := DELETE FROM Vorlesungen WHERE SWS < 2 ;... exec sql prepare AnfrageObjekt from :AnfrageString; exec sql execute AnfrageObjekt;... AnfrageString := DELETE FROM Buch_Versionen + WHERE ISBN =? AND Auflage =? ; exec sql prepare AnfrageObjekt from :AnfrageString; exec sql execute AnfrageObjekt using :LöschISBN, :LöschAuflage; Wertübergabe an Anfragen Anfragen als Zeichenketten VL Datenbanken I VL Datenbanken I SQLJ: Embedded SQL für Java SQLJ-Anweisungen Einbettung von SQL-Anweisungen in Java-Quelltext Vorübersetzung des erweiterten Quelltextes in echten Java-Code durch Translator sqlj Überprüfung der SQL-Anweisungen korrekte Syntax Übereinstimmung der Anweisungen mit DB-Schema Typkompatibilität der für Datenaustausch genutzten Variablen Nutzung von JDBC-Treibern Kennzeichnung durch #sql Deklarationen Klassendefinitionen für Iteratoren SQL-Anweisungen: Anfragen, DML- und DDL-Anweisungen #sql { SQL-Operation }; Beispiel: #sql { INSERT INTO buch VALUES ("Datenbanken", 59.00, "123456", "MITP") }; VL Datenbanken I VL Datenbanken I 10 36

10 Host-Variablen Iteratoren Variablen einer Host-Sprache (hier Java), die in SQL-Anweisungen auftreten können Verwendung: Austausch von Daten zwischen Host-Sprache und SQL Kennzeichnung durch ":variable" Beispiel: String titel, isbn = "123456"; #sql { SELECT titel INTO :titel FROM buch WHERE isbn = :isbn }; Implementierung des Cursor-Konzeptes 1. Deklaration des Iterators #sql public iterator BookIter (String titel, double preis); 2. Definition des Iteratorobjektes BookIter iter; 3. Ausführung der Anweisung #sql iter = { SELECT titel, preis FROM buch }; 4. Navigation while (iter.next ()) { System.out.println (iter.titel () + " "+ iter.preis ()); } VL Datenbanken I VL Datenbanken I Gespeicherte Prozeduren Vorteile Gespeicherter Prozeduren Probleme von CLI und Embedded SQL: ständiger Wechsel der Ausführungskontrolle zwischen Anwendung und DBS keine anweisungsübergreifende Optimierung notwendig Ausweg: gespeicherte Prozeduren im Datenbank-Server verwaltete und auch dort ausgeführte Software-Module in Form von Prozeduren bzw. Funktionen Aufruf aus Anwendungen und Anfragen heraus Strukturierungsmittel für größere Anwendungen Prozeduren nur vom DBMS abhängig und nicht von externen Programmiersprachen oder Betriebssystemumgebungen Optimierung der Prozeduren Ausführung der Prozeduren unter Kontrolle des DBMS zentrale Kontrolle der Prozeduren: redundanzfreie Darstellung relevanter Aspekte der Anwendungsfunktionalität Rechtevergabe für Prozeduren in der Integritätssicherung: Aktionsteil von Triggern VL Datenbanken I VL Datenbanken I 10 40

11 SQL/PSM: Der Standard SQL/PSM: Funktionen SQL-Standard für prozedurale Erweiterungen PSM: Persistent Stored Modules gespeicherte Module aus Prozeduren und Funktionen Einzelroutinen Einbindung externer Routinen (implementiert in C, Java,... ) syntaktische Konstrukte für Schleifen, Bedingungen etc. Funktionsdefinition create function dm_in_euro (float v) returns float begin return (v / ); end; Aufruf innerhalb einer Anfrage select Bezeichnung, dm_in_euro (Preis) from Produkt where dm_in_euro (Preis) < 100 Nutzung außerhalb von Anfragen set euro_preis = dm_in_euro (79.00); VL Datenbanken I VL Datenbanken I SQL/PSM: Prozeduren SQL/PSM: Zugriffscharakteristik Prozedurdefinition create procedure rechnungsbetrag ( in int nr, out float summe) begin select sum(p.preis bp.anzahl) into summe from Bestellposten bp, Produkt p where bp.bestnr = nr and bp.prodid = p.prodid; end; Nutzung über call-anweisung declare preis float; call rechnungsbetrag (42, preis); Eigenschaften von Prozeduren, die Anfrageausführung und -optimierung beeinflussen deterministic: Routine liefert für gleiche Parameter gleiche Ergebnisse no sql: Routine enthält keine SQL-Anweisungen contains sql:routine enthält SQL-Anweisungen (Standard für SQL-Routinen) reads sql data: Routine führt SQL-Anfragen (select-anweisungen) aus modifies sql data: Routine, die DML-Anweisungen (insert, update, delete) enthält VL Datenbanken I VL Datenbanken I 10 44

12 SQL/PSM: Ablaufkontrolle SQL/PSM: Ausnahmebehandlung Variablendeklaration declare name varchar(50); Zuweisung set var = 42; Bedingte Verzweigungen if <Bedingung> then <Anweisungen> [ else <Anweisungen> ] end if; Schleifen loop <Anweisungen> end loop while <Bedingung> do <Anweisungen> end while repeat <Anweisungen> until <Bedingung> end repeat Auslösen einer Ausnahme (Condition) signal <ConditionName>; Deklarieren von Ausnahmen declare yyy condition; Ausnahmebehandlung begin declare exit handler for <ConditionName> begin <Ausnahmebehandlung>; end <Anweisungen>; end VL Datenbanken I VL Datenbanken I PL/SQL von Oracle PL/SQL: Cursor prozedurale SQL-Erweiterung für Oracle Merkmale erweitertes Typsystem Package-Konzept Deklarationen declare Heute date; type PersonRecordType is record ( PersonName varchar (50), GebDatum date); Mitarbeiter PersonRecordType; cursor AktBuch is select ISBN, Titel, Verlagsname from Bücher; Zugriff auf Typinformation AktPersName Mitarbeiter.PersonName%type; BuchTupel AktBuch%rowtype; VL Datenbanken I VL Datenbanken I 10 48

13 Operationale Konstrukte Iteration über Tabellen if <Bedingung> then <PL/SQL-Anweisungen> [ else <PL/SQL-Anweisungen> ] end if; for <IndexVariable> in <EndlicherBereich> loop <PL/SQL-Anweisungen>; end loop; while <Bedingung> loop <PL/SQL-Anweisungen>; end loop; for BuchRec in AktBuch loop... end loop; entspricht declare BuchRec AktBuch%rowtype; begin loop fetch AktBuch into BuchRec; exit when AktBuch%notfound;... end loop; VL Datenbanken I VL Datenbanken I Fehlerbehandlung PL/SQL: Gespeicherte Prozeduren when Ausnahme then ProgrammStück; create function FunktionsName ( Param1 ParamTyp1,..., ParamN ParamTypN ) return ErgebnisTyp is /* PL/SQL - Block mit return-anweisung */ create procedure ProzedurName ( Param1 in ParamTyp1, ( Param2 out ParamTyp2, ( Param3 in out ParamTyp3,... ) is /* PL/SQL - Block mit Zuweisungen an out-parameter */ VL Datenbanken I VL Datenbanken I 10 52

14 Weitere Prozedurale SQL-Erweiterungen Web-Anbindung von Datenbanken IBM DB2: SQL/PSM Informix: SPL Sybase, Microsoft SQL Server: Transact-SQL externe Routinen: implementiert in C, Java,... Begriffe und Techniken Anwendungsszenarien Kopplungstechniken Zustandsrealisierung VL Datenbanken I VL Datenbanken I Begriffe Uniform Resource Locator Hypertext-Dokumente (HTML) mit Verweisen (Links) auf andere Objekte (Dokumente, Multimedia-Objekte) Von Web-Servern bereitgestellt Links: durch URL spezifiziert Web-Datei: einzelne Datei (mit einem HTTP-Request) Web-Seite: Menge von Web-Dateien (eine Nutzeraktion) Web-Site: Menge von Web-Seiten (ein Server) Adresse einer Ressource im Web Format: <schema>:<schema spezifikation> <schema> Protokoll (http, news, mailto, telnet) Für HTTP Vollständig: Relativ: <path>/<filename> Verweis in Dokument:... <path>/<filename>#<anchor > Funktionsaufruf:... <path>/<procname>?<params> VL Datenbanken I VL Datenbanken I 10 56

15 HTTP HTTP: Beispiel Einfaches Protokoll zum Datenaustausch auf Basis von TCP/IP Zustandsloses Protokoll: jede Anforderung ist unabhängig von allen anderen Methoden/Kommandos: GET: Holen einer Web-Seite HEAD: Holen der Header-Informationen POST: Senden von Daten (Bytestrom) zum Server Anforderung an GET /index.html HTTP/1.0 Antwort: HTTP/ OK Server: Microsoft-IIS/4.0 Date: Fri, 02 Feb :51:09 GMT Content-Type: text/html Accept-Ranges: bytes Last-Modified: Thu, 01 Feb :33:35 GMT ETag: " cc01:441e" Content-Length: <html> <head>... VL Datenbanken I VL Datenbanken I MIME HTML Multipurpose Internet Mail Extensions Spezifikation von Inhaltstypen von s, Web-Dokumenten Form <typ>/<subtyp> Wird als Antwort auf ein HTTP-GET vor dem Dokument geliefert (Content-Type) Typen: text, image, audio, video, application Bsp.: text/html, image/gif, application/postscript Hypertext Markup Language (Tim Berners-Lee, CERN 1990) Auszeichnungssprache des Web erfordert Browser zur Präsentation Schwerpunkte strukturelle Bestandteile eines Dokumentes (Absätze, Überschriften, Listen usw.) Hypertext-Sprache: Verweise auf andere Dokumente, die vom Benutzer verfolgt werden können Weitere Elemente Interaktive Elemente (Formulare) Multimedia-Inhalte VL Datenbanken I VL Datenbanken I 10 60

16 Interaktion mit HTML HTML: Formulare Formular: Gruppe von Eingabemöglichkeiten Zurücksenden von Informationen an Web-Server erfordert interaktive Elemente (Textfelder, Schalter,...) serverseitigen Mechanismus zur Verarbeitung Kommunikation zwischen Browser und Server (HTTP) Schnittstelle zwischen Server und Verarbeitungsmechanismus (CGI) <form method=post action=" Produkt: <input type="text" name="prodname"><br> Preis: <input type="text" name="prodpreis"><br> <input type="submit"> <input type="reset"> </form> VL Datenbanken I VL Datenbanken I Anwendungsszenarien Web-Dienst mit Schnittstelle zum DBS Web-Dienst als Informationssystem: Sammlung von statischen Web-Seiten Web-Dienst als Verteilungsmechanismus für Anwendungsfunktionen: Java-Applets Web-Dienst mit Schnittstelle zum Datenbanksystem: Generierung von Web-Seiten aus DB-Inhalten Web-Seiten im Datenbanksystem: LOBs bzw. eigene Datentypen für Speicherung von Seiten im DBS Komplette Web-Strukturen im Datenbanksystemen: Speicherung von Web-Strukturen (inkl. Links) HTML CGI select-from-where WWW-Browser Internet / HTTP WWW-Server HTML HTML CGI DBMS select-from-where VL Datenbanken I VL Datenbanken I 10 64

17 Web-Seiten im DBS Komplette Web-Strukturen im DBS WWW-Browser WWW-Browser Internet / HTTP Internet / HTTP WWW-Server WWW-Server DBMS ODBMS HTML HTML + VL Datenbanken I VL Datenbanken I Aufgaben und Anforderungen Common Gateway Interface (CGI) Aufruf externer Programme mit Datenbankoperationen Parameterübergabe Client Server DB-Programm dynamische Generierung von Web-Dokumenten mit Ergebnissen von DB-Operationen Realisierung von Zuständen (Sitzungen, Transaktionen) CGI: ursprüngliche Schnittstelle zwischen Web-Server und Programm zur Anbindung externer Quellen Gateway: Umformung einer Informationsquelle in ein Web-Dokument Programm/Skript zur Bearbeitung einer Dokumentenanforderung, das HTML-Text, eine URL oder andere Daten liefert in beliebiger Sprache implementiert ist VL Datenbanken I VL Datenbanken I 10 68

18 CGI: Prinzip Parameterübergabe Web-Browser (1) Anfrage (5) HTML (4) HTML Web-Server (2) CGI (3) CGI-Programm Übergabe von Parametern an CGI-Programme durch Browser z.b. Inhalte von Formularelementen Methoden GET: durch Anhängen an URL für wenige Parameter geeignet (Längenbegrenzung) kann direkt mit URL angegeben werden Parameter für Nutzer sichtbar POST: über Standardeingabe des CGI-Programms für Nutzer nicht sichtbar Parameter nicht Teil der URL VL Datenbanken I VL Datenbanken I GET-Methode POST-Methode Parameteraufbau Trennung von URL durch? Trennzeichen & Ersetzung von Leerzeichen durch + Umlaute durch Escape-Notation %hexwert Beispiel: Parameter: feld1: "Eins" feld2: "Zwei Drei" URL: Parameteraufbau wie bei GET-Methode Übergabe als Standardeingabe unbegrenzte Länge geeignet für große Datenmengen Beispiel (Eingabedatei): feld1=eins&feld2=zwei+drei VL Datenbanken I VL Datenbanken I 10 72

19 Kommunikation Kommunikation CGI-Programm Web-Server Erzeugung eines HTML-Dokumentes und Senden zur Standardausgabe HTML-Dokument muß Content Type enthalten Aufbau: Content-Type: text/html Leerzeile!!!! <html>... </html> Umlenkung durch Senden einer neuen URL Location: URL Leerzeile!!!! Web-Server CGI-Programm Umgebungsvariablen, die vor Ausführung des Programms vom Server initialisiert werden Variable Bedeutung + Beispiel REQUEST_METHOD Request-Methode: GET REQUEST_HOST Host des Browsers: REMOTE_USER Benutzername (nur bei Authentisierung) QUERY_STRING Anfrageparameter: p1=12&p2=abc CONTENT_LENGTH Länge der Anfrageparameter: 20 CONTENT_TYPE Format der Anfrageparameter: application/x-www-form-urlencoded VL Datenbanken I VL Datenbanken I CGI: Beispiel Weiterentwicklungen Bourne-Shell-Programm #!/bin/sh echo "Content-Type: text/html" echo "" echo "<html><body>zugriff um = " date echo " von: " echo $REMOTE_HOST echo " mit Parametern: " echo $QUERY_STRING echo "</body></html>" Probleme des CGI Performance: jeder Aufruf = Start eines neuen Prozesses Aufbau einer neuen DB-Verbindung Programm läuft unter UID des Web-Servers FastCGI persistente Prozesse Interprozeßkommunikation zwischen Server und FastCGI-Prozeß Server-Erweiterungen Erweiterung als Programmbibliothek, die zum Server dynamisch gebunden wird (NSAPI, ISAPI) VL Datenbanken I VL Datenbanken I 10 76

20 Java Servlets Java Servlets: Schnittstelle Servlet = Java-Objekt, das im Kontext eines Web-Servers abläuft Alternative zu CGI verarbeitet Dokumentanforderungen liefert Dokumente als Ergebnis Unterstützung von Cookies Session-Management Ablauf direkt im Server (Java-WebServer) in separatem Prozeß (Servlet-Engines) interface javax.servlet.servlet void init (ServletConfig config) Initialisierung des Servlets (z.b. Öffnen benötigter Dateien, Öffnen einer Datenbank-Verbindung,... ) void destroy () Aufräumarbeiten (z.b. DB-Verbindung schließen, Daten speichern) void service (ServletRequest req, ServletResponse res) Bearbeitung der Anfrage (Parameterabfrage, Ergebnisgenerierung) VL Datenbanken I VL Datenbanken I Beispiel-Servlet Einbettung public class HelloServlet extends javax.servlet.genericservlet { // Bearbeitung der Anforderung public void service (ServletRequest req, ServletResponse res) throws ServletException, IOException { // MIME-Typ des Antwortdokuments res.setcontenttype ("text/html"); // Ausgabestrom ServletOutputStream out = res.getoutputstream (); out.println ("Hello World!"); } } Einbettung von Kommandos (z.b. Datenbankoperationen) in HTML-Dokument Skriptsprachen wie Perl, Visual Basic, PHP,... Kennzeichnung durch spezielle Tags (z.b. <%... %>) Verarbeitung Parsen des Dokumentes vor Auslieferung Intepretieren der Kommandos in Tags Ersetzen durch Ergebnis der Ausführung VL Datenbanken I VL Datenbanken I 10 80

21 Einbettung: Prinzip Einbettung mit PHP <html> <body> <? query_db ()?> </body> </html> Skript- Interpreter <html> <body> <table> <tr>... </tr> </table> </body> </html> PHP: Skriptsprache für server-seitige Einbettung in HTML Features C-ähnliche Syntax, objektorientierte Konzepte einfache Verarbeitung von Dokumentanforderung dynamische Generierung von HTML-Dokumenten Schnittstellen zu vielen Systemfunktionen und DBMS Prinzip <html><body> <?php echo "Hello World!"?> </body></html> VL Datenbanken I VL Datenbanken I Einbettung mit PHP PHP-Beispiel: Formular Einbindung externer Dateien (z.b. HTML-Vorlagen) require dateiname Einfügen des Inhaltes include dateiname Einfügen und Auswerten Verarbeitung von Formularen Auswertung der Umgebungsvariablen durch PHP-Interpreter Zugriff auf Werte der Felder: Variablen mit Elementnamen Beispiel: HTML: <input type="text" name="var" > PHP: $var <form method=post action="/path/query.php3"> <input type="text" name="autor"> <input type="submit"> </form> VL Datenbanken I VL Datenbanken I 10 84

22 PHP-Beispiel: PHP-Skript Java Server Pages <html><body> <table border=1> <tr><th>autor</th><th>titel</th><th>preis</th></tr> <?php if (isset($author)) { $query = "SELECT autor, titel, preis FROM ". "buch WHERE autor like= %$author% "; mysql_connect ($host, $user, $passwd); mysql_select_db ("my_db"); $result = mysql_query ($query); while ($row = mysql_fetch_row ($result)) { echo "<tr><td>$row[0]</td><td>$row[1]</td>"; echo "<td>$row[2]</td></tr>"; } }?> </table></body></html> Java-Quelltext in HTML Integration von Java-Komponenten (Beans) Prinzip basierend auf Servlets Compilieren des eingebetteten Codes: Generierung eines Servlet bei wiederholter Anforderung: Nutzung des compilierten Servlets Vorteil: Performance VL Datenbanken I VL Datenbanken I Java Server Pages JSP: Syntax Zugriff auf vollständigen Java-Sprachumfang implizite Objekte (Requests, Sessions) Server-Page Übersetzungseinheit: HTML + Scriptlets (eingebetteter Java-Code) + eingebundene Dateien (über include-direktive) Markierung in HTML-Seite <%...%> Include-Direktiven <%@ include file="relativeurl" %> Deklarationen (Variablen, Methoden) <%! String printmessage (String s) { return "ERROR: " + s; } %> <%! int var = 0; %> Expressions (Ausdrücke): Einfügen von Werten <%= output %> <%= Math.sqrt (2) %> VL Datenbanken I VL Datenbanken I 10 88

23 Makroprogrammierung Internet Database Connector (IDC) HTML-Schablone <html> <body> <% Makro %> </body> </html> Makro SELECT * FROM tabelle Makro- Prozessor <html> <body> <table> <tr>... </tr> </table> </body> </html> Einfache Erweiterung für MS Internet Information Server auf Basis von ODBC stark eingeschränkte Skriptsprache kaum Anwendungslogik implementierbar wenig Kontrolle über Ausgabe einfach anwendbar Prinzip idc-datei mit DB-Operationen htx-datei mit HTML-Templates VL Datenbanken I VL Datenbanken I IDC: Aufbau der idc-datei IDC: Aufbau der htx-datei beinhaltet ODBC-Datenquelle (Datasource) Verweis auf HTML-Template (Template) Anfragen (SQLStatement) SQLStatement mit Anfrageparametern (Wert eines Formularelementes) SQLStatement: + SELECT autor, titel, preis + FROM buch + WHERE autor=<%autor%>; Vorlage für HTML-Seiten mit Anfrageergebnissen bestehend aus Kopf-, Fußbereich (unabhängig vom Ergebnis) Detailbereich (in Abhängigkeit vom Ergebnis: Wiederholung für jedes Ergebnistupel) Kennzeichnung des Detailbereiches <%begindetail%> <%enddetail%> Kennzeichnung der Ergebnisdaten <%attribut%> VL Datenbanken I VL Datenbanken I 10 92

24 IDC: Aufbau der htx-datei IDC: Kontrollstrukturen Beispiel: <table border=1> <tr><th>autor</th><th>titel</th> <th>preis</th></tr> <%begindetail%> <tr><td><%autor%></td> <td><%titel%></td> <td><%preis%></td> </tr> <%enddetail%> </table> Unterstützung bedingter Ausführung durch if...else...endif spezielle Tags: <%if bedingung %> HTML [ <%else%> HTML ] <%endif%> Bedingungen mit Operatoren EQ, LT, GT, CONTAINS Variablen: Ergebnisdaten, Servervariablen, spezielle Variablen (CurrentRecord, MaxRecords) VL Datenbanken I VL Datenbanken I IDC: Aufruf Vergleich und Bewertung Aufruf der IDC-Skripte wie CGI-Programme als URL im ACTION-Attribut eines Formulars <form method=post action="/shop/query.idc">... <input type="text" name="autor"> <input type="submit> </form> Programmierschnittstellen Vorteile Performance Codegröße Optimierbarkeit für konkrete Anforderungen Nachteile unflexibel (u.u. Neuübersetzung bei Änderungen) Aufwand: neues Programm für jedes Problem Generierung von HTML Performance bei CGI VL Datenbanken I VL Datenbanken I 10 96

25 Vergleich und Bewertung Vergleich und Bewertung Einbettung Vorteile Lesbarkeit durch Plazierung von SQL-Anweisungen an die spätere Position der Daten Erstellung und Wartung mit HTML-Wekzeugen möglich eine gemeinsame Datei Nachteile bei größeren Projekten unübersichtlich durch Mischung von HTML und SQL Performanceprobleme durch Parsen und Interpretieren von eingebetteten Anweisungen Makroprogrammierung Vorteile Bearbeitung von HTML-Dateien mit HTML-Werkzeugen möglich übersichtliche Spezifikation aller SQL-Anfragen Wiederverwendbarkeit von Anfragen und HTML-Templates schnelleres Parsen durch kleinere Dateien Nachteile schlechte Überschaubarkeit durch Verteilung auf mehrere Dateien mehrere Dateizugriffe notwendig VL Datenbanken I VL Datenbanken I Realisierung von Zuständen Realisierung von Zuständen Problem: Zustandslosigkeit von HTTP im Normalfall: Anforderung = 1. Aufbau der DB-Verbindung 2. Ausführung der Anfrage 3. Abbruch der Verbindung keine Sitzung mit mehreren Verarbeitungsschritten möglich (Transaktionskonzept) potentiell paralleler Zugriff vieler Nutzer Aufgabe: server-seitige Speicherung des Kontextes (Zustandes) des Clients Session-ID Verfahren: URL-Kodierung Formularvariable Cookies HTTP-Authentisierung notwendig: Timeout-Mechanismen für Sitzungsende und Freigabe belegter Ressourcen VL Datenbanken I VL Datenbanken I

26 URL-Kodierung Formularvariable Übergabe der Session-ID als Teil der URL explizite Kodierung als Parameter (GET-Request) Beispiel: server-seitige Behandlung wie Formularvariable Kodierung in Pfad Beispiel: bei relativer Adressierung kein weiterer Aufwand zur Generierung Vorteil: Browser-unabhängig Problem: Initialisierung Speichern der Session-ID in einem (versteckten) Formularelement <input type="hidden" name="session" value="42"> Übergabe des Wertes mit HTTP-Request (GET, POST) Sitzungsmanagement Auslesen des Feldwertes Erzeugen eines neuen Feldes mit aktuellem Wert für Folgeseiten Vorteil: Browser-unabhängig Probleme: Im HTML-Quelltext sichtbar, dynamische Generierung der Folgeseiten notwendig VL Datenbanken I VL Datenbanken I Cookies Cookies Metainformation zu Web-Dokumenten Einbettung in HTTP-Header bei Übertragung des Dokumentes zum Browser Aufbau: Set-Cookie: Name=Wert; expires=datum; path=pfad; domain=domäne Name, Wert des Cookies Gültigkeit Zeit: Datum Web-Server/Bereich: Pfad, Domäne Beispiel Set-Cookie: CustId="42"; Path="/bookshop" Cookies werden vom Browser persistent gehalten (bis zum Verfallszeitpunkt) bei Anforderung eines Dokumentes aus dem jeweiligen Bereich zum Server übertragen Cookie: CustId=42 Vorteil: automatische Unterstützung durch Browser Problem: abschaltbar durch Nutzer VL Datenbanken I VL Datenbanken I

27 Cookies mit PHP HTTP-Authentisierung Setzen eines Cookies int setcookie (string name, string value, int expire, string path, string domain, int secure); Beispiel: setcookie ("CustId", "42", time () , "/bookshop"); Lesen eines gesendeten Cookies: Cookie wird als Variable übergeben $CustId Nutzung der Authentisierungsmechanismen von HTTP Nutzer/Paßwort-Abfrage durch Browser Speichern der Nutzerinformation in der Umgebungsvariablen REMOTE_USER automatische Übermittlung durch Browser nach erfolgreicher Anmeldung Problem: erfordert vorherige Registrierung VL Datenbanken I VL Datenbanken I

10. Anwendungsprogrammierung. Client-Server-Architektur

10. Anwendungsprogrammierung. Client-Server-Architektur 10. Anwendungsprogrammierung Client-Server-Architektur Anbindung von Programmiersprachen Call-Level-Schnittstellen: SQL/CLI, JDBC Einbettung: Embedded SQL, SQLJ Gespeicherte Prozeduren Prozedurale Erweiterungen:

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

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

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

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

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

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

Mehr

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

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

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

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

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

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

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

Willkommen. Datenbanken und Anbindung

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

Mehr

Dynamische Webseiten mit PHP. Oder: LAMP - The open way

Dynamische Webseiten mit PHP. Oder: LAMP - The open way Dynamische Webseiten mit PHP Oder: LAMP - The open way Verbreitung Neben ASP verbreitetste Web-Scripting-Umgebung LAMP (Linux, Apache, mysql, PHP): freie Alternative zu M$ Überblick Dynamische Webseiten

Mehr

Kopplungstechniken und Zugriffsschnittstellen. Aufgaben und Anfordeungen. Common Gateway Interface (CGI)

Kopplungstechniken und Zugriffsschnittstellen. Aufgaben und Anfordeungen. Common Gateway Interface (CGI) Kopplungstechniken und Zugriffsschnittstellen ƒ Aufgaben und Anforderungen ƒ Techniken Gateways, Programmierschnittstellen: CGI Einbettung, HTML/SQL-Integration: PHP, ASP Makroprogrammierung: IDC Vergleich

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

Kapitel 11: Anwendungsentwicklung

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

Mehr

Kapitel DB:VI (Fortsetzung)

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

Mehr

Datenbanksysteme I Ü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

Teil VIII. Weitere Datenbanksprachen

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

Mehr

Perl-Praxis. CGI-Skripte. Madis Rumming, Jan Krüger.

Perl-Praxis. CGI-Skripte. Madis Rumming, Jan Krüger. Perl-Praxis CGI-Skripte Madis Rumming, Jan Krüger {mrumming,jkrueger}@cebitec.uni-bielefeld.de Übersicht WWW, Web-Server CGI-Skripte Parameterübergabe Web-Formulare CGI.pm Perl-Praxis CGI-Skripte 2/16

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

Datenbanken. Autor Rainer Colgen (0171)

Datenbanken. Autor Rainer Colgen (0171) Autor Rainer Colgen (0171)8004088 - 2 - Inhaltsübersicht 1...3 2. SQL IN ENTWICKLUNGSUMGEBUNGEN...3 1. 2.1 EMBEDDED SQL...3 2.1.1 Einführung...3 2.1.2 Präprozessor...3 2.1.3 Statisches SQL...4 2.1.4 Dynamisches

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

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

2 Anlegen und Konfigurieren von Datenbanken 35

2 Anlegen und Konfigurieren von Datenbanken 35 Inhalt 1 Einführung und Installation 9 1.1 Einführung 11 1.1.1 Aufbau 11 1.1.2 Schreibkonventionen 12 1.1.3 Zur Beispieldatenbank 13 1.1.4 Kurz-Installation 19 1.2 Die Oracle-Installation 20 1.3 Die Installation

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

Datenbank-Anwendungsprogrammierung

Datenbank-Anwendungsprogrammierung Datenbank-Anwendungsprogrammierung Navigierende Ansätze Anbindung von SQL Weitere Ansätze Andreas Heuer, Gunter Saake Datenbanken I 11-1 Datenmanipulation im Netzwerkmodell User Working Area UWA User Working

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

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

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

Mehr

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

PHP. Prof. Dr.-Ing. Wolfgang Lehner. Diese Zeile ersetzt man über: Einfügen > Kopf- und

PHP. Prof. Dr.-Ing. Wolfgang Lehner. Diese Zeile ersetzt man über: Einfügen > Kopf- und 8. PHP Prof. Dr.-Ing. Wolfgang Lehner Diese Zeile ersetzt man über: Einfügen > Kopf- und PHP PHP (Hypertext Preprocessor) Serverseitige Skriptsprache (im Gegensatz zu JavaScript) Hauptanwendungsgebiet:

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

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

Prozedurale SQL-Erweiterungen

Prozedurale SQL-Erweiterungen Prozedurale SQL-Erweiterungen Prozedurale SQL-Erweiterungen unterscheiden sich typischerweise durch die folgenden Punkte von dem Ansatz der Einbettung: Neue dedizierte Sprache mit direkter Integration

Mehr

Oracle & Java HOW TO

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

Mehr

Java zur Realisierung von Internetanwendungen

Java zur Realisierung von Internetanwendungen Java zur Realisierung von Internetanwendungen Elementare Web-Programmierung Prof. Dr. Bernhard Schiefer HTTP Web-Browser Web-Browser GET http://www.zw.fh-kl.de/beispiel.htm beispiel

Mehr

Java - Webapplikationen

Java - Webapplikationen Java - Webapplikationen Bestandteile (HTTP,, JSP) Aufbau (Model View Controller) Datenverwaltung (Java Beans, Sessions) Entwicklung (Projektstruktur, Sysdeoplugin für Eclipse) 17. Januar 2006 Jan Hatje

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

Perl-Praxis. CGI-Skripte. Jörn Clausen Jens Reeder, Jan Krüger

Perl-Praxis. CGI-Skripte. Jörn Clausen Jens Reeder, Jan Krüger Perl-Praxis CGI-Skripte Jörn Clausen Jens Reeder, Jan Krüger {jreeder,jkrueger}@techfak.uni-bielefeld.de Übersicht WWW, Web-Server CGI-Skripte Parameterübergabe Web-Formulare CGI.pm Perl-Praxis CGI-Skripte

Mehr

DB-Anwendungsprogrammierung

DB-Anwendungsprogrammierung Hauptaufgabe: Abbildung der unterschiedlichen Datenmodelle und Zugriffsparadigmen zwischen Programmiersprache und dem DBMS, z.b. C++ Basisdatentypen und flexible Typkonstruktoren wie Strukturen und Klassen

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

Kapitel 4 Dynamisches SQL

Kapitel 4 Dynamisches SQL Kapitel 4 Dynamisches SQL Flien zum Datenbankpraktikum Wintersemester 2012/13 LMU München 2008 Thmas Bernecker, Tbias Emrich 2010 Tbias Emrich, Erich Schubert unter Verwendung der Flien des Datenbankpraktikums

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

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

Web-basierte Anwendungssysteme PHP Teil 2

Web-basierte Anwendungssysteme PHP Teil 2 Web-basierte Anwendungssysteme PHP Teil 2 Prof. Dr. Armin Lehmann (lehmann@e-technik.org) Fachbereich 2 Informatik und Ingenieurwissenschaften Wissen durch Praxis stärkt Seite 1 Prof. Dr. Armin Lehmann

Mehr

JDBC. Java DataBase Connectivity

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

Mehr

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

Servlet-zentrierte Architektur von Web-Anwendungen mit Java Servlets, Java Server Pages (JSPs) und Java Beans

Servlet-zentrierte Architektur von Web-Anwendungen mit Java Servlets, Java Server Pages (JSPs) und Java Beans Projekt Entwicklung verteilter Softwaresysteme mit Web Services SoSe 2008 - Java Server Pages und Servlets - 7. April 2008 Verteilte Systeme und Informationssysteme (VSIS) Department Informatik Universität

Mehr

10. Programmieren in SQL

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

Mehr

Praktikum Datenbanken und verteilte Systeme SS Java Server Pages und Servlets -

Praktikum Datenbanken und verteilte Systeme SS Java Server Pages und Servlets - Praktikum Datenbanken und verteilte Systeme SS 2008 - Java Server Pages und Servlets - Verteilte Systeme und Informationssysteme (VSIS) Department Informatik Universität Hamburg Infrastruktur vsispoolx

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

Dynamik bis zur DB-Interaktion. Marc Schanne. CGI Möglichkeiten

Dynamik bis zur DB-Interaktion. Marc Schanne. CGI Möglichkeiten CGI einfach PHP Dynamik bis zur DB-Interaktion 1 CGI Möglichkeiten Das Common Gateway Interface (CGI) ermöglicht den Entwurf von interaktiven, benutzergesteuerten Web-Applikationen. Der WWW-Server ruft

Mehr

Perl-Praxis. CGI-Skripte. Jörn Clausen

Perl-Praxis. CGI-Skripte. Jörn Clausen Perl-Praxis CGI-Skripte Jörn Clausen joern@techfak.uni-bielefeld.de Übersicht WWW, Web-Server CGI-Skripte Parameterübergabe Web-Formulare CGI.pm Perl-Praxis CGI-Skripte 2/22 Datenaustausch im WWW Request

Mehr

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

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

Mehr

Klausur Datenbanken II

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

Mehr

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

J a v a S e r v l e t s

J a v a S e r v l e t s J a v a S e r v l e t s Eine Einführung (C) J.M.Joller 1 Inhalt Mitgelieferte Bibliothekselemente Überblick Funktionsweise und Architektur Interaktion Resümee (C) J.M.Joller 2 Überblick Was sind Servlets?

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

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

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

Mehr

Grundlagen Internet-Technologien INF3171

Grundlagen Internet-Technologien INF3171 Fachbereich Informatik Informationsdienste Grundlagen Internet-Technologien INF3171 Cookies & Sessions Version 1.0 20.06.2016 aktuelles 2 Erweiterungen wir betrachten zwei Erweiterungen: Personalisierung

Mehr

Abbildung 6-8: Abfolge beim doppelten Abschicken von Formularen

Abbildung 6-8: Abfolge beim doppelten Abschicken von Formularen HACK #55 Hack Doppeltes Abschicken von Formularen verhindern Durch die Verwendung einer Transaktionstabelle in Ihrer Datenbank können Sie das klassische Problem der doppelt abgeschickten Formulare verhindern.

Mehr

Kapitel 4 Dynamisches SQL

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

Mehr

Entwicklungsumgebung für die Laborübung

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

Mehr

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

Internetanbindung von Datenbanken

Internetanbindung von Datenbanken Internetanbindung von Datenbanken http://galahad.informatik.fh-kl.de/~miesel/index.html PHP -1 Gliederung Einführung PHP3 Datenbankanbindung mit PHP3 Sicherheitsprobleme Realisierung mit PHP3 Probleme

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

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

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

2. Web-Anbindung von Datenbanken

2. Web-Anbindung von Datenbanken 2. Web-Anbindung von Datenbanken Einführung: Architekturvarianten für Web-Informationssysteme Client-seitige DB-Zugriffe Server-seitige DB-Anbindung - CGI-Kopplung - Servlets - Java Server Pages (JSP)

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

PPS-Design einer eigenen WWW-Homepage WS 2002/2003. Anforderungen an eine Webseite

PPS-Design einer eigenen WWW-Homepage WS 2002/2003. Anforderungen an eine Webseite PPS-Design einer eigenen WWW- Praxis III - 06.12.2002: CGI Scripts und Forms David Hausheer (hausheer@tik.ee.ethz.ch) Anforderungen an eine Webseite 1. Navigationsmechanismen Mehrere HTML Seiten sollen

Mehr

Internet-Datenbanken. Grundlagen des WWW. Web-Anbindung von Datenbanken XML HTML HTTP. Servlets JSP JDBC

Internet-Datenbanken. Grundlagen des WWW. Web-Anbindung von Datenbanken XML HTML HTTP. Servlets JSP JDBC Internet-Datenbanken Grundlagen des WWW HTML HTTP Web-Anbindung von Datenbanken Servlets JSP JDBC XML Datenmodell Schemabeschreibungssprachen Anfragesprachen Literatur: Kapitel 18 aus... HTML-Grundlagen

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

Datenbanksysteme I Datenbankprogrammierung. 19.12.2007 Felix Naumann

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

Mehr

Multimedia im Netz Wintersemester 2013/14. Übung 02 (Hauptfach)

Multimedia im Netz Wintersemester 2013/14. Übung 02 (Hauptfach) Multimedia im Netz Wintersemester 2013/14 Übung 02 (Hauptfach) Ludwig-Maximilians-Universität München Multimedia im Netz WS 2013/14 - Übung 2-1 PHP und MySQL Es werden mehrere APIs von PHP angeboten um

Mehr

Architekturen. DB-Anwendungen: Aufgaben. Aufteilung der Funktionen. ƒ Datenbankanwendungen

Architekturen. DB-Anwendungen: Aufgaben. Aufteilung der Funktionen. ƒ Datenbankanwendungen Architekturen ƒ Datenbankanwendungen Aufgaben und Komponenten Aufteilung ƒ Architektur Web-basierter Anwendungen HTTP-basierte Architekturen Applet-basierte Architekturen Vorlesung Internet-Datenbanken

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

2. Interaktive Web Seiten. action in Formularen. Formular. Superglobale Variablen $ POST, $ GET und $ REQUEST. GET und POST

2. Interaktive Web Seiten. action in Formularen. Formular. Superglobale Variablen $ POST, $ GET und $ REQUEST. GET und POST 2. Interaktive Web Seiten GET und POST Die Übertragungsmethoden GET und POST sind im http Protokoll definiert: POST: gibt an, dass sich weitere Daten im Körper der übertragenen Nachricht befinden: z.b.

Mehr

JSP, Tomcat, JDBC. Agenda. Übung Informationsintegration 3.5.2004. JSP & Tomcat JDBC. l Syntax. l Implizite Objekte. l Direktiven

JSP, Tomcat, JDBC. Agenda. Übung Informationsintegration 3.5.2004. JSP & Tomcat JDBC. l Syntax. l Implizite Objekte. l Direktiven JSP, Tomcat, JDBC Übung Informationsintegration 03.05.2004 Agenda JSP & Tomcat Syntax Impizite Objekte Direktiven JDBC 2 Java Server Pages - JSP Was ist eine JSP? Bietet die Mögichkeit, dynamischen Inhat

Mehr

PHP- Umgang mit Datenbanken (1)

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

Mehr

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

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

Mehr

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

Web 2.0 Software-Architekturen

Web 2.0 Software-Architekturen Web 2.0 Software-Architekturen Servlets als Controller einer MVC Web Architektur Prof. Dr. Nikolaus Wulff HTTP und HTML Das HyperText TransferProtokoll (HTTP) beschreibt eine einfache verbindungslose Kommunikation,

Mehr

2. WWW-Protokolle und -Formate

2. WWW-Protokolle und -Formate 2. WWW-Protokolle und -Formate Inhalt: HTTP, allgemeiner syntaktischer Aufbau Wichtige Methoden des HTTP-Protokolls Aufbau von Web-Applikationen unter Nutzung von HTTP, HTML, DOM XML, XML-DTD und XML-Schema

Mehr

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

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

Mehr

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 2011

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

Mehr

Multimedia im Netz Wintersemester 2013/14. Übung 10 (Nebenfach)

Multimedia im Netz Wintersemester 2013/14. Übung 10 (Nebenfach) Multimedia im Netz Wintersemester 2013/14 Übung 10 (Nebenfach) Ludwig-Maximilians-Universität München Multimedia im Netz WS 2012/13 - Übung 10-1 Erinnerung: Anmeldung zur Klausur Die Anmeldung zur Klausur

Mehr

Inhalt. Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle. Daten und Tabellen - ein Beispiel. Daten und Tabellen - Normalisierung

Inhalt. Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle. Daten und Tabellen - ein Beispiel. Daten und Tabellen - Normalisierung Inhalt Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle Daten und Tabellen Normalisierung, Beziehungen, Datenmodell SQL - Structured Query Language Anlegen von Tabellen Datentypen (Spalten,

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

Explizite Cursor. Cursor. Steuerung des expliziten Cursors. Explizite Cursor Funktionen

Explizite Cursor. Cursor. Steuerung des expliziten Cursors. Explizite Cursor Funktionen Explizite Jedes SQL Statement, das der Oracle Server ausführt, hat einen individuellen, der verbunden ist mit: Implizitem : Declariert für alle DML-Statements und PL/SQL SELECT Statements. Explizitem :

Mehr

Programmieren von Webinformationssystemen

Programmieren von Webinformationssystemen Programmieren von Webinformationssystemen Wolfgang Gassler Databases and Information Systems (DBIS) Institute of Computer Science University of Innsbruck dbis-informatik.uibk.ac.at 1 HTML Hypertext Markup

Mehr

Java Server Pages (JSP)

Java Server Pages (JSP) Überblick über Internet-Technologien Server-Technologien Datenbankkopplung Servlets JSP PHP CGI XML+XSL Dokumentsprachen Client-PGM ruft DB-Server Web-Server ruft Datenbankserver HTML+Javascript HTML+Applets

Mehr

Python CGI-Skripte erstellen

Python CGI-Skripte erstellen Python CGI-Skripte erstellen CGI (Common Gateway Interface)... ist eine Schnittstelle, um Scripte im Web bereitzustellen. ist eine Schnittstelle zwischen einem HTTP-Server und ausführbaren Programmen.

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

JSP Direktiven. Präprozessor-Anweisungen, die in die JSP-Datei eingebettet sind und vor dem eigentlichen Übersetzungsvorgang ausgeführt JSP

JSP Direktiven. Präprozessor-Anweisungen, die in die JSP-Datei eingebettet sind und vor dem eigentlichen Übersetzungsvorgang ausgeführt JSP JSP Direktiven Präprozessor-Anweisungen, die in die JSP-Datei eingebettet sind und vor dem eigentlichen Übersetzungsvorgang ausgeführt werden JSP Vorverarbeitung JSP* entfernt / ersetzt Direktiven sammelt

Mehr

RELATIONONALE DATENBANKEN MIT JDBC

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

Mehr