Lektion 2: Grundlagen Relationaler Datenbank-Management-Systeme

VonDr.-Ing. Erik Neitzel
Lektion 2: Grundlagen Relationaler Datenbank-Management-Systeme

Diese Lektion bietet eine Einführung in grundlegende Konzepte relationaler Datenbankverwaltungssysteme. Sie dient nur einem theoretischen Zweck. Du benötigst sie nicht, um eine Anwendung zu erstellen. Wenn Du jedoch verstehst, was dein WordPress-System “unter der Haube” tut, kannst Du andere Lektionen in einen besseren Kontext bringen.

Elemente, Konzept und Sprachen eines Datenbank-Systems

Ein relationales Datenbanksystem (DBS) besteht aus folgenden Komponenten:

  • Ein Datenbankverwaltungssystem (DMBS), eine Software, die das ACID-Konzept unterstützen kann
  • Eine Datenbank (DB), die relationale Daten enthält

What is the ACID concept?

  • Atomizität (alles oder nichts – es gibt keinen Zustand zwischen einem Zustand vor und nach einer gewünschten Änderung)
  • Konsistenz (Daten sind vor und nach einer Änderung konsistent – unabhängig davon, wie viele interne Transaktionen erforderlich sein können, damit das System diesen sicheren Status beibehält)
  • Isolation (offensichtlicher exklusiver Zugriff – Ihre Anwendung kann auf die gesamte Datenbank zugreifen, auch wenn eine andere Anwendung dasselbe tut, ohne sich gegenseitig zu stören)
  • Haltbarkeit (Daten werden jederzeit dauerhaft auf das Trägermedium geschrieben)

Damit das Datenbanksystem all dies erreicht, werden Transaktionen verwendet. Transaktionen sind eine Folge von Operationen, die zu unterschiedlichen Datenzuständen führen. Diese Vorgänge ändern keine Daten, auf die andere Benutzer zugreifen können, bis ein Commit an den DBS gesendet wird. Sobald ein Commit abgeschlossen ist, kann nur auf geänderte Datensätze zugegriffen werden, nicht mehr auf diejenigen, die vor einer Änderung vorgenommen wurden.

Um mit Daten im Sinne eines Datenbanksystems umgehen zu können, müssen wir zwischen den folgenden Sprachen unterscheiden, die Teil der gesamten SQL-Struktur (Structured Query Language) sind:

  • Data Definition Language (DDL)
  • Data Manipulation Language (DML)
  • Interactive Query Langauge (IQL)

Wir verwenden DDL beim Erstellen von Tabellen, DML beim Einfügen, Aktualisieren oder Löschen von Tabellendaten und IQL beim Auswählen bestimmter Teile der Datenbank.

Ein Transaktions-Commit kann automatisch nach jeder SQL-Operation oder manuell mit dem an die Datenbank gesendeten Commit-Befehl initiiert werden. Dies ist immer dann nützlich, wenn Du bestimmte Daten, die durch einen Geschäftsfall miteinander verbunden sind, gemeinsam ändern möchtest, ohne dass Benutzer nur auf Teile davon zugreifen können.

Die Perspektive eines Bloggers in Richtung Datenbanken

Für dich als Blogger ist es wichtig zu verstehen, wann Datenbankaktionen ausgeführt werden und zu welcher Kategorie sie gehören:

  • Durch die Installation Ihrer WordPress-Installation werden viele Datenbanktabellen erstellt und mit Anfangsdaten gefüllt, von denen einige von Ihren grundlegenden Installationseingaben abgeleitet sind (z. B. Name Ihres Blogs, E-Mail-Adresse Ihres Administrators oder Ihr persönliches Kennwort) (DDL).
  • Jedes von Ihnen aktivierte WordPress-Plugin erstellt höchstwahrscheinlich neue Tabellen in Ihrer Datenbank (DDL).
  • Sobald Du einen Beitrag speicherst, werden bestimmte Datenbanktabellen (z. B. wp_posts und wp_post_metadata) aktualisiert (DML).
  • Wenn Du dich bei deiner Blog-Software anmeldest, werden deine Benutzerdaten (Benutzername und Kennwort) auf Übereinstimmung in einer Datenbanktabelle überprüft (z. B. wp_users bei Verwendung von WordPress) (IQL).
  • Wenn ein Benutzer deine Website besucht, werden PHP-Skripte aufgerufen, die Daten aus deiner Datenbank lesen (IQL), welche verwendet werden, um dem Besucher-Webbrowser scheinbar statischen HTML-Code zu liefern.

Der letzte Punkt zeigt bereits, warum Du als Blogger und WordPress-Administrator höchstwahrscheinlich Caching-Plugins verwendest. Diese laden alle erforderlichen Datenbankinhalte vor und erstellen statischen HTML-Code, der bei jeder Anforderung an den Browser gesendet wird. Auf diese Weise verhindern wir, dass die gesamten IQL-Prozesse (Database Requesting) für jede Anforderung immer wieder wiederholt werden, ohne dass tatsächlich neuer Inhalt in der Datenbank vorhanden ist. Diese Plugins müssen diesen statischen HTML-Code nur dann neu erstellen, wenn Sie den Inhalt eines Posts ändern.

Die nächsten Lektionen:

Dr.-Ing. Erik Neitzel