Abstrakte Darstellung von MySQL und Datenbank

PHP - Steuerung der Datenbank mit MySQL

Was ist eine Datenbank?

Ganz simpel beschrieben ist eine Datenbank ist eine Sammlung von Tabellen mit Datensätzen. Diese Tabellen können mit Daten eines Online-Shops, Blogs oder Fotogalerie gefüllt sein. Ein Datensatz könnte beispielsweise ein Produkt aus einem Shop sein. Oder ein neuer Eintrag in einem Online-Blog. Eine Datenbank kann mehrere Tabellen beinhalten, die für die verschiedenen Daten einer Webanwendung heran gezogen werden.

Die Tabelle

Eine Tabelle enthält wie in Excel Spalten und Reihen. Die Spalten haben einen Titel, der den Inhalt der Zelle definiert. Die "Reihen" bezeichnet man auch als Datensatz, dessen Inhalte Zellen sind, die sich auf die Spalten beziehen. Also definieren die Datensätze jedes Produkt eines Online-Shops.

In diesem Beispiel könnte eine Tabelle für die Produkte definiert sein. Eine weitere Tabelle ist für die Kundendaten, oder auch das Kundenkonto und eine andere wäre zum Beispiel für die Bestellungen zuständig. Natürlich ist es wichtig, in diesem Konstrukt die Tabellen miteinander zu verknüpfen. Zum Beispiel wird in die Bestellung ein Verweis auf die ID eines Podukts gesetzt. Und auch das Kundenkonto ist mit der betreffenden Bestellung verknüpft. Weiter führend ist das Kundenkonto mit den IDs aus der Tabelle für die Bestellung verknüpft, damit der Kunde einsehen kann, wann er welche Produkte bestellt hat.

Der Datensatz

Jeder Datensatz muss eine eindeutige ID besitzen, die als Unikat in der Tabelle vorhanden ist. Im Beispiel einer Produkt-Tabelle werden Artikelnummer, Beschreibung, Preis und der Lagerbestand in weitere Spalten eingepflegt. Je umfangreicher die Tabelle, desto mehr Zellen enthält sie auch.

MySQL als Datenbankverwaltungssystem

MySQL ist eines der weltweit verbreitetsten relationalen Datenbankverwaltungssysteme. Es ist als Open-Source-Software sowie als kommerzielle Enterpriseversion für verschiedene Betriebssysteme verfügbar und bildet die Grundlage für viele dynamische Webauftritte.

MySQL wurde seit 1994 vom schwedischen Unternehmen MySQL AB entwickelt. Der Name MySQL setzt sich zusammen aus dem Vornamen My, den die Tochter des MySQL-AB-Mitbegründers Michael Widenius trägt, und SQL.

Viele Webdienste bedienen sich dieser Architektur und betreiben je nach Größe und Bedarf eine Vielzahl von MySQL-Servern, über die die Zugriffe aus dem Netz abgewickelt werden. MySQL wird unter anderem verwendet von Flickr, YouTube, Facebookund Twitter. Daneben wird MySQL in vielen Produkten als eingebettetes Datenbanksystem eingesetzt.

Ein bevorzugtes Einsatzgebiet von MySQL ist die Datenspeicherung für Webservices. MySQL wird dabei häufig in Verbindung mit dem Webserver Apache bzw. Nginx und der Skriptsprache PHP eingesetzt. MySQL sieht grundsätzlich einen MySQL-Server vor, auf dem Daten gespeichert sind, und einen oder mehrere MySQL-Clients, die Anfragen an den Server schicken, die dieser beantwortet. Der Standardport für den MySQL-Server ist 3306 im Transmission Control Protocol (TCP).

Ein Client kann Datenbankanfragen an einen MySQL-Server schicken. Dieser ist dafür zuständig, jede Anfrage möglichst performant zu bearbeiten. Dabei wird zunächst der Query-Cache befragt und bei nicht vorhandenem Ergebnis die Anfrage geparst, optimiert und schließlich ausgeführt; das Ergebnis wird dann zurückgegeben.

PHP als Befehlsgeber für MySQL

Mittels der Skriptsprache PHP können die Befehle für die Datenbankverwaltung ausgeführt werden. Über so genannte Queries werden die Befehle an die Datenbank gesendet und der Prozess des Parsings beginnt.

Parsing

Bei diesem Prozess wird zunächst geprüft, ob ihre Syntax gültig ist. Die Query-Anfrage wird in ihre einzelnen Komponenten zerlegt und zeitgleich werden grundlegende Informationen wie z.B. SELECT, INSERT oder UPDATE, die betroffene Tabelle und eine eventuelle WHERE-Klausel ermittelt. Somit entsteht ein so genannter Parse-Baum, welcher von MySQL dann optimiert werden kann.

Grundlegende Informationen

Der einfachste Befehl für die Abfrage aller Datensätze sieht wie folgt aus: " SELECT * FROM produkte ". Das * beinhaltet alle Spalten und Datensätze der Tabelle "Produkte". Die direkte Auswahl einer Spalte gestaltet sich so: " SELECT id FROM produkte ". In diesem Fall wird nur die Spalte "id" angesteuert, jedoch sind alle Datensätze betroffen. Sollen nur bestimmte Datensätze ausgewählt werden, muss man einen Parameter setzen, der sich in einer Spalte befindet: " SELECT * FROM produkte WHERE farbe=rot ". Hier legen wir einen Filter fest, der nur die Datensätze hervor holt, bei dem die Spalte "Farbe" den Inhalt "rot" vorweist. Die eingrenzenden Parameter lassen sich mit "AND" aneinander reihen, mit "OR" gibt man ein "entweder - oder" vor und nicht zu vergessen wären "ORDER BY" - sortieren der gefundenen Datensätze (z.B. auf- oder absteigend)

Natürlich gibt es weitere Befehle, die zur Auswertung oder auch zur Verwaltung einer Datenbank dienen. Hier nur die einfachsten zum Bearbeiten einer Tabelle:
  • "INSERT INTO produkte (spalte1, spalte2, ...) VALUES (wert1, wert2, ...)" - einen neuen Datensatz in der Tabelle "Produkte" anlegen und mit Inhalten füllen.
  • "UPDATE produkte SET spalte1 = wert1, spalte2 = wert2, ... WHERE id = 123" - den Datensatz mit der ID "123" aktualisieren und die Spalten mit neuen Inhalten füllen.
  • "DELETE FROM produkte WHERE id = 123" - den Datensatz mit der ID "123" aus der Tabelle löschen.
  • "CREATE DATABASE shop" - erzeuge eine neue Datenbank mit dem Namen "shop".
  • "CREATE TABLE kunden (spalte1 datentyp, spalte2 datentyp, ...)" - eine neue Tabelle namens "kunden" anlegen und die Spalten definieren. Datentyp kann eine Zahl (integer) oder auch eine Zeichenkette (varchar) sein.

Es gibt unzählige weitere Befehle mit den diversesten Parametern geschmückt. Das Handling einer Datenbank umfasst einen großen Syntax. Eine geeignete Anlaufstelle für die Erklärungen von MySQL Parsing-Befehlen und guten Tutorials findet sich hinter dem folgenden Button.

Lars Urban - Frontent-Developer und Webseiten-Programmierung