Begriffserklärung | Zurück zur Übersicht

Datenbank

Veröffentlicht am

Als Datenbank bezeichnet man Software, die für die Speicherung und Verwaltung von Daten zuständig ist.

Klassischerweise werden Datenbanken in Form von Tabellen organisiert, die wiederum aus Zeilen und Spalten bestehen. Es gibt jedoch auch Datenbank-Systeme, die nicht tabellenbasiert sind und stattdessen etwa beliebig aufgebaute Objekte speichern können. Dabei spricht man dann allgemein von sogenannten NoSQL-Datenbanken. Grundsätzlich lässt sich sagen, dass es verschiedene Datenbank-Typen und -Technologien gibt, die jeweils für unterschiedliche Anwendungsfälle geeignet sind.

In einem tabellenbasierten Datenbank-System entspricht jede Zeile einem Datensatz und jede Spalte einem Attribut. So können beispielsweise in einer Tabelle mit dem Namen users die Daten von Personen gespeichert werden. Jede Zeile entspricht dann einer Person, die in den Spalten id, name, email die entsprechenden Daten gespeichert hat.

Tabellen können auf verschiedene Arten miteinander verknüpft werden, um die Daten zu strukturieren. So kann eine weitere Tabelle mit dem Namen posts die Daten von Blog-Beiträgen speichern. Jeder Beitrag ist dabei einem bestimmten Nutzer zugeordnet, der in der Tabelle users gespeichert ist. Um eine solche Beziehung herzustellen, kann in der Tabelle posts eine Spalte mit dem Namen user_id hinzugefügt werden. In dieser Spalte wird dann die ID des Nutzers gespeichert, der den Beitrag erstellt hat.

Beispiel-Datenbank-Schema mit zwei Tabellen `users` und `posts` Beispiel-Datenbank-Schema mit zwei Tabellen users und posts

Datenbanken ermöglichen es, Daten zu speichern und wieder abzurufen. Dabei bedient man sich bei Tabellen-basierten Datenbanken der Sprache SQL (Structured Query Language). In unserem Beispiel könnten wir einen neuen Post anlegen, indem wir folgenden SQL-Befehl ausführen:

1
insert into posts
2
    (id, title, user_id)
3
values
4
    ('mein-erster-beitrag', 'Mein erster Beitrag', '3528cb8f-b07b-4627-9d09-a3c420aefd27');

Dieser Befehl fügt einen neuen Datensatz in die Tabelle posts ein. Die Werte für die Spalten id, title und user_id werden dabei als Parameter übergeben. Die ID des Nutzers, der den Beitrag erstellt hat, haben wir dabei aus der Tabelle users entnommen. Bei der Ausführung erscheint eine Bestätigung, dass der Datensatz erfolgreich eingefügt wurde:

Ergebnis nach Einfügen des neuen Datensatzes Ergebnis nach Einfügen des neuen Datensatzes

Um nun alle Posts dieses Users abzufragen, können wir folgenden SQL-Befehl ausführen:

1
select *
2
from posts
3
where user_id = '3528cb8f-b07b-4627-9d09-a3c420aefd27';

Dieser Befehl gibt alle Datensätze aus der Tabelle posts zurück, deren user_id mit der ID des Nutzers übereinstimmt:

Ergebnis des SQL-Befehls zur Abfrage der Posts Ergebnis des SQL-Befehls zur Abfrage der Posts

Da in Datenbanken in der Regel sensible Daten gespeichert werden, ist es wichtig, diese vor unbefugtem Zugriff zu schützen. Im Kontext einer Web-Anwendung greifen Nutzer über das Frontend daher nicht direkt auf die Datenbank zu, sondern über eine Backend -Anwendung, die die Datenbank-Anfragen entgegennimmt und verarbeitet. In solch einer Konstellation kennt nur das Backend die eigentlichen Zugangsdaten zur Datenbank und kann dafür sorgen, dass Nutzer nur auf die Daten zugreifen können, für die sie auch berechtigt sind.

Grundlegender Aufbau einer Web-Anwendung mit der Datenbank hinter dem Backend Grundlegender Aufbau einer Web-Anwendung mit der Datenbank hinter dem Backend

Verwandte Artikel

13 Pg PostgreSQL