Datenbanken ohne Rätselraten

Datenbank und DBMS: Wer macht was?

9 min
What you'll learn
  • eine Datenbank (einen geordneten Speicher) von einem unterscheiden — also von dem Programm, das SQL-Abfragen ausführt und die Daten verwaltet
  • den Weg einer Abfrage erklären: „SQL → DBMS → Ergebnis“, und warum eine Sammlung aus Excel-Dateien nicht für Tausende gleichzeitige Nutzer taugt
  • benennen, was ein DBMS gegenüber „bloßen Dateien“ leistet: Transaktionen, Wiederherstellung über ein Journal (), Zugriffsrechte (GRANT) und Integritätsprüfungen

Kapitel 1 — „Die Karte des Archivs“

Der Schnappschuss von «Kotomarket» ist kein Signal aus einem toten Sektor mehr: Er liegt in einer Quarantänekammer an Bord von Vault-9, und unter der letzten Zeile seines Dumps steht noch immer dieselbe Signatur: „K.“ Heute Morgen erscheint auf deinem Holopanel ein neuer Eintrag: „Freigabe erteilt: Archivverzeichnis. Ausgestellt von: Modul S.Q.L.“ Die Tresortür gleitet zur Seite. Dahinter brummen Serverschränke in gleichmäßigem bernsteinfarbenem Licht.

QUERY: Bevor du fremde Erinnerungen liest, musst du verstehen, wie sie aufgebaut sind. Fangen wir mit dem Wichtigsten an: Was hier der Speicher ist und wer ihn bewacht.

Datenbank und DBMS

Eine Datenbank (DB) ist ein geordneter Speicher. Im Schnappschuss von «Kotomarket» liegen Käufer, Produkte, Bestellungen und Ereignisse: nicht verstreut in einzelnen Dateien, sondern in einer klaren Struktur. Genau deshalb lassen sie sich auch nach hundertsechzig Jahren noch lesen.

Der Speicher allein beantwortet aber keine Fragen. Dafür braucht es ein Programm, das Tabellen anlegt, neue Bestellungen speichert, Daten liest und darauf achtet, dass die Verbindungen nicht reißen. Dieses Programm ist das (Datenbankmanagementsystem). Beispiele sind PostgreSQL, MySQL und ClickHouse. Unser Schnappschuss ist eine PostgreSQL-Datenbank, und sie spricht dasselbe SQL wie zu Lebzeiten des Ladens.

Du schreibst eine Abfrage in SQL → sendest sie an das DBMS → das DBMS holt die passenden Daten und gibt das Ergebnis zurück. Excel ist gut für eine persönliche Tabelle, aber nicht für einen Laden, in dem Tausende Nutzer gleichzeitig Produkte ansehen, Bestellungen aufgeben und Ereignisse im System hinterlassen.

Ein Kadett am Eingang des Tresors; zwischen ihm und den Regalen voller Erinnerungen steht ein holografischer Wächter und Vermittler — das DBMS
Das Archiv bewahrt die Erinnerung, doch Fragen beantwortet der Hüter: Die Abfrage geht an das DBMS, und nur dieses berührt die Daten.

Database and DBMS

A database is an organized store. The Kotomarket holds buyers, products, orders, and events — not scattered across files, but in a clear structure. That’s exactly why it can still be read a hundred and sixty years later.

But the store itself doesn’t answer questions. You need a program that can create tables, record new orders, read data, and make sure the links never break. That’s a (database management system). Examples: PostgreSQL, MySQL, ClickHouse. Our snapshot is a PostgreSQL database, and it still speaks the same SQL it did when the shop was alive.

You write a query in SQL → send it to the DBMS → the DBMS fetches the data you asked for and returns the result. Excel is fine for a personal spreadsheet, but not for a shop where thousands of users browse products, place orders, and leave events in the system all at once.

clientDBMSparserplannerexecutordata filesSQL queryresultdatathe client talks to the DBMS, not the files directly
Alle Wege zu den Daten führen über das DBMS: Es nimmt SQL entgegen, führt Abfragen aus und schützt die Integrität der Datenbank.

Was ein DBMS kann, was „bloße Dateien“ nicht können

Auf den ersten Blick könnte der Laden auch ohne auskommen: Bestellungen einfach in eine CSV- oder Excel-Datei schreiben. Für ein persönliches Notizbuch reicht das tatsächlich — bis Aufgaben auftauchen, für die DBMS überhaupt erfunden wurden.

  • Gleichzeitiger Zugriff. Im lebendigen «Kotomarket» gaben viele Käufer zur selben Zeit Bestellungen auf. Zwei Prozesse, die in dieselbe Datei schreiben, können einander die Änderungen überschreiben. Ein DBMS führt Änderungen als Transaktionen aus und koordiniert parallele Vorgänge selbst. PostgreSQL nutzt dafür : Lesende blockieren Schreibende nicht, und umgekehrt.
  • Wiederherstellung nach einem Absturz. Der Strom flackert mitten im Schreibvorgang: Die Datei ist beschädigt, und niemand weiß, welche Hälfte der Bestellung es auf die Platte geschafft hat. Ein DBMS hält die Änderung zuerst in einem Journal fest (in PostgreSQL im , dem Write-Ahead-Log) und spielt sie nach einem Absturz wieder ein. Die Bestellung ist entweder vollständig gespeichert oder gar nicht.
  • Zugriffsrechte. Eine Datei ist entweder offen oder gesperrt. In einem DBMS lassen sich Rechte fein abstufen — bis hinunter zur einzelnen Tabelle:
-- Analitykowi — tylko odczyt zamówień, bez prawa ich zmieniać
GRANT SELECT ON orders TO analyst;
  • Integrität. Ein DBMS akzeptiert keine Bestellung mit einem Preis als Text oder mit einem Verweis auf einen Käufer, den es nicht gibt. Spaltentypen und Constraints werden bei jedem Schreibvorgang geprüft. Einer Datei ist egal, was in ihr steht.
  • Deklarative Fragen. „Zeige die Bestellungen über 5000“ — dafür genügt eine Zeile SQL. Bei einer Datei müsste jemand ein Programm schreiben, das dieselbe Arbeit erledigt und dabei auch wirklich stimmt.

Ein ist der arbeitende Vermittler zwischen dir und den Daten: Es nimmt SQL-Abfragen entgegen, führt sie aus und verhindert, dass die Datenbank im Chaos versinkt. In diesem Kurs lernen wir mit PostgreSQL — das wird in Analytics- und Backend-Stellen häufig erwartet. Den Hüter kennst du nun. Bevor sich das Verzeichnis unseres Schnappschusses öffnet, führt dich QUERY in den Nachbarbereich: zum Register der anderen Archive der alten Erde. Dort siehst du, warum ausgerechnet unseres vollständig überlebt hat.

Interview question

Frage aus dem Vorstellungsgespräch: Worin unterscheidet sich eine Datenbank von einem ? Warum sollte eine Anwendung ihre Daten nicht einfach in Dateien speichern?

Starke Antwort: Eine Datenbank sind die organisierten Daten. Ein DBMS ist das Programm, das sie verwaltet (PostgreSQL, MySQL, ClickHouse). Dateien bieten keinen sicheren gleichzeitigen Zugriff: Parallele Schreibvorgänge können einander überschreiben. Sie bieten auch keine Wiederherstellung nach einem Absturz, keine fein abgestuften Rechte und keine Integritätsprüfungen. Ein DBMS führt ein Journal und kann unvollständige Änderungen bereinigen oder nachspielen. Vor allem beantwortet es deklarative SQL-Abfragen, während man Dateien erst mit selbst geschriebenem Code auswerten müsste.

Check yourself
Wer übernimmt welche Aufgabe: die Datenbank oder das DBMS?