Webseiten und Datenbanken

Im Modul Seitenaufruf einer dynamischen Webseite haben wir gesehen, wie auf dem Server dynamisch - bei jeder Benutzeranfrage aufs neue - HTML-Seiten erzeugt und an den Browser hinausgeschickt werden können. Diesem Vorgang geht natürlich immer eine Anfrage des Client (Get-Request) voraus, mit der auch eine Reihe von Daten an den Server übergeben werden können. Sollen nun diese Daten nicht nur verarbeitet, sondern dauerhaft abgespeichert werden, so wird eine Datenbank eingesetzt. Die Daten werden also nicht nur durch ein serverseitiges Script verarbeitet sondern auch abgelegt.

Der Vorgang kann auch anders ablaufen: Es werden vom Benutzer keine Daten durch den Get-Request gesendet, sondern das Serverscript holt Daten aus einer Datenbank. Diese Daten können noch aufbereitet und als HTML-Dokument an den Benutzer hinausgeschickt werden.

Im Prinzip kann jedes mögliche serverseitig laufende Script (PHP, ASP, Perl, ...) Daten mit einer Datenbank austauschen. Im Internet kommen auch mehrere Datenbanken zur Anwendung. Die am häufigsten verwendete ist MySQL, man findet aber auch MS Access, PostgreSQL, SQL-Server etc. Dabei kann das Script entweder direkt mit der Datenbank "zusammenarbeiten" oder auch (unter Windows) über eine ODBC-Schnittstelle. ODBC steht für Open DataBase Connectivity und ist eine (von Microsoft entwickelte) universelle Schnittstelle für Datenbanken.

Ablauf der Datenbankverbindung

Sehen wir uns den genauen Ablauf der ganzen Transaktion am Beispiel einer PHP/MySQL-Datenbankabfrage einmal näher an:

  1. Der Benutzer schickt mittels GetRequest eine Anfrage nach einer Datei an den Webserver.
  2. Der Webserver erkennt an der Endung der nachgefragten Datei .php, dass er die Datei zuerst an den Script-Prozessor weiterreichen muss.
  3. Der Script-Prozessor (in diesem Fall der PHP-Prozessor) arbeitet in der Datei seinen Script-Code ab. Dort findet er einen Befehl zum Aufbau einer Datenbankverbindung.
  4. Die Verbindung wird (für die Dauer der Abarbeitung dieses Scripts) zwischen dem Script-Prozessor und der Datenbank aufgebaut (mit Usernamen und Passwort). Die Kommunikation auf Seiten der Datenbank übernimmt dabei das Datenbankmanagementsystem (DBMS).
  5. Der Script-Prozessor arbeitet weiter seinen Code ab. Jetzt findet er Befehle mit Datenbankzugriff (Abfragen, Manipulation der Datenbank: z. B. Einfügen von Daten etc.).
  6. Jeder einzelne Datenbankbefehl wird über die aufgebaute Verbindung an das DBMS weitergereicht. Dieses greift auf die physische Datenbank zu und gibt die Ergebnisse der Transaktionen zurück an den Scriptprozessor (entweder Ergebnisse einer Abfrage oder auch Erfolgs- bzw. Fehlermeldungen). Dort werden die Ergebnisse in Variablen abgespeichert.
  7. Wenn der Script-Prozessor auf den Befehl zur Beendigung der Datenbankverbindung stößt, wird die Verbindung aufgelöst.
  8. Das PHP-Script hat nun die abgefragten Daten in Form von Variablen zur Verfügung. Daraus generiert er eine HTML-Seite, die er an den Webserver zurückgibt.
  9. Der Webserver schickt die HTML-Seite wiederum an den Benutzer.

Die folgende Grafik soll die Zusammenhänge noch einmal verdeutlichen:

Module, die für die Durchführung vorausgesetzt werden