Programmierung · Daten · Datenbanken
Was ist eine Datenbank?
Jede App, die du nutzt — deine Bank, ein Onlineshop, ein Social-Feed — bewahrt ihre Informationen irgendwo auf, wo sie wiedergefunden, geändert und als vertrauenswürdig betrachtet werden können. Dieses „Irgendwo“ ist eine Datenbank. Es ist eine der grundlegendsten Ideen der Software. Dieser Leitfaden erklärt, was eine Datenbank ist, die großen Typen, die wichtigen Konzepte, reale Beispiele und den Bezug zu SQL.
Die kurze Definition
Eine Datenbank ist eine organisierte Sammlung von Daten, verwaltet von einer Software (einem Datenbankmanagementsystem, kurz DBMS), die das zuverlässige Speichern, Abrufen, Aktualisieren und Schützen dieser Daten ermöglicht. Auch eine Tabellenkalkulation kann Daten enthalten, doch eine Datenbank fügt Struktur hinzu, schnelle Abfragen in großem Maßstab, Mehrbenutzerzugriff und die Garantie, dass die Daten konsistent bleiben, selbst wenn vieles gleichzeitig geändert wird.
Datenbank vs. DBMS
Zwei Wörter, die oft synonym verwendet werden, aber unterschiedliche Dinge bezeichnen. Die Datenbank sind die Daten selbst und ihre Organisation. Das DBMS — PostgreSQL, MySQL, SQLite, MongoDB — ist die Software, die sie speichert, deine Abfragen ausführt, Regeln durchsetzt und gleichzeitige Zugriffe verwaltet. Wenn man fragt „welche Datenbank soll ich nehmen?“, meint man meist das DBMS.
Die zwei großen Familien
- Relationale Datenbanken (SQL): organisieren Daten in Tabellen aus Zeilen und Spalten, mit definierten Beziehungen dazwischen, und man fragt sie mit SQL ab. Sie glänzen bei strukturierten Daten und garantierter Konsistenz. Beispiele: PostgreSQL, MySQL, SQLite, SQL Server.
- NoSQL-Datenbanken: lockern die starre Tabellenstruktur zugunsten von Flexibilität und Skalierbarkeit. Es gibt sie in mehreren Ausprägungen: dokumentenorientiert (MongoDB), Schlüssel-Wert (Redis), Wide-Column (Cassandra) und Graph (Neo4j). Nützlich für große Datenmengen, schnelles Caching oder Daten, deren Form sich häufig ändert.
Die meisten realen Systeme nutzen mehrere — etwa eine relationale Datenbank für die Kernsätze und einen Schlüssel-Wert-Speicher für den Cache.
Die zentralen Konzepte
- Schema — die definierte Struktur: welche Tabellen existieren, ihre Spalten und Typen sowie die Regeln. Relationale Datenbanken sind schema-first; viele NoSQL-Datenbanken sind flexibel.
- Abfrage — eine Anforderung bestimmter Daten („alle Bestellungen der letzten Woche“). In relationalen Datenbanken schreibt man sie in SQL.
- Index — eine Suchstruktur, die Abfragen schnell macht, indem nicht jede Zeile durchlaufen werden muss, wie das Stichwortverzeichnis am Ende eines Buchs.
- Transaktion — eine Gruppe von Änderungen, die entweder alle gemeinsam gelingen oder alle gemeinsam scheitern müssen (Geld zwischen zwei Konten überweisen). Relationale Datenbanken garantieren dies über die ACID-Eigenschaften.
Was ACID bedeutet
ACID beschreibt die Garantien, die eine zuverlässige Datenbank einer Transaktion bietet: Atomarität (alles oder nichts), Konsistenz (die Daten erfüllen ihre Regeln vorher und nachher), Isolation (gleichzeitige Transaktionen beschädigen sich nicht gegenseitig) und Dauerhaftigkeit (einmal bestätigt, übersteht die Änderung einen Absturz). Genau diese Garantien sind der Grund, warum man Geld und Datensätze einer Datenbank anvertraut und nicht einer einfachen Datei.
Warum Datenbanken wichtig sind
Sie ermöglichen es Software, Daten einmal zu speichern und sie überall zu nutzen — sicher, in großem Maßstab, mit vielen Nutzern gleichzeitig — und jeden beliebigen Ausschnitt in Millisekunden wiederzufinden. Fast jedes nicht-triviale Programm braucht irgendwann eine. Den richtigen Typ wählen und ihn gut abfragen zu können, ist eine der beständigsten Fähigkeiten in der Informatik.
Die ehrlichen Kompromisse
Es gibt keine allgemein „beste“ Datenbank. Relationale Datenbanken bieten starke Konsistenz und mächtige Abfragen, verlangen aber ein definiertes Schema; NoSQL bietet Flexibilität und horizontale Skalierung, opfert dafür aber oft bestimmte Konsistenzgarantien. Die richtige Wahl hängt von der Form deiner Daten ab, von deinem Maßstab und davon, wie wichtig dir strikte Konsistenz gegenüber Flexibilität ist. Viele Teams kombinieren beides.
FAQ
Ist eine Datenbank dasselbe wie SQL? Nein. Eine Datenbank speichert die Daten; SQL ist die Sprache, mit der man relationale Datenbanken abfragt. NoSQL-Datenbanken nutzen andere Abfragemethoden.
Ist eine Tabellenkalkulation eine Datenbank? Im weiten Sinne ja, aber nicht wirklich. Eine Tabellenkalkulation enthält Daten, doch eine Datenbank fügt erzwungene Struktur, schnelle Abfragen in großem Maßstab, Mehrbenutzer-Sicherheit und Transaktionsgarantien hinzu, die eine Tabellenkalkulation nicht hat.
Was ist der Unterschied zwischen SQL und NoSQL? SQL-/relationale Datenbanken nutzen strukturierte Tabellen und starke Konsistenz; NoSQL-Datenbanken lockern die Struktur zugunsten von Flexibilität und Skalierung. Keine ersetzt die andere — sie passen zu unterschiedlichen Einsatzzwecken. Einen ausführlichen Vergleich findest du unter SQL vs. NoSQL: welche Datenbank, und wann.
Welche Datenbank sollte man zuerst lernen? Eine relationale — SQLite oder PostgreSQL — denn das relationale Modell und SQL lassen sich überallhin übertragen und vermitteln die Grundideen klar.
Um eine relationale Datenbank abzufragen, nutzt du SQL; die Daten, die eine Datenbank an eine App zurückgibt, reisen oft als JSON. Stöbere durch weitere klare Erklärungen in unserem Leitfaden-Index.