Ziele. Transaktionen. Universität Duisburg-Essen Informationssysteme Prof. Dr.-Ing. N. Fuhr

Größe: px
Ab Seite anzeigen:

Download "Ziele. Transaktionen. Universität Duisburg-Essen Informationssysteme Prof. Dr.-Ing. N. Fuhr"

Transkript

1 Betreuer: Sascha Kriewel, Andreas Tacke Raum: LF 230 Bearbeitung: 1. Woche: Januar Woche: Januar Woche: Februar 2009 Präsenzaufgaben: Abnahme bis 13. Februar 2009, Abgabe des Quellcodes als Zip- Datei mindestens zwei Tage vorher Datum Team (Account) Aktuelle Informationen, Ansprechpartner und Material unter: Ziele In den folgenden drei Wochen soll die Datenbank aus einer Programmiersprache heraus angesprochen werden. Mit Hilfe von HTML und PHP wird eine einfache Benutzeroberäche erstellt. Gegebenenfalls ist die Datenbank mit zusätzlichen Daten zu füllen, um alle Funktionalitäten der Anwendung sinnvoll zu testen. Transaktionen Als neues Konzept sollen in dieser Woche zusätzlich Transaktionen betrachtet werden. Eine Transaktion ist eine Zusammenfassung von Datenbank-Operationen, im Extremfall von genau einer Operation. Transaktionen in Datenbanken sind charakterisiert durch die sogenannten ACID-Eigenschaften. Das bedeutet, eine Transaktion soll den vier folgenden Eigenschaften genügen: A tomicity (Atomaritär), Seite 1 von 16

2 C onstistency (Konsistenz), I solation, und D urability (Dauerhaftigkeit) Eine Transaktion soll also entweder als Ganzes oder gar nicht wirksam werden; die korrekte Ausführung einer Transaktion überführt die Datenbank von einem konsistenten Zustand in einen anderen; jede Transaktion soll unbeeinuÿt von anderen Transaktionen ablaufen; und die Änderungen einer wirksam gewordenen Transaktion dürfen nicht mehr verloren gehen. In SQL gibt es zur Unterstützung von Transaktionen verschiedene sprachliche Konstrukte. Im Allgemeinen haben wir DB2 bisher so benutzt, dass alle Anweisungen automatisch implizit als Transaktionen behandelt wirden. Dies wird durch die Option -c (auto commit) beim Aufruf des command line processors (CLPs) erreicht. Alle Änderungen eines jedes SQL-Statements werden sofort durchgeschrieben und wirksam. Ruft man den CLP mit +c auf, dann wird das auto commit deaktiviert. Nun gilt Folgendes: ˆ Jeder lesende oder schreibende Zugri auf die Datenbank beginnt implizit eine neue Transaktion. ˆ Alle folgenden Lese- oder Schreibvorgänge gehören zu dieser Transaktion. ˆ Alle eventuellen Änderungen innerhalb dieser Transaktion gelten zunächst einmal nur vorläug. ˆ Der Befehl commit schreibt die Änderungen in die Datenbank durch. Zu diesem Zeitpunkt erst müssen Integritätsbedingungen eingehalten werden. Zwischendurch kann also auch eine Integritätsbedingung verletzt werden. ˆ Commit macht die von den folgenden Befehlen getätigten Änderungen wirksam: ALTER, COMMENT ON, CREATE, DELETE, DROP, GRANT, IN- SERT, LOCK TABLE, REVOKE, SET INTEGRITY, SET transition variable und UPDATE. ˆ Solange diese Transaktion nicht durchgeschrieben wurde, nimmt der Befehl rollback alle Änderungen seit dem letzten commit als Ganzes zurück. Im Mehrbenutzerbetrieb auf einer Datenbank, etwa wenn gleichzeitig mehrere Benutzer über eine Webseite auf die Datenbank zugreifen und Daten ändern oder einfügen, kann es durch die Konkurrenz zweier Transaktionen zu Problemen oder Anomalien kommen. Typisches Beispiel sind gleichzeitige Änderungen an einer Tabelle durch zwei unabhängige Benutzer: Phantomtupel: Innerhalb einer Transaktion erhält man auf die gleiche Anfrage bei der zweiten Ausführung zusätzliche Tupel. Nichtwiederholbarkeit: Das Lesen eines Tupels liefert innerhalb einer Transaktion unterschiedliche Ergebnisse. Schmutziges Lesen: Lesen eines noch nicht durchgeschriebenen Tupels. Verlorene Änderungen: Bei zwei gleichzeitigen Änderungen wird eine durch die andere überschrieben und geht verloren. Seite 2 von 16

3 Daher kann man in DB2-SQL zum einen den Isolationsgrad setzen, mit dem man arbeitet, indem man vor Aufnahme der Verbindung mit einer Datenbank den Befehl CHANGE ISOLATION benutzt. Es gibt vier Isolationsgrade, die unterschiedlich gegen die genannten Anomalien schützen: RR RS CS UR Phantomtupel nein ja ja ja Nichtwiederholb. nein nein ja ja Schmutziges Lesen nein nein nein ja Verlorenes Update nein nein nein nein Auÿerdem lassen sich explizit Tabellen oder eine gesamte Datenbank sperren, indem man den Befehl LOCK TABLE benutzt, bzw. die Verbindung mit der Datenbank unter Angabe des Sperrmodus herstellt. SHARE-Sperren sind der Standard und bedeuten, dass niemand anderes eine EXCLUSIVE-Sperre anfordern kann. Beispiele: LOCK TABLE land IN EXCLUSIVE MODE; CONNECT TO almanach IN SHARE MODE USER username; Apache-Webserver Für jeden Account des Praktikums steht ein eigener Apache2-Webserver zur Verfügung. Eine ausführliche Dokumentation hierzu ndet sich auf der Website des Apache HTTP Server Project unter ˆ Diese sollte allerdings nicht benötigt werden. Der Webserver ist bereits vorkonguriert und für die Benutzung von PHP5 (siehe unten) und den Zugri auf DB2 vorbereitet. Unterhalb des Heimatverzeichnis Eures Accounts ndet Ihr ein Verzeichnis httpd, welches die lokale Installation des Webservers enthält. Es enthält eine Reihe von Unterverzeichnissen, von denen hier nur die wichtigsten beschrieben sind: bin enthält die ausführbaren Dateien, mit denen der Webserver gestartet und gestoppt werden kann conf enthält die Kongurationsdateien htdocs enthält die auszuliefernden HTML- und PHP-Seiten logs enthält die Logdateien mit Zugris- und Fehlerinformationen Bei den meisten der Dateien handelt es sich um reine Textdateien, die Ihr mit Hilfe von cat und less betrachten und mit einem normalen Texteditor editieren könnt. Starten und Stoppen des Webservers Um den Webserver zu starten, wechselt in das Verzeichnis $HOME/httpd/bin und ruft dort den Befehl./apachectl start auf. Genauso lässt sich der Webserver mit Seite 3 von 16

4 dem Befehl./apachectl stop wieder beenden. Wir bitten Euch, den Webserver zum Ende der Praktikumssitzung wieder zu stoppen. Zugri Nach dem Starten des Webservers läuft dieser auf Eurem lokalen Arbeitsplatzrechner. Der Zugri auf einzelne Seiten erfolgt über einen Webbrowser unter der URL Wie üblich solltet Ihr in der URL xx durch die Nummer Eurer Gruppe ersetzen. Um zu testen, ob der Zugri funktioniert, ruft zunächst auf. Dies sollte Euch eine Übersicht über die installierten PHP-Erweiterungen und die Arbeitsumgebung geben. Sucht in dieser Übersicht nach dem Modul ibm_db2. Einstellen neuer Seiten Das Arbeitsverzeichnis des Webservers ist $HOME/httpd/htdocs. Innerhalb dieses Verzeichnisses könnt Ihr Unterverzeichnisse erstellen und Dateien ablegen, die dann über den Webserver zugreifbar sind. Nach dem Ablegen einer neuen Seite (PHP oder HTML) muss der Webserver nicht neugestartet werden. Sie ist sofort verfügbar. Werden Änderungen an Seiten nicht sofort sichtbar, muss ggf. der Cache des Browsers geleert oder eine aktuelle Version mit Ctrl-r oder Ctrl-F5 angefordert werden. Datenbankzugri über PHP Als Wirtssprache, mit deren Hilfe die zu erstellende Anwendung auf die Datenbank zugreifen soll, wurde PHP5 gewählt. PHP ist eine weit verbreitete und recht leicht erlernbare Skriptsprache, die direkt in HTML-Seiten eingebettet werden kann. Sie ist bei der Webentwicklung weitverbreitet und kommt oft gemeinsam mit dem Apache-Webserver und MySQL-Datenbanken zum Einsatz. Neben MySQL bietet PHP jedoch auch Anbindungen an andere Datenbanksysteme wie DB2. Programmieren mit PHP Eine komplette Einführung in PHP kann das Datenbank-Praktikum nicht leisten, wir verweisen hier auf die existierende Literatur, z.b. auf ˆ Die hier benutzten Befehle des ibm_db2-moduls sind in der Online-Dokumentation zu DB2 beschrieben. ˆ ftp://ftp.software.ibm.com/ps/products/db2/info/vr9/pdf/letter/en_ US/db2ape90.pdf ˆ Seite 4 von 16

5 Jede Datei mit PHP-Anweisungen sollte auf.php enden, um vom Webserver als solche erkannt zu werden. Alle PHP-Anweisungen, die interpretiert werden sollen, müssen sich innerhalb eines Anweisungsblocks benden, der mit <?php und?> begrenzt wird. Dieser Anweisungsblock kann sich vom Beginn bis zum Ende einer Datei ziehen, oder es können mehrere kleinere Anweisungsblöcke innerhalb einer HTML-Seite untergebracht werden. Ein ganz simples PHP-Skript könnte zum Beispiel wie folgt aussehen: 1 <?php echo " H e l l o World! "?> Listing 1: hello.php Datenbankverbindung Es gibt mehrere Möglichkeiten, eine Datenbankverbindung aus PHP zu einer DB2- Datenbank herzustellen. Im Praktikum soll die einfachste Methode benutzt werden, die voraussetzt, dass die Datenbank bereits lokal (auf dem Rechner, auf dem der Webserver läuft) katalogisiert wurde und ein DB2-Client vorhanden ist. Gibt es einen solchen Katalogeintrag, z.b. Database alias Database name Node name = MONDCAT = MONDIAL = SALZ so kann eine Verbindung mit dem Befehl db2_connect erstellt werden. Listing 2: connect.php 1 <?php 2 // D a t a b a s e a l i a s, username and p a s s w o r d h a ve t o be s u p p l i e d 3 $conn = db2_connect ( ' Database a l i a s ', ' Username ', ' Password ' ) ; 4 5 i f ( $conn ) { 6 // c o n n e c t i o n s u c c e s s f u l 7 db2_close ( $conn ) ; 8 } e l s e { 9 echo "<b>c o n n e c t i o n f a i l e d :</b><br>" ; 10 // show l a s t e r r o r message 11 echo db2_conn_errormsg ( ) ; 12 } 13?> Wenn die Verbindung nicht mehr benötigt wird, sollte sie immer mit db2_close() geschlossen werden. Dies entspricht dem Kommandozeilen-Befehl terminate. S. 7 S. 42 S. 38 Anfragen an die Datenbank Für eine Anfrage (oder allgemeiner: ein SQL-Statement) an die Datenbank benötigt man zunächst eine existierende Datenbankverbindung. Zu dieser Verbindung lässt sich dann mit dem Befehl db2_prepare eine Anfrage vorbereiten und mit dem Befehl db2_execute ausführen. Alternativ lassen sich feste Anfragen oder Statements auch direkt mit db2_exec ausführen. Seite 5 von 16 S. 55 S. 52 S. 50

6 Ein sogenanntes Prepared Statement erlaubt das Freilassen einiger Parameter, die dann z.b. durch Benutzereingaben ersetzt werden können. Der Vorteil gegenüber dem Zusammensetzen einer dynamischen Datenbank-Anfrage durch String- Konkatenation besteht darin, dass Typüberprüfung stattndet und nicht arbiträre Benutzereingaben für SQL-Injektionen genutzt werden können. Zunächst ein Beispiel für eine einfache, statische SQL-Anfrage: Listing 3: static_query.php 1 <?php 2 $conn = db2_connect ( ' Database a l i a s ', ' Username ', ' Password ' ) ; 3 i f ( $conn ) { 4 $ r e s u l t = db2_exec ( $conn, 5 "SELECT DISTINCT name FROM dbprak. c o u n t r y " ) ; 6 i f (! $ r e s u l t ) { 7 echo "<b>execute f a i l e d :</b><br>" ; 8 echo db2_stmt_errormsg ( $stmt ). "<br>" ; 9 } 10 db2_close ( $conn ) ; 11 } 12?> Und ein Beispiel für ein dynamisches Prepared Statement, welches drei freie Parameter hat (der Platzhalten für einen freien Parameter ist das?): Listing 4: dynamic_statement.php 1 <?php 2 // p r e p a r e t h e p a r a m e t e r v a l u e s 3 $ c a t e g o r i e s = a r r a y ( a r r a y ( 1 0 0, ' f i c t i o n ', 0 ), 4 a r r a y ( 1 1 0, ' f a n t a s y ', ), 5 a r r a y ( 1 1 6, ' urban f a n t a s y ', ) ) ; 6 7 $conn = db2_connect ( ' Database a l i a s ', ' Username ', ' Password ' ) ; 8 i f ( $conn ) { 9 $ i n s e r t = ' INSERT INTO c a t e g o r y ( cat_id, cat_name, top_cat ) '. 10 'VALUES (?,?,? ) ' ; 11 $stmt = db2_prepare ( $conn, $ i n s e r t ) ; 12 i f ( $stmt ) { 13 // l o o p o v e r e l e m e n t s o f a r r a y $ c a t e g o r i e s 14 f o r e a c h ( $ c a t e g o r i e s as $ c a t e g o r y ) { 15 // e x e c u t e p r e p a r e d s t a t e m e n t f o r e a c h e l e m e n t and 16 // r e p l a c e? w i t h v a l u e s 17 $ r e s u l t = db2_execute ( $stmt, $ c a t e g o r y ) ; 18 } 19 } 20 db2_close ( $conn ) ; 21 } 22?> Seite 6 von 16

7 Cursor Wie in der Vorlesung behandelt, erhält man als Ergebnis einer Datenbankanfrage aus einer Wirtsprache, einen sogenannten Cursor, über den man per Iteration Zugri auf die einzelnen Elemente der Ergebnismenge erhält. In PHP iteriert man mit dem Befehl db2_fetch_row(). Der erste Aufruf des Befehls setzt den Cursor auf das erste Element des Ergebnis, jeder weitere Aufruf setzt den Cursor ein Element weiter. Kommt der Cursor an das Ende der Ergebnismenge, so liefert er als Ergebnis false, sonst true. Wenn der Cursor auf ein Ergebnistupel zeigt, kann dieses mit dem Befehl db2_result() ausgelesen werden. Dabei wird neben dem Statement auch die Spalte angegeben (beginnend mit 0), die gelesen werden soll: Listing 5: read_data.php 1 <?php 2 $conn = db2_connect ( ' Database a l i a s ', ' Username ', ' Password ' ) ; 3 i f ( $conn ) { 4 $stmt = db2_exec ( $conn, 5 "SELECT t i t l e, y e a r FROM dbprak. work " ) ; 6 i f ( $stmt ) { 7 w h i l e ( db2_fetch_row ( $stmt ) ) { 8 $ t i t l e = d b 2 _ r e s u l t ( $stmt, 0 ) ; 9 $ y e a r = d b 2 _ r e s u l t ( $stmt, 1 ) ; 10 echo " $ t i t l e ( $ y e a r )<br>" ; 11 } 12 } 13 db2_close ( $conn ) ; 14 } 15?> S. 64 S. 67 Es ist möglich, beim Stellen einer Anfrage, einen sogenannten scrollenden Cursor anzufordern. Dieser erlaubt nicht nur einfaches Iterieren, sondern direktes Ansteuern eines bestimmten Ergebnistupels (beginnend mit 1). Der für scrollende Cursor nötige Overhead verlangsamt jedoch im Allgemeinen die Anwendung, daher sollten sie nur wenn notwendig benutzt werden. Listing 6: scrollable_cursor.php 1 <?php 2 $conn = db2_connect ( ' Database a l i a s ', ' Username ', ' Password ' ) ; 3 i f ( $conn ) { 4 // s t a t e m e n t r e q u e s t s a s c r o l l a b l e c u r s o r f o r r e s u l t 5 $stmt = db2_ prepare ( $conn, 6 "SELECT t i t l e, y e a r FROM dbprak. work ", 7 a r r a y ( ' c u r s o r ' => DB2_SCROLLABLE ) ) ; 8 $ r e s u l t = db2_execute ( $conn, $stmt ) ; 9 i f ( $ r e s u l t ) { 10 // c h e c k number o f rows r e t u r n e d 11 i f ( db2_num_rows ( $stmt ) > 10) { 12 db2_fetch_row ( $stmt, 1 0 ) ; 13 echo " T i t l e f o r 10 th book : ". 14 d b 2 _ r e s u l t ( $stmt, 0 ) ; 15 } 16 } 17 db2_close ( $conn ) ; 18 }?> Seite 7 von 16

8 Während mit der Kombination db2_fetch_row() und db2_result() der direkte Zugri auf einzelne Spalten eines Ergebnistupels möglich ist, bietet es sich im Allgemeinen an, ein komplettes Ergebnistupel als Array einzulesen und im Programm diesem weiterzuarbeiten. Der Befehl db2_fetch_array() setzt den Cursor auf das erste bzw. nächste Ergebnistupel und liefert dieses als Array zurück, wie im folgenden Beispiel zu sehen: Listing 7: fetch_array.php 1 <?php 2 $conn = db2_connect ( ' Database a l i a s ', ' Username ', ' Password ' ) ; 3 i f ( $conn ) { 4 $ s q l = "SELECT t i t l e, i s b n, format ". 5 "FROM book ORDER BY t i t l e " ; 6 $ r e s u l t = db2_exec ( $stmt, $ s q l, 7 a r r a y ( ' c u r s o r ' => DB2_SCROLLABLE ) ) ; 8 $ i = 1 ; 9 w h i l e ( $row = db2_fetch_array ( $ r e s u l t, $ i ) ) { 10 echo $row [ 0 ]. " ( ". $row [ 1 ]. " ) ". $row [ 2 ]. "<br >\n" ; 11 $ i ++; 12 } 13 db2_close ( $conn ) ; 14 } 15?> S. 58 Transaktionen PHP-Anwendungen verbinden sich standardmäÿig im AUTOCOMMIT-Modus mit der Datenbank, d.h. alle Anweisungen gelten als einzelne Transaktion und werden direkt festgeschrieben. Das ist manchmal nicht sinnvoll, z.b. wenn nur durch eine Reihe von Anweisungen die Datenbank in einen gültigen Zustand überführt werden kann (etwa beim Einfügen eines neuen Buchs, für das zunächst ein neues Bibliotheks- Objekt eingefügt werden muss). Durch den Befehl db2_autocommit() lässt sich der Modus für eine Verbindung setzen und abfragen: ˆ db2_autocommit($conn) liefert den Status der Verbindung $conn ˆ db2_autocommit($conn, DB2_AUTOCOMMIT_ON) - schaltet automatisches COMMIT ein ˆ db2_autocommit($conn, DB2_AUTOCOMMIT_OFF) - schaltet automatisches COMMIT aus Solange der AUTOCOMMIT-Modus abgeschaltet ist, müssen Transaktionen durch die Anwendung ausdrücklich abgeschlossen und durchgeschrieben werden. Dies erledigt der Befehl db2_commit($conn), entsprechend macht der Befehl db2_rollback($conn) alle Änderungen seit dem letzten COMMIT rückgängig. S. 37 S. 38 S. 46 Seite 8 von 16

9 HTML-Formulare Um Benutzereingaben aufzunehmen und an ein PHP-Skript zu übergeben, können HTML-Formularelemente zum Einsatz kommen. Beim Abschicken des Formulars wird dann das PHP-Skript aufgerufen und der Inhalt der Formularelemente per POST oder GET übergeben. Mehr zu HTML und HTML-Formularen ndet man z.b. unter ˆ oder ˆ Das folgende Beispiel für ein HTML-Formular, das ein PHP-Skript aufruft, zeigt verschiedene Formularelemente, die genutzt werden können: Listing 8: form.html 1 <form e n c t y p e=" m u l t i p a r t / form data " a c t i o n=" t e s t. php" method=" p o s t "> 2 <t a b l e> 3 <t r><td c o l s p a n="2"> B e i s p i e l</ td></ t r> 4 <t r> 5 <td><b>matrikelnummer :</b></ td> 6 <td><i n p u t type=" t e x t " name=" m a t r i k e l " s i z e="60"/></ td> 7 </ t r> 8 <t r> 9 <td><b>aufgabe 1 :</b></ td> 10 <td><t e x t a r e a name=" aufgabe_1 " rows="15" c o l s="60"></ t e x t a r e a> 11 <i n p u t type=" r e s e t "/> 12 </ td> 13 </ t r> 14 </ t a b l e> 15 <i n p u t type=" h i d d e n " name=" woche " v a l u e="1"/> 16 <i n p u t type=" submit " v a l u e=" a b s c h i c k e n "/> 17 </ form> ˆ input vom Typ text erlaubt die Eingabe eines kurzen Textes ˆ input vom Typ hidden übergibt zusätzliche Werte, ohne dass diese dem Benutzer angezeigt werden ˆ input vom Typ reset setzt ein Formular zurück ˆ input vom Typ submit schickt das Formular ab ˆ textarea erlaubt die Eingabe längerer, mehrzeiliger Texte Jede Eingabe, die durch das PHP-Skript ausgelesen werden soll, benötigt einen Namen, wobei nur solche Zeichen erlaubt sind, die in PHP für Variablennamen gültig sind. Im HTML-Element form wird das aufzurufende Skript und die Methode (POST oder GET) angegeben. Seite 9 von 16

10 Auslesen von POST/GET-Parametern in PHP Wenn ein PHP-Skript aus einem Formular oder durch direkte Angabe der URL aufgerufen wird, so stehen die übergebenen Parameter und ihre Werte in einem assoziativen Array. Dieser heisst entweder $_POST (bei Aufruf über POST) oder $_GET (bei Aufruf über GET). Alternativ kann man das Array $_REQUEST benutzen, dass sowohl POST- als auch GET-Parameter enthält. 1 // Post P a r a m e t e r a u s l e s e n 2 $woche = $_POST[ ' woche ' ] ; 3 $account = $_POST[ ' account ' ] ; 4 $ m a t r i k e l = $_POST[ ' m a t r i k e l ' ] ; 1 // Get P a r a m e t e r a u s l e s e n 2 $woche = $_GET[ ' woche ' ] ; 3 $account = $_GET[ ' account ' ] ; 4 $ m a t r i k e l = $_GET[ ' m a t r i k e l ' ] ; Listing 9: postparams.php Listing 10: getparams.php Seite 10 von 16

11 Ein ausführliches Beispiel Schlieÿlich sei hier noch ein ausführlicheres Beispiel gegeben, das erlaubt, in der Datenbank BIBSAMPL Werke und ihre Autoren zu betrachten (die Datenbank existiert unter der gleichen Instanz wie die MONDIAL-Beispieldaten, also dbprak auf dem Rechner salz.is.inf.uni-due.de und kann auf die bekannte Weise katalogisiert werden). Es besteht aus insgesamt vier Dateien. Dabei enthält connection.inc.php nur die Verbindungsdaten, so dass diese ggf. nur einer Datei geändert werden müssen. Listing 11: connection.inc.php 1 <?php 2 $ d a t a b a s e _ a l i a s = '.. ' ; 3 $username = '.. ' ; 4 $password = '.. ' ; 5 6 $conn = db2_connect ( $ d a t a b a s e _ a l i a s, $username, $password ) ; 7?> Listing 12: browse.php 1 <html><body> 2 <?php 3 i n c l u d e ' c o n n e c t i o n. i n c ' ; 4 5 i f ( $conn ) { 6 $stmt = db2_ prepare ( $conn, 7 "SELECT DISTINCT l e f t ( name, 1 ) FROM dbprak. a u t h o r " ) ; 8 $ r e s u l t = db2_execute ( $stmt ) ; 9 i f (! $ r e s u l t ) { 10 echo "<b>execute f a i l e d :</b><br>" ; 11 echo db2_stmt_errormsg ( $stmt ). "<br>" ; 12 } 13 echo "<h3>browse works by author </h3><p>" ; 14 w h i l e ( db2_fetch_row ( $stmt ) ) { 15 $name = d b 2 _ r e s u l t ( $stmt, 0 ) ; 16 i f ( $name <> ' ' ) { 17 echo "[<a h r e f =' show_authors. php? a u t h o r=$name'>$name</a >] " ; 18 } 19 } 20 echo "</p>" ; 21 $stmt = db2_ prepare ( $conn, 22 "SELECT DISTINCT l e f t ( t i t l e, 1 ) FROM dbprak. work " ) ; 23 $ r e s u l t = db2_execute ( $stmt ) ; 24 i f (! $ r e s u l t ) { 25 echo "<b>execute f a i l e d :</b><br>" ; 26 echo db2_stmt_errormsg ( $stmt ). "<br>" ; 27 } 28 echo "<h3>browse works by work t i t l e </h3><p>" ; 29 w h i l e ( db2_fetch_row ( $stmt ) ) { 30 $name = d b 2 _ r e s u l t ( $stmt, 0 ) ; 31 i f ( $name <> ' ' ) { 32 echo "[<a h r e f =' show_works. php? work=$name'>$name</a >] " ; 33 } 34 } 35 echo "</p>" ; 36 db2_close ( $conn ) ; 37 } e l s e { 38 echo "<b>c o n n e c t i o n f a i l e d :<b><br>" ; Seite 11 von 16

12 39 echo db2_conn_errormsg ( ) ; 40 } 41?> 42 </body></html> Listing 13: show_works.php 1 <html> 2 <body> 3 <? 4 i n c l u d e ' c o n n e c t i o n. i n c. php ' ; 5 6 $ a u t h o r = $_GET[ ' a u t h o r ' ] ; 7 $ a u t h o r = db2_escape_string ( $ a u t h o r ) ; 8 $work = $_GET[ ' work ' ] ; 9 $work = db2_ escape_ string ( $work ) ; i f ( $conn ) { 12 i f ( $work!= ' ' ) { 13 $stmt = db2_ prepare ( $conn, 14 "SELECT o. t i t l e, o. y e a r FROM dbprak. a u t h o r a ". 15 "JOIN dbprak. wrote w ON a. i d=w. author_id ". 16 "JOIN dbprak. work o ON o. i d=w. work_id ". 17 "WHERE t i t l e l i k e ' ". $work. "%' ORDER BY o. t i t l e " ) ; 18 } e l s e { 19 $stmt = db2_ prepare ( $conn, 20 "SELECT o. t i t l e, o. y e a r FROM dbprak. a u t h o r a ". 21 "JOIN dbprak. wrote w ON a. i d=w. author_id ". 22 "JOIN dbprak. work o ON o. i d=w. work_id ". 23 "WHERE name =? ORDER BY o. t i t l e " ) ; 24 } 25 $ r e s u l t = db2_execute ( $stmt, a r r a y ( $ a u t h o r ) ) ; 26 i f (! $ r e s u l t ) { 27 echo "<b>execute f a i l e d :</b><br>" ; 28 echo db2_stmt_errormsg ( $stmt ). "<br>" ; 29 } i f ( $ a u t h o r!= ' ' ) { 32 echo "<h3>works by ' ". $ a u t h o r. " '</h3>" ; 33 } e l s e { 34 echo "<h3>works s t a r t i n g w i t h ' ". $work. " '</h3>" ; 35 } 36 echo "<ul >" ; w h i l e ( db2_fetch_row ( $stmt ) ) { 39 $ t i t l e = d b 2 _ r e s u l t ( $stmt, 0 ) ; 40 $ y e a r = d b 2 _ r e s u l t ( $stmt, 1 ) ; 41 echo "< l i > $ t i t l e ( $ y e a r )</ l i >" ; 42 } 43 echo "</ul >" ; 44 db2_close ( $conn ) ; 45 } e l s e { 46 echo "<b>c o n n e c t i o n f a i l e d :<b><br>" ; 47 echo db2_conn_errormsg ( ) ; 48 } 49 50?> 51 </body> 52 </html> Seite 12 von 16

13 Listing 14: show_authors.php 1 <html> 2 <body> 3 <? 4 i n c l u d e ' c o n n e c t i o n. i n c. php ' ; 5 6 $ a u t h o r = $_GET[ ' a u t h o r ' ] ; 7 $ a u t h o r = db2_escape_string ( $ a u t h o r ) ; 8 9 i f ( $conn ) { 10 $stmt = db2_ prepare ( $conn, 11 "SELECT name FROM dbprak. a u t h o r ". 12 "WHERE name LIKE ' ". $ a u t h o r. "%'" ) ; 13 $ r e s u l t = db2_execute ( $stmt ) ; 14 i f (! $ r e s u l t ) { 15 echo "<b>execute f a i l e d :</b><br>" ; 16 echo db2_stmt_errormsg ( $stmt ). "<br>" ; 17 } echo "<h3>authors w i t h ' ". $ a u t h o r. " '</h3>" ; 20 echo "<ul >" ; w h i l e ( db2_fetch_row ( $stmt ) ) { 23 $name = d b 2 _ r e s u l t ( $stmt, 0 ) ; 24 echo "< l i >$name : <a h r e f ='show_works. php? a u t h o r=$name'>". 25 "show works </a></ l i >" ; 26 } 27 echo "</ul >" ; 28 db2_close ( $conn ) ; 29 } e l s e { 30 echo "<b>c o n n e c t i o n f a i l e d :<b><br>" ; 31 echo db2_conn_errormsg ( ) ; 32 } 33 34?> 35 </body> 36 </html> Seite 13 von 16

14 Aufgaben Vorbereitung (Hausaufgaben) V0: PHP und HTML Macht Euch erneut (oder erstmals) mit der grundlegenden Syntax von PHP und HTML vertraut. Nutzt dazu z.b. die Links aus diesem Arbeitsmaterial. Hier sind noch zwei brauchbare Schnellreferenzen zu PHP und zwei zu HTML: ˆ ˆ 20Card.pdf ˆ 20Designer%27s%20HTML%20Card.pdf ˆ V1: Beispiele nachvollziehen Macht Euch anhand der Unterlagen und Dokumentationen mit den hier vorgestellten Beispielen vertraut. Ihr solltet in der Lage sein, die nachstehenden Fragen zu beantworten. (a) Was macht das SELECT-Statement in Listing 12, Zeile 7. (b) Wie hängen die einzelnen Teile der Anwendung zusammen? Wie und wo werden sie aufgerufen? (c) Was machen die beiden SELECT-Statements in Listing 13 (Zeile 14. und 20.). (d) Was geschieht in Listing 14, Zeile 4-7? Erläutere insbesondere die Funktion db2_escape_string() in Zeile 7. Wozu wird sie benötigt? Seite 14 von 16

15 Präsenz P1: Beispiel anpassen Passt zunächst das Beispiel (Listings 11-14) an Eure (eigene) Cocktail-Datenbank an. Die Dateien hierzu nden sich bereits in dem Unterverzeichnis htdocs. Statt Werken und Autoren könnte man z.b. Zutaten und Rezepte benutzen. Denkt daran, insbesondere auch die Verbindungsparameter anzupassen! P2: Inhalte der Datenbank zugreifbar machen Macht Eure Datenbank soweit wie möglich über die Webanwendung zugreifbar, so dass der Inhalt der wichtigsten Tabellen in der Anwendung einsehbar und verknüpft ist. P3: Neueintragungen in Datenbank Ermöglicht die Eintragung neuer Fakten in Eure Datenbank: (a) Anlegen eines neuen Anwenders (b) Hinzufügen einer neuen Zutat (c) Hinzufügen eines neuen Produktes und Verknüpfung des Produktes mit existierenden Zutaten (d) Hinzufügen eines neuen Vorrats für den Benutzer und Verknüpfung des Vorrats mit existierendem Produkt (e) Einfügen eines Rezepts mit den notwendigen Daten (benötigte Zutaten und Glas) P4: Übersichtsseite für Rezepte Erstellt eine Informationsseite mit allen verfügbaren Informationen zu einem Rezept. Dazu gehören: ˆ die direkten Angaben ˆ die benötigten Zutaten ˆ das benötigte Glas P5: Erweiterungen Überlegt Euch eigene Erweiterungen für Anzeige oder Datenerfassung, und setzt eine davon um. Dabei könnt Ihr auch auf optionale Teile Eurer Modellierung zurückgreifen. Möglichkeiten sind z.b. ˆ Hochladen und Anzeige eines Bildes zum Rezept Seite 15 von 16

16 ˆ Bewerten von Rezepten und Anzeige von durchschnittlichen Bewertungen ˆ Führen einer Liste von Lieblingsrezepten oder einer Zutatenwunschliste für die Benutzer ˆ An- und Abmelden per Nutzername und Passwort ˆ Anzeige wieviele und welche Zutaten einem Benutzer zu einem bestimmten Rezeot fehlen ˆ Einkaufsempfehlungen (Produkte, mit denen ein Benutzer besonders viele Rezepte zubereiten könnte, wenn er sie in den Vorrat hinzufügt) ˆ Tagging von Rezepten (zu süÿ, lecker, cremig,... ) und Anzeige der Tags als Tagwolke ˆ Seite 16 von 16

Praktikum Datenbanken / DB2 Wochen 8-10: Fallstudie - Datenbank-Anwendung mit Apache 2 und PHP/Java

Praktikum Datenbanken / DB2 Wochen 8-10: Fallstudie - Datenbank-Anwendung mit Apache 2 und PHP/Java Praktikum Datenbanken / DB2 Wochen 8-10: Fallstudie - Datenbank-Anwendung mit Apache 2 und PHP/Java Matthias Jordan 7.-Januar bis 31. Januar 2010 Präsenzaufgaben: Abnahme bis 12. Februar 2010 http://www.is.inf.uni-due.de/courses/dbp_ws09/abgabe/block3.html

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

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

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

Mehr

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

Uni Duisburg-Essen Fachgebiet Informationssysteme Prof. Dr. N. Fuhr. Praktikum Datenbanken / DB2 Woche 8: Transaktionen, JDBC

Uni Duisburg-Essen Fachgebiet Informationssysteme Prof. Dr. N. Fuhr. Praktikum Datenbanken / DB2 Woche 8: Transaktionen, JDBC Betreuer: Gudrun Fischer, Tobias Tuttas, Camille Pieume Raum: LF 230 Bearbeitung: 3., 4. und 6. Juli 2006 Datum Team (Account) Vorbereitung Präsenz Aktuelle Informationen, Ansprechpartner und Material

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

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

Datenbank - Teil 3. Ziele: Eine Datenbank anlegen mit SQL. Daten eingeben mit SQL. Abfragen stellen mit SQL und PHP.

Datenbank - Teil 3. Ziele: Eine Datenbank anlegen mit SQL. Daten eingeben mit SQL. Abfragen stellen mit SQL und PHP. Ziele: Eine Datenbank anlegen mit SQL Daten eingeben mit SQL Abfragen stellen mit SQL und PHP 1 Datenbankserver Entwickelt von der schwedischen Aktiengesellschaft MySQL Unter GNU General Public License

Mehr

MySql und PHP. Apache2: Konfigurieren für php4. ...\apache2\conf\httpd.conf aufrufen. Folgende Zeilen einfügen:

MySql und PHP. Apache2: Konfigurieren für php4. ...\apache2\conf\httpd.conf aufrufen. Folgende Zeilen einfügen: MySql und PHP Apache2: Konfigurieren für php4...\apache2\conf\httpd.conf aufrufen Folgende Zeilen einfügen: LoadModule php4_module "c:/php/php4apache2.dll" AddType application/x-httpd-php.php Wichtig!!

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

Ablauf Unit2. Walkthrough

Ablauf Unit2. Walkthrough Ablauf Unit2 Vertiefendes Uebungsprojekt - SQL II Gerhard Wohlgenannt Test Vorstellung der Arbeitsumgebung (Software, Locations) Walkthrough Gruppeneinteilung + Themenvergabe Vorstellung der Arbeitsumgebung

Mehr

Fachhochschule Kaiserslautern Labor Datenbanken mit MySQL SS2006 Versuch 1

Fachhochschule Kaiserslautern Labor Datenbanken mit MySQL SS2006 Versuch 1 Fachhochschule Kaiserslautern Fachbereiche Elektrotechnik/Informationstechnik und Maschinenbau Labor Datenbanken Versuch 1 : Die Grundlagen von MySQL ------------------------------------------------------------------------------------------------------------

Mehr

Ablauf. Wichtige Termine. Vertiefendes Übungsprojekt - SQL II

Ablauf. Wichtige Termine. Vertiefendes Übungsprojekt - SQL II Ablauf Wichtige Termine Ablauf der Lehrveranstaltung Vorstellung des Projektthemas Projektgruppen Vorstellung der Arbeitsumgebung (Software, Locations) Walkthrough Datenbankentwurf Formulare PHP Security

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

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

Unterabfragen (Subqueries)

Unterabfragen (Subqueries) Unterabfragen (Subqueries) Die kürzeste Formulierung ist folgende: SELECT Felderliste FROM Tabelle1 WHERE Tabelle1.Feldname Operator (SELECT Feldname FROM Tabelle2 WHERE Bedingung); wobei Tabelle1 und

Mehr

Hackerpraktikum Versuch 4

Hackerpraktikum Versuch 4 Hackerpraktikum Versuch 4 Praktikum zur Vorlesung Reaktive Sicherheit WS 09/10 Johannes Hoffmann (hoffmann[-@-]ls6.cs.tu-dortmund.de) Dieser Versuch beschäftigt sich mit serverseitigen Schwachstellen im

Mehr

Übung 1: Ein Website News-System mit MySQL

Übung 1: Ein Website News-System mit MySQL Übung 1: Ein Website News-System mit MySQL In der Vorübung haben wir bereits mit Hilfe eines ERMs den Datenbankentwurf erstellt und daraus die folgenden Tabellen abgeleitet: Nun muss diese Datenbank in

Mehr

Multimedia im Netz Wintersemester 2011/12

Multimedia im Netz Wintersemester 2011/12 Multimedia im Netz Wintersemester 2011/12 Übung 01 Betreuer: Verantwortlicher Professor: Sebastian Löhmann Prof. Dr. Heinrich Hussmann Organisatorisches 26.10.2011 MMN Übung 01 2 Inhalte der Übungen Vertiefung

Mehr

Grundkurs MySQL und PHP

Grundkurs MySQL und PHP Martin Pollakowski Grundkurs MySQL und PHP So entwickeln Sie Datenbanken mit Open-Source-Software vieweg Inhaltsverzeichnis Anwendung und Nutzen von Datenbanken 1 1.1 Was ist eine Datenbank? 1 1.2 Abgrenzung

Mehr

MySQL Queries on "Nmap Results"

MySQL Queries on Nmap Results MySQL Queries on "Nmap Results" SQL Abfragen auf Nmap Ergebnisse Ivan Bütler 31. August 2009 Wer den Portscanner "NMAP" häufig benutzt weiss, dass die Auswertung von grossen Scans mit vielen C- oder sogar

Mehr

Übungen. DI (FH) Levent Öztürk

Übungen. DI (FH) Levent Öztürk Übungen DI (FH) Levent Öztürk Übersicht Entwicklungsumgebung PHPMYADMIN Datenbank anlegen User anlegen Tabellen Anlegen Datenbankzugriffe über PHP 01.04.2014 DI (FH) Levent Öztürk 2 Entwicklungsumgebung

Mehr

PHP Einsteiger Tutorial Kapitel 4: Ein Email Kontaktformular in PHP Version 1.0 letzte Änderung: 2005-02-03

PHP Einsteiger Tutorial Kapitel 4: Ein Email Kontaktformular in PHP Version 1.0 letzte Änderung: 2005-02-03 PHP Einsteiger Tutorial Kapitel 4: Ein Email Kontaktformular in PHP Version 1.0 letzte Änderung: 2005-02-03 Bei dem vierten Teil geht es um etwas praktisches: ein Emailformular, dass man auf der eigenen

Mehr

Dateneingabe über ein HTML-Formular in eine Datenbank:

Dateneingabe über ein HTML-Formular in eine Datenbank: Dateneingabe über ein HTML-Formular in eine Datenbank: Über ein Eingabeformular mit fünf Eingabefelder sollen Personaldaten in eine Datenbank gespeichert werden: Schritt 1: Erstellen des Eingabeformulars

Mehr

Dynamische Webseiten mit PHP 1

Dynamische Webseiten mit PHP 1 Dynamische Webseiten mit PHP 1 Webserver, PHP und MYSQL Ein Webserver dient dazu, Internetseiten an PCs zu senden, von denen sie aufgerufen werden. Beispiel: Sie tippen im Browser www.fosbosweiden.de ein.

Mehr

Transaktionsverwaltung

Transaktionsverwaltung Transaktionsverwaltung VU Datenbanksysteme vom 21.10. 2015 Reinhard Pichler Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Transaktionsverwaltung

Mehr

1 Installationen. 1.1 Installationen unter Windows

1 Installationen. 1.1 Installationen unter Windows 1 Installationen Dieses Kapitel beschreibt die Installationen, die für die Nutzung von PHP und MySQL unter Windows, unter Ubuntu Linux und auf einem Mac mit OS X notwendig sind. 1.1 Installationen unter

Mehr

Interaktive Webseiten mit PHP und MySQL

Interaktive Webseiten mit PHP und MySQL Interaktive Webseiten mit PHP und Vorlesung 4: PHP & Sommersemester 2003 Martin Ellermann Heiko Holtkamp Sommersemester 2001 Hier noch ein wenig zu (My)SQL: SHOW INSERT SELECT ORDER BY GROUP BY LIKE /

Mehr

PHP und MySQL. Integration von MySQL in PHP. Zellescher Weg 12 Willers-Bau A109 Tel. +49 351-463 - 32424. Michael Kluge (michael.kluge@tu-dresden.

PHP und MySQL. Integration von MySQL in PHP. Zellescher Weg 12 Willers-Bau A109 Tel. +49 351-463 - 32424. Michael Kluge (michael.kluge@tu-dresden. Zentrum für Informationsdienste und Hochleistungsrechnen (ZIH) PHP und MySQL Integration von MySQL in PHP Zellescher Weg 12 Willers-Bau A109 Tel. +49 351-463 - 32424 (michael.kluge@tu-dresden.de) MySQL

Mehr

Zugriff auf Firebird-Datenbanken mit PHP. Daniel de West DB-Campus-Treffen 15. Januar 2004

Zugriff auf Firebird-Datenbanken mit PHP. Daniel de West DB-Campus-Treffen 15. Januar 2004 Zugriff auf Firebird-Datenbanken mit PHP Daniel de West DB-Campus-Treffen 15. Januar 2004 Inhalt PHP und Firebird Die wichtigsten Befehle Verbindungsaufbau Übermitteln von Abfragen Beenden von Verbindungen

Mehr

PostgreSQL unter Debian Linux

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

Mehr

[2-4] Typo3 unter XAMPP installieren

[2-4] Typo3 unter XAMPP installieren Web >> Webentwicklung und Webadministration [2-4] Typo3 unter XAMPP installieren Autor: simonet100 Inhalt: Um Typo3 zum Laufen zu bringen benötigen wir eine komplette Webserverumgebung mit Datenbank und

Mehr

Benutzerhandbuch MAMP 3! März 2014 (c) appsolute GmbH

Benutzerhandbuch MAMP 3! März 2014 (c) appsolute GmbH Benutzerhandbuch MAMP 3! März 2014 (c) appsolute GmbH I. Installation! 3! 1. Installationsvoraussetzungen 3 2. Installation und Aktualisierung 3 3. De-Installation 3 II. Erste Schritte! 4! III. Einstellungen!

Mehr

PostgreSQL auf Debian System

PostgreSQL auf Debian System PostgreSQL auf Debian System Inhaltsverzeichnis 1. Installation 1.1 Installation 1.2 Mit postgres anmelden 2. Benutzer anlegen 3. Datenbank anlegen 3.1 Optionen 3.2 Datenbank mydatabase anlegen 4. Datenbank

Mehr

Der Einsatz von MySQL-Datenbanken (mit XAMPP)

Der Einsatz von MySQL-Datenbanken (mit XAMPP) Informatik in der Mittelstufe: Der Einsatz von MySQL-Datenbanken (mit XAMPP) Hannes Heusel Eduard-Spranger-Gymnasium Landau Warum soll ich eine MySQL- Datenbank verwenden? kostenlos Mehrbenutzersystem

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

Aktuelle Sicherheitsprobleme im Internet: Angriffe auf Web-Applikationen

Aktuelle Sicherheitsprobleme im Internet: Angriffe auf Web-Applikationen FAEL-Seminar Aktuelle Sicherheitsprobleme im Internet: Angriffe auf Web-Applikationen Prof. Dr. Marc Rennhard Institut für angewandte Informationstechnologie InIT ZHAW Zürcher Hochschule für Angewandte

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

Installationsanleitung für serverseitige Komponenten des 3 Authoring-Systems

Installationsanleitung für serverseitige Komponenten des <ML> 3 Authoring-Systems Installationsanleitung für serverseitige Komponenten des 3 Authoring-Systems Version 0.01 Lars Kornelsen Universität Rostock Lehrstuhl für Rechnerarchitektur E-Mail: lars.kornelsen@informatik.uni-rostock.de

Mehr

SQL, MySQL und FileMaker

SQL, MySQL und FileMaker SQL, MySQL und FileMaker Eine kurze Einführung in SQL Vorstellung von MySQL & phpmyadmin Datenimport von MySQL in FileMaker Autor: Hans Peter Schläpfer Was ist SQL? «Structured Query Language» Sprache

Mehr

Einführung in PHP 5 und IBM DB2

Einführung in PHP 5 und IBM DB2 Einführung in PHP 5 und IBM DB2 Webapplikationen mit PHP 5.2 und IBM DB2 PHP Conference 2006-08.11.2006 Themenübersicht PHP 5.2 und Datenbanken PDO Warum IBM DB2? PHP und IBM DB2 Installation / Konfiguration

Mehr

Datenbanksysteme SS 2007

Datenbanksysteme SS 2007 Datenbanksysteme SS 2007 Frank Köster (Oliver Vornberger) Institut für Informatik Universität Osnabrück Kapitel 9c: Datenbankapplikationen Architektur einer Web-Applikation mit Servlets, JSPs und JavaBeans

Mehr

Begleitskript. zum PHP/MySQL. Kurs

Begleitskript. zum PHP/MySQL. Kurs Begleitskript zum PHP/MySQL Kurs http://www.online-platform.net Dieser Text unterliegt der GNU General Public License. Er darf als ganzes oder in Auszügen kopiert werden, vorausgesetzt, dass sich dieser

Mehr

Open Catalog Interface (OCI) Anbindung an VirtueMart

Open Catalog Interface (OCI) Anbindung an VirtueMart Ver. 2.5.1 Open Catalog Interface (OCI) Anbindung an VirtueMart Joomla 2.5 und Virtuemart 2.0.6 Ing. Karl Hirzberger www.hirzberger.at Inhaltsverzeichnis Begriffserklärung... 3 OCI für VirtueMart... 4

Mehr

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage .htaccess HOWTO zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage Stand: 21.06.2015 Inhaltsverzeichnis 1. Vorwort...3 2. Verwendung...4 2.1 Allgemeines...4 2.1 Das Aussehen der.htaccess

Mehr

Anleitung zur Aktualisierung

Anleitung zur Aktualisierung CONTREXX AKTUALISIERUNG 2010 COMVATION AG. Alle Rechte vorbehalten. Diese Dokumentation ist urheberrechtlich geschützt. Alle Rechte, auch die der Modifikation, der Übersetzung, des Nachdrucks und der Vervielfältigung,

Mehr

DB2 SQL, der Systemkatalog & Aktive Datenbanken

DB2 SQL, der Systemkatalog & Aktive Datenbanken DB2 SQL, der Systemkatalog & Aktive Datenbanken Lehr- und Forschungseinheit Datenbanken und Informationssysteme 1 Ziele Auf DB2 Datenbanken zugreifen DB2 Datenbanken benutzen Abfragen ausführen Den Systemkatalog

Mehr

TimeMachine. Time CGI. Version 1.5. Stand 04.12.2013. Dokument: time.odt. Berger EDV Service Tulbeckstr. 33 80339 München

TimeMachine. Time CGI. Version 1.5. Stand 04.12.2013. Dokument: time.odt. Berger EDV Service Tulbeckstr. 33 80339 München Time CGI Version 1.5 Stand 04.12.2013 TimeMachine Dokument: time.odt Berger EDV Service Tulbeckstr. 33 80339 München Fon +49 89 13945642 Mail rb@bergertime.de Versionsangaben Autor Version Datum Kommentar

Mehr

PHP-Schwachstellen und deren Ausnutzung

PHP-Schwachstellen und deren Ausnutzung PHP-Schwachstellen und deren Ausnutzung 44. DFN Betriebstagung / 7. Februar 2006 DFN-CERT Services GmbH Jan Kohlrausch / CSIRT Gliederung Grundlagen HTTP und PHP Anatomie typischer Schwachstellen in PHP-Skripten

Mehr

TimeMachine. Installation und Konfiguration. Version 1.4. Stand 21.11.2013. Dokument: install.odt. Berger EDV Service Tulbeckstr.

TimeMachine. Installation und Konfiguration. Version 1.4. Stand 21.11.2013. Dokument: install.odt. Berger EDV Service Tulbeckstr. Installation und Konfiguration Version 1.4 Stand 21.11.2013 TimeMachine Dokument: install.odt Berger EDV Service Tulbeckstr. 33 80339 München Fon +49 89 13945642 Mail rb@bergertime.de Versionsangaben Autor

Mehr

VWA Rhein-Neckar Dipl.-Ing. Thomas Kloepfer. Kommunikation I (Internet) Übung 4 PHP

VWA Rhein-Neckar Dipl.-Ing. Thomas Kloepfer. Kommunikation I (Internet) Übung 4 PHP VWA Rhein-Neckar Dipl.-Ing. Thomas Kloepfer Kommunikation I (Internet) Übung 4 PHP SS 2004 Inhaltsverzeichnis 1. PHP die serverseitige Programmiersprache...1 1.1. PHP - Bereiche in HTML definieren...1

Mehr

SQL. SQL = Structured Query Language, ist eine standardisierte Sprache zum Gebrauch im Zusammenhang mit Datenbanken.

SQL. SQL = Structured Query Language, ist eine standardisierte Sprache zum Gebrauch im Zusammenhang mit Datenbanken. Vorlesungsteil SQL Grundlagen - 1 / 8 - SQL SQL = Structured Query Language, ist eine standardisierte Sprache zum Gebrauch im Zusammenhang mit Datenbanken. Auf einem Server (Rechner im Netz, der Dienste

Mehr

Aktuelle Sicherheitsprobleme im Internet

Aktuelle Sicherheitsprobleme im Internet Herbst 2014 Aktuelle Sicherheitsprobleme im Internet Wirtschaftsinformatik: 5. Semester Dozenten: Rainer Telesko / Martin Hüsler Fachhochschule Nordwestschweiz FHNW / Rainer Telesko - Martin Hüsler 1 Inhalt

Mehr

SQL Injection Funktionsweise und Gegenmaßnahmen

SQL Injection Funktionsweise und Gegenmaßnahmen SQL Injection Funktionsweise und Gegenmaßnahmen EUROSEC GmbH Chiffriertechnik & Sicherheit Tel: 06173 / 60850, www.eurosec.com EUROSEC GmbH Chiffriertechnik & Sicherheit, 2005 Problematik SQL-Injection

Mehr

Collax Web Application

Collax Web Application Collax Web Application Howto In diesem Howto wird die Einrichtung des Collax Moduls Web Application auf einem Collax Platform Server anhand der LAMP Anwendung Joomla beschrieben. LAMP steht als Akronym

Mehr

MySQL 101 Wie man einen MySQL-Server am besten absichert

MySQL 101 Wie man einen MySQL-Server am besten absichert MySQL 101 Wie man einen MySQL-Server am besten absichert Simon Bailey simon.bailey@uibk.ac.at Version 1.1 23. Februar 2003 Change History 21. Jänner 2003: Version 1.0 23. Februar 2002: Version 1.1 Diverse

Mehr

BillSAFE Payment Layer Integration Guide

BillSAFE Payment Layer Integration Guide BillSAFE Payment Layer Integration Guide letzte Aktualisierung: 10.06.2013 Inhaltsverzeichnis 1 Vorwort...2 1.1 Inhalt...2 1.2 Zielgruppe...2 1.3 Voraussetzungen...2 1.4 Feedback...2 1.5 Versionshistorie...3

Mehr

PHP-Security. Aleksander Paravac. watz@lug-bamberg.de http://www.lug-bamberg.de. Aleksander Paravac (GNU/Linux User Group Bamberg/Forchheim) 1 / 27

PHP-Security. Aleksander Paravac. watz@lug-bamberg.de http://www.lug-bamberg.de. Aleksander Paravac (GNU/Linux User Group Bamberg/Forchheim) 1 / 27 PHP-Security Aleksander Paravac watz@lug-bamberg.de http://www.lug-bamberg.de Aleksander Paravac (GNU/Linux User Group Bamberg/Forchheim) 1 / 27 Übersicht 1 Motivation 2 Einsatz von PHP auf dem Webserver

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

Grundlagen der EDV 3. Vorlesung mit Übungen. Dipl. Ing. Martin Ney

Grundlagen der EDV 3. Vorlesung mit Übungen. Dipl. Ing. Martin Ney Grundlagen der EDV 3 Vorlesung mit Übungen Dipl. Ing. Martin Ney Grundlagen der EDV 3 HTML und CSS HTML und PHP CMS Datenbanken SQL Grundlagen der EDV 2/29 Internetprotokolle HTTP zum Abruf von Internetdateien

Mehr

eadmin Manual Universitätsstraße 3 56070 Koblenz Deutschland

eadmin Manual Universitätsstraße 3 56070 Koblenz Deutschland DOKUMENT: TYP: ERSTELLT VON: Manual nova ratio AG Universitätsstraße 3 56070 Koblenz Deutschland VERSION: STAND: 9.x 23. September 2015 Inhaltsverzeichnis 1 2 2.1 2.2 2.3 3 3.1 3.2 3.3 4 4.1 4.2 4.3 4.4

Mehr

Active Server Pages. Internetanbindung von Datenbanken. Gliederung. Einführung in ASP. Sessions mit ASP. Datenbankanbindung mit ASP ASP-1

Active Server Pages. Internetanbindung von Datenbanken. Gliederung. Einführung in ASP. Sessions mit ASP. Datenbankanbindung mit ASP ASP-1 Internetanbindung von Datenbanken Active Server Pages ASP-1 Gliederung Einführung in ASP Sessions mit ASP Datenbankanbindung mit ASP Brunner, Fromm, Huppert ASP-2 Einführung in ASP ASP-3 Entwicklung des

Mehr

Zugriff auf Daten der Wago 750-841 über eine Webseite

Zugriff auf Daten der Wago 750-841 über eine Webseite Zugriff auf Daten der Wago 750-841 über eine Webseite Inhaltsverzeichnis Einleitung... 3 Auslesen von Variablen... 4 Programm auf der SPS... 4 XML-Datei auf der SPS... 4 PHP-Script zum Auslesen der XML-Datei...

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

Thema: SQL-Injection (SQL-Einschleusung):

Thema: SQL-Injection (SQL-Einschleusung): Thema: SQL-Injection (SQL-Einschleusung): Allgemein: SQL (Structured Query Language) ist eine Datenbanksprache zur Definition von Datenstrukturen in Datenbanken sowie zum Bearbeiten (Einfügen, Verändern,

Mehr

LAMP HowTo (Linux Apache MySQL PHP) Zugriff per SSH auf den Server. Servername: gyko.no-ip.info (Lokal: 192.168.2.10)

LAMP HowTo (Linux Apache MySQL PHP) Zugriff per SSH auf den Server. Servername: gyko.no-ip.info (Lokal: 192.168.2.10) LAMP HowTo (Linux Apache MySQL PHP) Zugriff per SSH auf den Server Servername: gyko.no-ip.info (Lokal: 192.168.2.10) Stand: 04-2014 Warum Zugriff auf einen Server per SSH? Zunächst einmal möchte ich, dass

Mehr

JOB SCHEDULER. Managed User Jobs. Dokumentation Juli 2005. MySQL-Job-Automation

JOB SCHEDULER. Managed User Jobs. Dokumentation Juli 2005. MySQL-Job-Automation MySQL-Job-Automation Managed User Jobs JOB SCHEDULER Dokumentation Juli 2005 Software- und Organisations-Service GmbH Giesebrechtstr. 15 D-10629 Berlin Telefon (030) 86 47 90-0 Telefax (030) 861 33 35

Mehr

z.b. 192.168.0.180 Ihr Datensammelpunkt bekommt dann die Serveradresse http://192.168.0.180 / grafstat/..

z.b. 192.168.0.180 Ihr Datensammelpunkt bekommt dann die Serveradresse http://192.168.0.180 / grafstat/.. Grafstat Datensammelpunkt on Stick Voraussetzungen Ein Datensammelpunkt besteht aus eine Reihe von PHP-Scripten ( oder Perl/CGI). Damit diese Scripte funktionieren, braucht man einen Webserver ( z.b. Apache

Mehr

entweder: zeilenweise fgets() oder: zeichenweise fgetc()

entweder: zeilenweise fgets() oder: zeichenweise fgetc() PHP stellt viele Funktionen zur Verfügung, um mit Dateien effektiv zu arbeiten. Die grundsätzliche Vorgehensweise beim Auslesen einer Datei sieht wie folgt aus: 1. Öffnen der Datei fopen() 2. schrittweises

Mehr

In Tabelle 2.1 sehen Sie das Ergebnis beider Ausführungen auf meiner Maschine.

In Tabelle 2.1 sehen Sie das Ergebnis beider Ausführungen auf meiner Maschine. Kapitel 2 Datenverwaltung durch SQL Server Wir wollen das obige Skript zwei Mal laufen lassen, einmal mit und einmal ohne eingeschalteten Schreibcache der Festplatte. Für eine lokale Festplatte können

Mehr

Erste Schritte mit Eclipse

Erste Schritte mit Eclipse Erste Schritte mit Eclipse März 2008, KLK 1) Java Development Kit (JDK) und Eclipse installieren In den PC-Pools der HAW sind der JDK und Eclipse schon installiert und können mit dem Application Launcher

Mehr

Verbindung zur Oracle-Datenbank auf dem Server der Fachhochschule Regensburg herstellen

Verbindung zur Oracle-Datenbank auf dem Server der Fachhochschule Regensburg herstellen Oracle Verbindung zur Oracle-Datenbank auf dem Server der Fachhochschule Regensburg herstellen Damit man mit PHP auf eine Oracle-Datenbank zugreifen kann, ist es notwendig, einen Oracle-Server zu installieren.

Mehr

SQL (Structured Query Language) Schemata Datentypen

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

Mehr

IV. Datenbankmanagement

IV. Datenbankmanagement Wirtschaftsinformatik 2 (PWIN) IV. Datenbankmanagement Kapitel 2: Datenmanipulationssprache SQL Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security 1 Agenda 1.

Mehr

Übertragung von Terminen und Baustellen

Übertragung von Terminen und Baustellen In dieser Dokumentation wird die Anwendung und die Konfiguration der Programme beschrieben, die für die Übertragung der Baustellen und Termine aus der KWP SQL-Datenbank an das virtic-system verwendet werden

Mehr

SQL-Befehlsliste. Vereinbarung über die Schreibweise

SQL-Befehlsliste. Vereinbarung über die Schreibweise Vereinbarung über die Schreibweise Schlüsselwort [optionale Elemente] Beschreibung Befehlsworte in SQL-Anweisungen werden in Großbuchstaben geschrieben mögliche, aber nicht zwingend erforderliche Teile

Mehr

Datenbanktechnologie mit praktischen Übungen in MySQL und PHP

Datenbanktechnologie mit praktischen Übungen in MySQL und PHP Datenbanktechnologie mit praktischen Übungen in MySQL und PHP Übung, Sommersemester 2013 29. April 2013 - MySQL 2 Sebastian Cuy sebastian.cuy@uni-koeln.de Aufgaben Anmerkungen Best practice: SQL Befehle

Mehr

Multisite Setup. mit Nutzung von Subversion. Drupal Voice Chat 21.10.2008 mcgo@drupalist.de

Multisite Setup. mit Nutzung von Subversion. Drupal Voice Chat 21.10.2008 mcgo@drupalist.de Multisite Setup mit Nutzung von Subversion Drupal Voice Chat 21.10.2008 mcgo@drupalist.de 1 Voraussetzungen Server (dediziert oder virtuell) Zugriff auf Terminal (z.b. per ssh) Webserver / Datenbankserver

Mehr

SQL structured query language

SQL structured query language Umfangreiche Datenmengen werden üblicherweise in relationalen Datenbank-Systemen (RDBMS) gespeichert Logische Struktur der Datenbank wird mittels Entity/Realtionship-Diagrammen dargestellt structured query

Mehr

PHP Übungsaufgabe 3 1 / 5. Doing Web Apps. PHP Übungsaufgabe 3

PHP Übungsaufgabe 3 1 / 5. Doing Web Apps. PHP Übungsaufgabe 3 1 / 5 Doing Web Apps PHP Übungsaufgabe 3 Werkzeuge Text-Editor, beispielsweise Notepad++ Webserver mit aktiviertem PHP Modul + MySQL-Datenbank Unterlagen Ziele SelfHTML PHP API Handbuch Alle Dokumente

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

MySQL Schulung - Zusammenfassung

MySQL Schulung - Zusammenfassung MySQL Schulung - Zusammenfassung Marcel Noe 9.10-20.10.2006 Kapitel 1 1.1 MySQL Einführung 1.1.1 Einleitung Bei MySQL handelt es sich um einen sehr skalierbares Datenbank-Management System. MySQL wird

Mehr

Einführung in PHP. (mit Aufgaben)

Einführung in PHP. (mit Aufgaben) Einführung in PHP (mit Aufgaben) Dynamische Inhalte mit PHP? 2 Aus der Wikipedia (verkürzt): PHP wird auf etwa 244 Millionen Websites eingesetzt (Stand: Januar 2013) und wird auf etwa 80 % aller Websites

Mehr

Einstieg in das SQL- und Datenbanktuning 14.01.2009. Loblied auf den Tabellen-Index!

Einstieg in das SQL- und Datenbanktuning 14.01.2009. Loblied auf den Tabellen-Index! 1/40 PHP-User-Group Stuttgart 14.01.2009 Warum Datenbanken einen Hals bekommen und was sich dagegen tun lässt. Tuning und Performancesteigerung ohne zusätzliche Hardware. Ein. Loblied auf den Tabellen-Index!

Mehr

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

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

Mehr

Datenbank Anbindung. Arthur Zaczek. Nov 2014

Datenbank Anbindung. Arthur Zaczek. Nov 2014 Arthur Zaczek Nov 2014 1 Datenbank Anbindung 1.1 Übersicht Datenbankanbindung mit JDBC und ADO.NET. 1.2.NET ADO.NET Kein Treiberkonzept. Jede Datenbank hat eigenes Set an Klassen. Meistens wird für nur

Mehr

MySql Backup. Backup mit phpmyadmin. ITST Systemberatung MySql Backup

MySql Backup. Backup mit phpmyadmin. ITST Systemberatung MySql Backup Backups (Dumps)/Restores von MySql-Datenbanken lassen sich generell über zwei Wege bewerkstelligen. Zum einen mit Middleware wie phpmyadmin oder MySqlFront und ähnlichen graphischen Oberflächen. Grundsätzlich

Mehr

SOS_Connection Zugriffsschicht für Datenbanken PHP-KLASSEN. Klassendokumentation 30. November 2005. Software- und Organisations-Service GmbH

SOS_Connection Zugriffsschicht für Datenbanken PHP-KLASSEN. Klassendokumentation 30. November 2005. Software- und Organisations-Service GmbH Software- und Organisations-Service GmbH PHP-KLASSEN SOS_Connection Zugriffsschicht für Datenbanken Klassendokumentation 30. November 2005 Software- und Organisations-Service GmbH Giesebrechtstr. 15 D-10629

Mehr

Einführung in SQL Datenbanken bearbeiten

Einführung in SQL Datenbanken bearbeiten Einführung in SQL Datenbanken bearbeiten Jürgen Thomas Entstanden als Wiki-Buch Bibliografische Information Diese Publikation ist bei der Deutschen Nationalbibliothek registriert. Detaillierte Angaben

Mehr

Website-Entwicklung mit lokalem Apache Webserver

Website-Entwicklung mit lokalem Apache Webserver Tutorials für die Website-Entwicklung 2007 René von Bulmerincq, Siteform Website-Entwicklung mit lokalem Apache Webserver 4 Warum brauche ich einen Webserver? Wenn Sie beginnen, Ihre erste Website zu bauen,

Mehr

Einstieg in AJAX-Programmierung

Einstieg in AJAX-Programmierung www.happy-security.de präsentiert: Einstieg in AJAX-Programmierung Autor: Tsutomu Katsura Datum: 26. Mai 2006 Herzlich willkommen zu meinem kleinen Tutorial über AJAX-Programmierung. Ich möchte hier nicht

Mehr

JOSCHA FETH DYNAMISCHE WEBSEITEN MIT FLASH UND PHP

JOSCHA FETH DYNAMISCHE WEBSEITEN MIT FLASH UND PHP JOSCHA FETH DYNAMISCHE WEBSEITEN MIT FLASH UND PHP KAPITEL 4 PHP, MYSQL UND FLASH 76 Kapitel 4 MySQL (www.mysql.com) ist ein relationales Datenbanksystem. Abfragen bzw. manipulieren lässt sich die Datenbank

Mehr

Scripting Server (Lamp) Domain Hosting

Scripting Server (Lamp) Domain Hosting Scripting Server (Lamp) Domain Hosting Quick-Start Guide 08.12.09 - HS - 1/14 Inhalt 1 Einführung...3 1.1 Administration der Internetseiten...3 1.2 Administrationsoberfläche...4 2 Grundkonfiguration...

Mehr

DB2 Kurzeinführung (Windows)

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

Mehr

SQL-Anweisungen. SELECT (SQL Data Query Language)

SQL-Anweisungen. SELECT (SQL Data Query Language) SQL-Anweisungen SELECT (SQL Data Query Language) SELECT * SELECT * FROM "meine Tabelle"; SELECT feldname1, feldname2 SELECT feldname1, feldname2 FROM meinetabelle ORDER BY feldname2, feldname1 DESC; WHERE

Mehr

Praktikum Datenbanken / DB2 Woche 1: Einführung, Organisatorisches, Arbeitsumgebung

Praktikum Datenbanken / DB2 Woche 1: Einführung, Organisatorisches, Arbeitsumgebung Praktikum Datenbanken / DB2 Woche 1: Einführung, Organisatorisches, Arbeitsumgebung Sascha Kriewel Thomas Beckers Matthias Jordan 16.-20. November 2009 Datum Team (Account) Passwort Aktuelle Informationen,

Mehr