Zum Inhalt

Web Literacy: Was ist eine Datenbank?

Der ein oder andere mag sich noch an Bibliotheken erinnern, in denen man das gesuchte Buch mittels eines Zettelkastens auffinden konnte.

In einem Kasten befanden sich mehrere Zettel, auf denen wiederum Buchtitel, Autor, Thema, manchmal eine Zusammenfassung oder Kategorien vermerkt waren. Und zwei ganz wichtige Informationen: Ist das Buch derzeit überhaupt da (oder ist es ausgeliehen und wann kommt es zurück) und wo steht das Buch?

Im Prinzip ist genau das eine Datenbank. Ein Ort, an dem Daten nach einem bestimmten Schema gespeichert und zugänglich gemacht werden.

Datenbank: Tabellen & Datensätze statt Kästen und Zettel

Nur dass die Daten eben nicht mehr auf Zetteln in einem Kasten liegen, sondern in Form von Tabellen digital existieren.

Eine Datenbank besteht üblicherweise aus mehreren Tabellen, die aber wiederum untereinander verknüpft sein können. In den Tabellen“zeilen“ stehen Datensätze: Also eine Gruppe an Daten, die zusammengehört (Titel, Buch, Autor, Standort)

Eine solche Datenbank liegt auch einem CMS zugrunde. Es ist der Ort, wo die Inhalte (z.B. Texte) gespeichert werden. In verschiedenen Tabellen.

Viele Tabellen. Viele Verknüpfungen

So gibt es zum Beispiel eine Tabelle für die Nutzer eines CMS. Dort stehen Nutzername, Passwort und ggf. Berechtigungen des Nutzers (darf er nur lesen, lesen und schreiben, Beiträge von anderen Nutzern verändern etc).

In einer weitere Tabelle werden Kategorien aufgelistet: Es gibt eine Zeile in dieser Tabelle für alle Beiträge die „Über uns“ erscheinen sollen, eine Zeile für alle „Pflichtseiten“ etc.

In der nächsten Tabelle stehen dann die eigentlichen Inhalte „Unternehmensgeschichte“, „Impressum“, „Datenschutzerklärung“ usw.

In dieser letzten Tabelle befinden sich dann z.B. zwei Verknüpfungen. Einmal zum Autor/User der den Beitrag geschrieben hat, einmal zur Kategorie, in die er einsortiert werden soll.

Viel mehr steckt nicht dahin. Oder auch doch, das Content Management System Joomla hat beispielsweise mit sinnvollen Erweiterungen um die 70 Tabellen.

Eine Datenbank - viele Tabellen
Eine Datenbank – viele Tabellen

Außerdem werden in den Tabellen für die Artikel natürlich deutlich mehr Informationen gespeichert, als der Inhalt, die Kategorie und der User, der den Beitrag erstellt hat.

Content-Tabelle
Content-Tabelle einer Datenbank

Es wird z.B. eine ID vergeben, die jeden Beitrag eindeutig identifiziert.

Kehren wir zurück zum Bibliotheks-Zettelkasten: Gäbe es für das selbe Buch mehrere Zettel, würde auf dem einen vielleicht eine Ausleihe vermerkt werden, auf dem anderen nicht – und schwupps sind widersprüchlich Informationen im System. Oder das Buch wurde umgeräumt und der neue Standort nur auf einem der beiden Zettel eingetragen, dann würde jeder, der den „falschen“ Zettel sieht auch an der falschen Stelle nach dem Buch suchen.

Übertragen auf unser Content Management System bedeutet das: Ein Link, der zu einem bestimmten Artikel gehen soll, findet ihn plötzlich nicht mehr unter dem abgespeicherten Pfad. Oder aber er findet mehrere, die sich dort befinden und „weiß“ dann nicht, welcher gemeint ist. Daher sind diese „IDs“ in Datenbanken enorm wichtig.

Man sieht das hier an der Kategorie und dem „created_by“ (User/Autor). Hier stehen keine Namen – nur Nummern, die eindeutig einem anderen Datensatz in einer anderen Tabelle zuzuordnen sind. Denn auch, wenn es bei meinem Namen – Nadine Huss-Schäfer – nicht so wahnsinnig wahrscheinlich ist, dass jemand anders dieses Namen trägt, ist das bei Namen allgemein nicht zwingend gegeben. Würde man also den Namen als Identifikator nutzen, gäbe es mit wachsender Anzahl an CMS-Usern irgendwann den Fall, dass ein Name zweimal vorkommt und dann zwangsläufig zu Verwechslungen.

In einer Datenbank werden Daten gespeichert, um sie wieder auslesen zu können

Eine Datenbank ist also erstmal nichts anderes, als ein Tabellenkonstrukt in das Daten gespeichert werden und – das ist der wichtige Punkt im Netz – auch wieder ausgelesen werden können.

So wird das, was wir als Administrator im Backend unserer Seite eingeben in die Tabelle gespeichert und im Frontend für die Leser wieder aufgerufen. Inkl. diverser Style-Informationen, die aus der Theme/Template-Programmierung stammen und das Ganze „hübsch“ machen.

Außerdem sorgt die Datenbank dafür, dass die Inhalte einer Website einfach auf ein neues „Design“ übertragen werden können. Die Übertragung der Daten in ein anderen Content Management System hingegen ist  nicht mehr ganz so einfach, da die Tabellenstruktur (also die Namen/der Aufbau) und die einzelnen Tabellenfelder in verschiedenen CMS unterschiedlich sind.

Hinter diesen Tabellen steht in aller Regel die Datenbanksprache SQL (deswegen auch oft „MySQL-Datenbank“, mit der dann innerhalb der Datenbank verschiedene Abfragen (für Suchanfragen, Filterfunktionen etc) durchgeführt werden können.

Das ist für einen CMS Nutzer – egal ob als derjenige, der die Seite pflegt oder derjenige, der die Seite anschaut – aber alles nicht relevant, muss aber bei der Erstellung der Seite ggf. berücksichtigt werden.

Die Website soll umziehen? Datenbank sichern!

Wichtig wird es aber dann, wenn eine Website umziehen soll oder gesichert werden soll. Immer wieder begegnen uns Menschen, die aufgelöst berichten, dass sie ihre Website gesichert haben, aber trotzdem alles weg ist. Oft haben diese Verzweifelten dann die Daten, die sie so schön einfach auf ihrem Server oder per FTP-Programm sehen können, gesichert. Also die Template/Theme-Daten und ggf. Bilder, die sie mal hochgeladen haben. Das reine Aussehen der Website. Aber eben keine Inhalte. Die liegen nämlich in der Datenbank, auf die man aber nur über den Hoster Zugriff hat.

Das funktioniert natürlich nicht. Ist die Datenbank weg, sind auch die Daten weg.

Auch deshalb ist es so wichtig, die Datenbank sicher zu halten. Datenbankpasswörter sollten möglichst komplex und lang sein. Macht aber auch nichts – im Gegensatz zum Mailpasswort braucht man sie ja nicht ständig!

Published inWeb Literacy

Schreibe den ersten Kommentar

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.