Die Datenbank, das unbekannte Wesen Teil I

Die Datenbank

Nachdem einige Anfragen bei mir aufgeschlagen sind, was nun besser sei, eine Datenbank mit vielen Tabellen oder mehrere Datenbanken mit nur wenigen Tabellen, will ich dies zum Anlass nehmen, eine kleine Artikelserie über die Datenbanken allgemein zu erstellen. Anlass für die Rückfragen waren die Artikel Datenbanken im Webspace und Testblog in gleicher Datenbank installieren!

Nehmen wir als Beispiel einen Blog und betrachten hierbei was in der Datenbank gespeichert wird. Sie haben in WordPress eine ganze Reihe von Tabellen in der Datenbank, die nicht nur die Artikel festhalten, sondern auch die Kommentare, ja auch die Ausgestaltung der Seiten, ihre Formatierungen u.v.m. Das eigentliche Programm, das WordPress unterliegt, holt sich die Daten aus der Datenbank, baut sich eine Seite zusammen und schickt diese an den Client – also Ihren Browser.

Wenn Kommentare geschrieben werden, werden diese – ich sag mal – vom Rahmenprogramm auf die Datenbank gespeichert und im Admin-Teil des Blogs zur Genehmigung angeboten. Ist der Kommentar genehmigt, dann wird sofort beim Zusammenbau der Seite eines Blogartikels dieser Kommentar auch mit angezeigt.

All diese Daten stehen in einer Hand voll Datenbanktabellen, die zum Blog gehören. Das Rahmenprogramm sucht sich mit Abfragen an die Datenbank alle die Informationen zusammen, die es braucht, um einen Artikel anzuzeigen. Soweit ist das wohl jedem klar!

Doch was passiert eigentlich in der Datenbank? Was tut das Ding? Wie wird es gerufen?

Warnung

In dieser Artikelserie wird es nicht um die bloße Darstellung der Tabellen in der Datenbank gehen, sondern es soll ein kleiner – hoffentlich verständlicher – Einstieg in die Datenbanktheorie erfolgen. Es sollen Fragen beantwortet werden wie:

  • Was ist eine Datenbank?
  • Wie betreibt ein Betriebssystem eine Datenbank?
  • Wie gibt eine Datenbank Daten zurück und an wen?
  • Welchen Aufwand muss das Betriebssystem für eine Datenbank betreiben?
  • Was ist besser: Viele Tabellen in einer DB oder viele DBs mit einer Tabelle?
  • Wie kann ich eine Datenbank verschnellern?

Um alle diese Frage zu beantworten zu können, müssen Sie mit mir in ein wenig Datenbanktheorie einsteigen. Doch hoffe ich, wenn Sie die Antworten auf diese Fragen verstanden haben, dass es Ihrem Verständnis für eine Datenbank weiterhilft.

Dabei muss ich Sie in einige informationstheoretische Themen mitnehmen, damit Sie verstehen, wie eine Datenbank, und die Kommunikation mit dieser funktioniert. Es wird also theoretisch werden, deshalb als Überschrift die „WARNUNG“! Ich versuche es aber so verständlich und anschaulich wie möglich zu halten!
Falls Sie das nicht finden, dann seien Sie jetzt schon beauftragt, mich zu stoppen und Kommentare zu schreiben.

(Blog-)Seite und Datenbank

Dass WordPress Ihre Artikel und Blog-Gestaltungsdaten in einer Datenbank speichert, habe ich oben schon erwähnt. Ich möchte auf das Beispiel des Kommentarschreibens näher eingehen und dieses als erstes beleuchten.

Stellen Sie sich vor, Sie wollen in diesem Artikel einen Kommentar schreiben. Das haben Sie bestimmt schon bei vielen Blogs getan. Aber haben Sie auch mal daran gedacht, dass Sie ja nicht alleine sind, der hier gerade und jetzt einen Kommentar schreiben will? Es könnten parallel zu Ihnen ja noch 1.000 Andere sein, die zur gleichen Sekunde wie Sie, auf den „Absende“-Button des Kommentars klicken.

Nicht genug damit, stellen Sie sich vor, nicht alle 1.000 schicken den gleichen Kommentar, sondern die 1000 Klicks kommen von unterschiedlichen Artikeln. In dieser Sekunde kommen also beim Server 1.000 Kommentar-Formulare an. Diese müssen in die Datenbank geschrieben werden. Aber es ist ja nicht nur das Schreiben, sondern das Programm, das den Kommentar an die Datenbank überträgt, will ja auch wissen, ob das Schreiben Ok war.

Woher weiß jetzt die Datenbank, wem Sie jetzt Antwort geben soll? Die Datenbank erhält 1.000 mal unterschiedlich ausgefüllte Formularfelder, wem soll sie nun antworten? Was ist, wenn ein Schreiben schief geht? Woher weiß die Datenbank, wem sie den Fehler melden soll?

Ein anderes Beispiel: Sie haben mehrere Webseiten, die nacheinander aufgeschlagen werden – denken Sie an die Abwicklung einer Bestellung! Sie geben zunächst Ihre Anmeldung ein, dann auf einer weiteren Seite die Anzahl der Artikel, die sie kaufen möchten. Woher weiß die Datenbank, dass Sie das auf der 2. Seite sind, wenn parallel hunderte andere auch über diese Webseiten etwas bestellen?

Dies alles sind Fragen, die sowohl mit der Realisierung einer Seite im Webserver zusammenhängen, als auch mit der Datenbank. Es würde alles ok laufen, wenn nicht einer doch die Bestellung letztendlich nicht absendet, sondern den Browser schließt.

Die grundlegende Frage ist, wie erkennt der Server und die Datenbank, was zu wem gehört. Wie arbeitet der Server und die Datenbank die Flut von Anfragen ab!

Sicherlich haben Sie in den Medien schon gehört, dass Server überlastet werden können. Dann warten Sie ewig auf eine Antwort! Was ist da geschehen?
Wie kann man das im Griff halten?

Das sind die Fragen mit denen wir uns im Weiteren beschäftigen wollen. Fragen nach sog. Transaktionen, Serialisierungen, Warteschlangen etc.

Seien Sie gespannt, demnächst mehr

Bernd Klüppelberg

Hier noch alle Links auf die Artitkelserie:
Die Datenbank, das unbekannte Wesen Teil II
Die Datenbank, das unbekannte Wesen Teil III
Die Datenbank, das unbekannte Wesen Teil IV
Die Datenbank, das unbekannte Wesen Teil v
Die Datenbank, das unbekannte Wesen Teil VI

Bisher gibt es keinen Kommentar. Schreiben Sie einen Kommentar!

Schreibe einen Kommentar