Ab wann brauch man eine Datenbank?

17.10.2017

Jetzt am Wochenende haben wir wieder gemerkt, wie wichtig es ist zu Entscheiden ob man eine Datenbank wie MySQL einsetzen möchte. Das Portal eines großen Dienstleisters aus dem Rhein-Main-Gebiet war das ganze Wochenende nicht zu erreichen. Mit einer Fehlermeldung, dass die Datenbank nicht zu erreichen ist, wurde der Besucher vertröstet.

Datenbank nicht erreichbar
Datenbank bei großem Unternehmen ausgefallen

Anwender von WordPress oder Joomla wissen gar nicht, dass man im Web ohne Datenbank auskommen kann. Jetzt stellt sich die Frage, welche Unterschiede das Betreiben einer Webseite mit oder ohne Datenbank mit sich bringt.

Zur Vereinfachung sollte man erstmal verschiedene Typen unterteilen um überhaupt eine grobe Einschätzung zu haben, welche Datenbanken oder Alternativen man für die eigene Webseite nutzen kann. unsere Aufführung ist jetzt unabhängig vom System. Beim Einsatz von WordPress wird z.b. eine SQL Datenbank vorausgesetzt.

MySQL Datenbank

Eine MySQL Datenbank wird über einen SQL Datenbank Server gesteuert und beim Zugriff auf die Webseite vom Webserver aus mit der Seite verbunden. Bei vielen Content Management Systemen werden alle Daten wie User, Blog, Kategorien, Links in der Datenbank gespeichert. Es wird über die Installation, oder einer Konfigurationsdatei der Zugang zur Datenbank gespeichert, der Rest spielt sich auf dem MySQL Server ab.

Quasi schaltet der Hoster einen zweiten Server hinzu, die Gegenseitig miteinander Kommunizieren.

Vor & Nachteile einer MySQL Datenbank

++ weltweit viele aktive Zugriffe mit vielen Änderungen an der Datenbank möglich

++ Workload kann auf verschiedene Server ausgelagert werden

++ Separater Server und Backups bei Ausfällen

-- Nutzt mehr Ressourcen

-- Der Normalanwender kommt eher schlecht an die Daten ran

-- Ausfall des SQL Servers legt auch die Webseite lahm

(amazon: 1492951048)

SQLite

SQLite ist wie man aus dem Namen erkennen kann, eine "Lite"-Version für SQL. Die Funktionsweise ähnelt sich, wie bei der MySQL Datenbank, nur dass Schnittstelle nicht über einen zusätzlichen Server angesteuert wird und die eigentliche Datenbank innerhalb einer einzelnen Datei gespeichert ist.

SQLite Datenbank Manager
SQL Datenbank per Manager aufrufbar

Über einen Datenbank-Manager erstellen wir uns zum Beispiel eine SQLite Datenbank mit unseren Tabellen wie User, Blog, Kategorien und lassen unsere Web-Application beim Aufrufen der jeweiligen Seite eine Anfrage an die Datenbank Datei senden, wo genau wie zur vollwertigen Datenbank jeweilige Informationen abgerufen werden.

Vor & Nachteile einer SQLite Datenbank

++ Kein externer Server notwendig

++ Datenbank als Datei direkt im Webprojekt integriert

++ Eine Datei pro Datenbank, Backup kann durch duplizieren erstellt werden

++ Nutzt SQL Syntax

-- Der Normalanwender kommt schlecht an die Daten ran

-- Performance bei der Leistungsspitze nicht ganz so gut wie MySQL

Flat File

Flat File hat sich in den letzten Jahren immer mehr Entwickelt und durchgesetzt, sodass es inzwischen eine große Auswahl an vergleichbaren Systemen hat, die gänzlich auf eine Datenbank verzichten. Flat File ist so zu verstehen, dass anstatt der Datenbank, jeweilige Information als Text oder Inhalts-Datei auf dem Server gespeichert wird und bei jeweiligem Abruf geladen wird.

Flat-File Datenbank
Flat-File Datenbank für Blogbeiträge

Auch hier ist also kein externer Server-Zugriff von nöten. Inhalte werden in der Regel strukturiert in jeweiligen Verzeichnissen abgelegt und administriert. Bei einem Blog würde pro Blogbeitrag ein Ordner erstellt werden, der zum Beispiel die URL als Dateinamen wiedergibt und innerhalb des Ordners findet man eine Text-Datei wieder, die den Inhalt des Beitrags zum Beispiel in Form von HTML gespeichert hat. Die Webseite ließt also alle Unterordner und Inhaltsdateien aus und interpretiert diese in der Webseite.

Vor & Nachteile einer Flat-File Datenbank

++ Kein externer Server notwendig

++ Struktur in Ordner und Dateien statt Datenbanktabelle

++ Kein SQL Syntax

++ Backup und Änderungen einfach und schnell im Dateisystem

-- Ordner und Datenmenge bei großen Projekten

-- Performance bei großen Projekten

-- Alle Daten auf dem gleichen Server

Methoden im Vergleich

Grundsätzlich kann man mit allen Methoden zum Umsetzen der Inhaltsverwaltung ähnlich gut arbeiten. Im Vergleich der drei Systeme werden die Stärken und Schwächen von MySQL, SQLite und Flat-File schnell klar. Diese machen sich wohl erst bei extrem großen Datensätzen bemerkbar. Für Anwender, die eine eigene kleine Seite betreiben, sind die wichtigsten Merkmale eher nur Bequemlichkeit, wie man Backups und Inhalte verwaltet.

Eine MySQL Datenbank würde so genommen erst dann sinn machen, wenn man über 100.000 Datensätze verarbeitet und man aus Performancegründen die Daten und Seite trennt. Bei kleineren Projekten punkten die beiden anderen Systeme in Sachen Performance und Verwaltung.

(amazon: SQLite Datenbank)

Welche Datenbank soll ich einsetzen?

Grundsätzlich kommt es erst einmal auf das System drauf an. Wie schon gesagt, wenn ein Betreiber seinen Blog auf Wordpress auslegt, wird man quasi gezwungen eine Datenbank über MySQL nutzen. Da bleibt die Entscheidung aus, ob es von der Effizienz oder Leistung des Servers überhaupt sinn macht, eine Datenbank einzusetzen.

Gerade beim Thema Wordpress sehen wir sehr oft, dass eine Webseite eines lokalen Betriebs auf Wordpress aufbaut. Obwohl der Inhalt der Seite nur auf eine Handvoll unterseiten begrenzt ist. Zum einen ist da die Konfiguration und Verwaltung schwieriger, und auch so verschwendet man wertvolle Geschwindigkeit und Leistung des Servers.

Wenn man doch die Möglichkeit besitzt, zu entscheiden welche Art von Datenbank man einsetzen möchte, würden wir immer auf SQLite oder Flat-File zurückgreifen. 99% der Webseiten benötigen es einfach nicht.

Fazit:

Die inhaltliche Gestaltung kann mit beiden einfacheren Methoden genauso sicher und umfangreich gestaltet werden, wie der Einsatz einer Datenbank. Unabhängig zum Inhalt kann selbst ohne Datenbank komplexere Applikationen wie Shop, Blog, Forum oder Inserat-Datenbank erstellt werden.

In den Meisten Fällen ist die MySQL Datenbank ein Overkill. Diese würde sich von der Performance her bemerkbar machen, wenn die Seite hunderttausende Besucher täglich erreicht, oder der Inhalt bereits so umfangreich ist, dass die Trennung von Datenbank und Webserver sinnvoll sein könnte.

Für alle anderen, die Ihr eigenes Unternehmen mit einer Handvoll an Seiten präsentieren, lohnt es sich auf allen Ebenen auf Flat-File oder SQLite umzusteigen. Da brauch man sich auch keine Sorgen machen, dass die Datenbank die Website lahmlegt