Bei MySQL handelt es sich um ein relationales Datenbanksystem, das sich bei Entwicklern großer Beliebtheit erfreut. MySQL kann sowohl in einer kommerziellen Version als auch als Open Source-Software bezogen werden. Das Datenbanksystem ist für eine Vielzahl unterschiedlicher Plattformen und Betriebssysteme erhältlich und bildet bei vielen modernen Websites und Webapps die technische Basis für das Speichern von Daten. Dank seiner performanten und schlanken Architektur ist MySQL in der Lage, enorme Datenmengen schnell und äußerst effizient zu verwalten, weswegen es bereits seit Jahren bei vielen bekannten IT-Giganten zum Einsatz kommt, wie zum Beispiel:
- Microsoft
Inhalt
Entwicklungsgeschichte
Die beiden finnischen Informatiker Michael Widenius und David Axmark begannen im Jahr 1994 in den Laboren der schwedischen Softwareschmiede „My-SQL-AB“ mit der Entwicklung eines neuen relationalen Datenbanksystems. Nach einer Vielzahl interner Alfa-Versionen konnte man MySQL im Jahr 1997 erstmals unter der Version 3.1 der breiten Öffentlichkeit zugänglich machen. MySQL war von Anfang an mit dem Ziel entwickelt, gigantische Datenmengen effizient speichern und verarbeiten zu können. Die ersten öffentlichen Versionen zeigten sich jedoch in ihrem Funktionsumfang sehr beschränkt. Es existierten nur einige wenige Datentypen. Auf die Nutzung von Transaktionen hatte man indes vollständig verzichtet.
Im Rahmen der Version 3.23 wurde die relationale Datenbank mit neuen Datentypen versehen und außerdem Transaktionen hinzugefügt. My-SQL-AB wurde im Jahr 2008 von Sun Microsystems aufgekauft und die Entwicklung an dem Datenbanksystem dank neuer finanzieller Mittel mit einem enormen Tempo fortgeführt, sodass noch im selben Jahr die Version 5.1 veröffentlicht wurde.
Im Jahr 2010 wurde Sun Microsystems vom US-amerikanischen IT-Giganten Oracle übernommen. Auch Oracle führte die Entwicklung von MySQL mit einem rasanten Tempo weiter, sodass im Laufe der Jahre eine Vielzahl neuer Versionen mit zahlreichen neuen Funktionen und Features veröffentlicht wurden. Da das relationale Datenbanksystem ursprünglich als Freeware vorgesehen war, ist der in den beiden Programmiersprachen C und C++ geschriebene Quellcode frei verfügbar.
Wo wird MySQL eingesetzt?
Das relationale Datenbanksystem wird heutzutage in erster Linie im World Wide Web in Kombination mit Webapps und Websites eingesetzt. Viele beliebte Content Management Systeme (CMS) wie zum Beispiel:
- WordPress
- Drupal
- Joomla
nutzen MySQL als relationale Datenbank für das Speichern von Nutzerdaten und um zusammen mit den offenen Webtechnologien JavaScript, HTML und CSS dynamische Websites zu erzeugen.
Aufgrund seiner performanten und modularen Architektur ist die relationale Datenbank in der Lage, Daten schnell und äußerst effizient zu speichern und zu verarbeiten. Die Daten werden innerhalb des Systems so aufbewahrt, dass sie möglichst wenig Speicherplatz in Anspruch nehmen. Die Kommunikation mit dem relationalen System wird über die deklarative Datenbanksprache SQL (Structured Query Language) realisiert. Obwohl der SQL-Standard keine grafische Benutzeroberfläche definiert, kann diese durch den Einsatz externer Plug-ins realisiert werden. Es sind zahlreiche solcher Erweiterungen erhältlich, die dem Anwender ein grafische User Interface (UI) für die Administration von MySQL zur Verfügung stellen. Ein solcher Plug-in ist das Tool „PhpMyAdmin„, das sowohl in einer freien Variante als auch in einer kostenpflichtigen Version erhältlich ist.
Wie funktioniert das relationale Datenbanksystem?
Die relationale Datenbank basiert auf dem traditionellen Client-Server-Modell. Es setzt sich aus einem MySQL-Server und mehreren Clients zusammen, wobei der Server das Kernstück des Systems darstellt. Der Server übernimmt die Verantwortung für das Speichern und die korrekte Verteilung der Daten. Die Speicherung der Daten erfolgt in einer relationalen Datenbank in zweidimensionalen Tabellen, die nicht selten mehrere Millionen Einträge haben können. Solche Tabellen setzen sich aus Spalten (Columns), Reihen (Rows) und Daten zusammen, die sich im Rahmen der Datenbank als verschiedene Datentypen realisieren lassen. Die meistgenutzten Datentypen sind:
- Datum- und Uhrzeitenformate
- Zeichenketten (Char, Varchar und String)
- Numerische Daten (Int, Float)
Die Clients können die auf dem MySQL-Server gespeicherten Daten über strukturierte SQL-Anfragen (SQL-Queries) bearbeiten. Das Löschen, Aktualisieren oder Hinzufügen geschieht ebenfalls über SQL (Structured Query Language). Das relationale Datenbanksystem ist primär an die Verwaltung einer gigantischen
Menge unterschiedlicher Daten ausgelegt. Diese speichert man auf einem zentralen Datenbankserver. Er ist in der Lage ist, eine Vielzahl unterschiedlicher Anfragen der Clients parallel und in Echtzeit abzuarbeiten. Je nach vorgesehenem Einsatzbereich und Architektur der MySQL-Datenbank ist ein Zugriff auf die archivierten Daten über das öffentliche Internet oder ein privates Intranet möglich. Lesen Sie hier alles über das Intranet.
Um die gespeicherten Daten vor nicht erlaubtem Zugriff zu schützen, versieht man die Clients mit unterschiedlichen Rechten, sodass bestimmte Nutzer oder Nutzergruppen Daten nur auslesen können, während andere die gespeicherten Daten auch aktualisieren oder sogar neue Einträge hinzufügen können.
Wie läuft der Ablauf einer Anfrage ab?
Ein Client kann in der Regel Anfragen an einen Datenbankserver schicken. Der Server ist dafür verantwortlich, jede Clientanfragen so genau und so schnell wie möglich zu bearbeiten. Bei diesem Prozess stellt man zunächst eine Anfrage an den sogenannten „Query-Cache“. Falls der Cache die Anfrage nicht beantworten kann, lässt sich die Anfrage in einem dreiteiligen Prozess erst einmal parsen, optimieren und schließlich ausführen. Das Ergebnis der Anfrage wandert somit zurück an den Client.
- Query-Cache: Um Anfragen schneller beantworten zu können, kann MySQL die Ergebnisse von Anfragen in einem sogenannten „Cache“ (Zwischenspeicher) ablegen. Falls der Server zu einem späteren Zeitpunkt eine identische Anfrage erhält, ohne dass sich die Daten in der Datenbank inzwischen verändert haben, beantwortet sich die Anfragte direkt aus dem Query-Cache.
- Parsing: Falls man eine SQL-Query ausführen möchte, unterliegt dies zunächst der Prüfung, ob die Syntax gültig ist. Man teilt sie zu diesem Zweck in einzelne Komponenten auf und analysiert genau.
- Optimierung: Ist eine SQL-Query syntaktisch gültig, steht im nächsten Schritt die Optimierung an. Der
sogenannte „Optimizer„ sucht dabei nach dem effizientesten Weg, die Abfrage zu bearbeiten.
Kritik an MySQL
Seit MySQL AB durch Oracle übernommen wurde, steht das Datenbanksystem immer wieder in der Kritik. Es wird insbesondere kritisiert, dass die Unterschiede zwischen der kommerziellen und freien Version immer gravierender auftreten. Hinzu kommt die Tatsache, dass neue Funktionalitäten nur noch in der kommerziellen Version enthalten sind und keine Tests für die Fehlersuche existieren.
Seit 2012 erodiert auch die Unterstützung aus der Open Source-Community, sodass nach OpenSUSE und Fedora im Laufe der Jahre auch ArchLinux und Slackware das MySQL-Paket durch MariaDB ersetzt haben.