Zurück zum Blog
Daten
EinsteigerFürBackend EngineersSoftware ArchitectsData Engineers
8 min

SQL vs. NoSQL 2026: Datenbanktypen, ACID vs. BASE und wie man richtig wählt

"SQL vs. NoSQL" ist die falsche erste Frage. Ein praxisnaher Leitfaden 2026 zu Datenbanktypen, was "relational" wirklich bedeutet, ACID vs. BASE und einem Entscheidungsrahmen, der nach Zugriffsmustern wählt — nicht nach Hype.

sql vs nosqldatenbanktypenrelationale datenbanknosql datenbankacid vs basedatenmodelledatenbank auswählen
Inhalt

Wenige technische Fragen werden häufiger gestellt — und schlechter beantwortet — als „Soll ich SQL oder NoSQL nehmen?“ Es klingt nach einem sauberen Entweder-oder, und fast jede Antwort behandelt es so. Beide Instinkte sind falsch.

Die ehrliche Version: „SQL vs. NoSQL“ ist ein Scheingegensatz. SQL ist eine Abfragesprache. NoSQL bedeutet „not only SQL“ — ein Dach über einem halben Dutzend sehr unterschiedlicher Datenbankmodelle. Sie direkt zu vergleichen ist, als frage man „Limousine oder Nicht-Limousine?“ Die eigentliche Frage dreht sich um Datenmodelle und Konsistenzgarantien. Sieht man die Landschaft so, wird die Datenbankwahl vom Münzwurf zur ingenieurmäßigen Entscheidung.

Dieser Leitfaden zeigt den Datenbank-Stammbaum, den Gegensatz ACID versus BASE, der die Systeme wirklich trennt, und einen Rahmen, um nach Zugriffsmustern statt nach Mode zu wählen.

Der Datenbank-Stammbaum: relational, Dokument, Key-Value, Wide-Column, Graph und mehr — jede für eine andere Datenform optimiert.

Zuerst: Was „relational“ wirklich bedeutet

Lass das Branding weg. Eine relationale Datenbank speichert Daten in Tabellen — Zeilen und Spalten — wobei jede Tabelle ein definiertes Schema hat (welche Spalten existieren und welchen Typ jede hat). Tabellen sind über Schlüssel verbunden, und Fragen stellst du mit SQL, einer deklarativen Sprache: Du beschreibst was du willst, und die Datenbank findet heraus, wie.

Dieses Modell — 1970 erfunden und ein halbes Jahrhundert verfeinert — gibt dir drei Dinge, die man leicht unterschätzt, bis man sie verliert:

  • Ein Schema, das deine Daten dokumentiert und fehlerhafte Schreibvorgänge ablehnt.
  • Transaktionen — die Möglichkeit, mehrere Dinge als eine Alles-oder-nichts-Einheit zu ändern.
  • Ad-hoc-Abfragen — du kannst nie geplante Fragen beantworten, mit Joins, Filtern und Aggregation, ohne deine Speicherung umzuschreiben.

PostgreSQL und MySQL sind die bekannten Beispiele. Wenn Leute „SQL-Datenbank“ sagen, meinen sie das.

NoSQL ist alles, was sich bewusst von Teilen dieses Modells entfernt — meist um Flexibilität, Skalierung oder eine Form zu gewinnen, die zu einem Zugriffsmuster hervorragend passt.

Der Datenbank-Stammbaum

„NoSQL“ verbirgt enorme Vielfalt. Hier die Familien, die zählen, jeweils mit dem, was sie sind, und wann sie gewinnen:

  • Relational (PostgreSQL, MySQL) — Tabellen, Schema, SQL, starke Konsistenz. Der Standard für die meisten Anwendungen.
  • Dokument (MongoDB) — speichert JSON-ähnliche Dokumente. Flexibles Schema, natürlich verschachtelte Daten. Stark, wenn Datensätze variieren und sich entwickeln.
  • Key-Value (Redis) — ein riesiges Wörterbuch: ein Schlüssel verweist auf einen Wert. Blitzschnelle Lookups per Schlüssel, sonst nichts. Ideal für Caching, Sessions, Rate-Limits.
  • Wide-Column (Cassandra, Bigtable) — riesige, nach Schlüssel partitionierte Tabellen für enormen Schreibdurchsatz und vorhersehbare Abfragen im großen Maßstab. Für Volumen gebaut, nicht für Joins.
  • Graph (Neo4j) — Knoten und die Beziehungen zwischen ihnen. Gewinnt, wenn die Verbindungen das sind, was du abfragst: soziale Graphen, Betrugsringe, Empfehlungen.
  • Time-Series (InfluxDB, TimescaleDB) — optimiert für zeitgestempelte Daten, die geordnet geschrieben und nach Bereich abgefragt werden. Metriken, Sensorwerte, Events.
  • Search (Elasticsearch) — Volltextsuche und Relevanz-Ranking, keine exakten Lookups.
  • Vektor (pgvector, Pinecone) — Ähnlichkeitssuche über Embeddings, das Rückgrat der KI-Retrieval.

Aus dieser Liste folgen sofort zwei Dinge. Erstens ist „NoSQL“ keine Wahl — es sind sieben. Zweitens sind mehrere davon gar keine Rivalen des Relationalen; sie sind Spezialisten, die man daneben stellt.

Jede Datenbankfamilie für ein anderes Zugriffsmuster optimiert: Lookups, Dokumente, Schreiben im großen Maßstab, Beziehungen, Zeitbereiche, Ähnlichkeit.

Die Achse, auf die es wirklich ankommt: ACID vs. BASE

Das Datenmodell ist das Was du speicherst. Die Konsistenzgarantie ist das Wie stark die Datenbank verspricht, dass deine Daten korrekt sind — und hier verläuft die eigentliche Trennlinie.

ACID — Korrektheit zuerst

Klassische relationale Datenbanken geben dir ACID:

  • Atomicity (Atomarität) — eine Transaktion geschieht ganz oder gar nicht. Überweise Geld zwischen zwei Konten, und entweder ändern sich beide Seiten oder keine.
  • Consistency (Konsistenz) — die Datenbank geht von einem gültigen Zustand in den nächsten über; Constraints werden nie verletzt.
  • Isolation — gleichzeitige Transaktionen kommen sich nicht in die Quere; das Ergebnis ist, als liefen sie nacheinander.
  • Durability (Dauerhaftigkeit) — einmal committet, überstehen Daten einen Absturz.

ACID ist der Grund, warum Banken, Bestellungen und Bestände in relationalen Datenbanken leben. Wenn „falsch“ teuer ist, sind diese Garantien ihren Preis wert.

BASE — Verfügbarkeit zuerst

Viele verteilte NoSQL-Systeme treffen den Gegentausch, zusammengefasst als BASE:

  • Basically Available — das System antwortet weiter, auch bei Ausfällen.
  • Soft state — Daten können im Fluss sein; Knoten müssen nicht jederzeit übereinstimmen.
  • Eventually consistent — nach einem Schreibvorgang können Replikate kurz uneinig sein und konvergieren dann zum selben Wert.

BASE ermöglicht es einer Datenbank, hunderte Maschinen zu umspannen und verfügbar zu bleiben, wenn einige ausfallen. Der Preis: Ein Lesevorgang direkt nach einem Schreibvorgang kann leicht veraltete Daten liefern. Für einen Social-Feed oder einen Produktkatalog ist das in Ordnung. Für einen Kontostand nicht.

CAP: der Grund, warum du wählen musst

Darunter liegt das CAP-Theorem: Wenn eine Netzwerkpartition deine Knoten trennt, kann eine verteilte Datenbank Konsistenz (jeder Lesevorgang sieht den letzten Schreibvorgang) oder Verfügbarkeit (jede Anfrage bekommt eine Antwort) garantieren — aber nicht beides. Jedes verteilte System entscheidet sich für eine Seite, und diese Entscheidung zeigt sich direkt darin, wie deine Anwendung unter Last reagiert.

Das ist die wichtigste Idee bei der Datenbankwahl und verdient eine eigene Behandlung — ich gehe tief darauf ein in was das CAP-Theorem wirklich für die Datenbankwahl bedeutet. ACID und BASE sind zum großen Teil zwei Antworten auf die Frage, die CAP erzwingt.

ACID bevorzugt Korrektheit und starke Konsistenz; BASE bevorzugt Verfügbarkeit und Skalierung und akzeptiert eventuelle Konsistenz — CAP erzwingt den Tausch bei Partitionen.

Was tauscht „SQL vs. NoSQL“ also wirklich?

Jetzt bedeutet der Vergleich etwas. Stellt man den relationalen Standard den NoSQL-Alternativen gegenüber, treten die echten Trade-offs hervor:

Was tauscht „SQL vs. NoSQL“ also wirklich?
Dimension Relational (SQL) NoSQL (je nach Typ)
Schema Fest, erzwungen, selbstdokumentierend Flexibel oder schemalos
Konsistenz Stark (ACID) Oft eventuell (BASE), teils einstellbar
Abfragen Reich, ad hoc, Joins über Tabellen Schnell für das entworfene Muster; Joins begrenzt
Schreiben skalieren Über Maschinen schwerer Oft horizontal by design
Am besten bei Beziehungen und Korrektheit zählen Ein Zugriffsmuster muss extrem sein (Skalierung, Latenz, Form)

Das Muster ist dasselbe wie bei jeder echten Architekturentscheidung: Du wählst nicht einfach versus komplex — du wählst, welchen Tausch du machst. Relational tauscht etwas Skalierungsflexibilität gegen Korrektheit und Abfragekraft. NoSQL tauscht einen Teil dieser Kraft gegen eine Form, die eine Aufgabe außergewöhnlich gut erledigt.

Wie man wirklich wählt

Ignoriere das Marketing. Die Datenbank folgt daraus, wie deine Anwendung Daten liest und schreibt. Arbeite diese Fragen ehrlich durch:

  1. Wie sieht ein Zugriffsmuster aus? Schlägst du meist per einzelnem Schlüssel nach, ist ein Key-Value-Store ein Skalpell. Stellst du variierende Ad-hoc-Fragen, willst du SQLs Abfragekraft. Traversierst du Beziehungen („Freunde von Freunden, die X gekauft haben“), verdient eine Graph-Datenbank ihren Platz.

  2. Wie stark muss die Konsistenz sein? Geld, Bestände, Buchungen → ACID, relational. Ein „Likes“-Zähler oder ein Aktivitäts-Feed → eventuelle Konsistenz reicht, und BASE kauft dir Skalierung.

  3. Welche Form haben deine Daten? Einheitliche, verwandte Datensätze → Tabellen. Tief verschachtelte, variierende Dokumente → ein Dokument-Store. Ein Strom zeitgestempelter Punkte → Time-Series.

  4. Wie groß ist deine echte Skalierung? Sei ehrlich. Die meisten Anwendungen wachsen nie über eine gut betriebene relationale Datenbank mit Replikaten hinaus. „Skaliert nicht“ ist der häufigste — und am häufigsten falsche — Grund, zu NoSQL zu greifen. Löse das Problem, das du hast, nicht das, das du dir vorstellst.

  5. Muss eine Last extrem sein? Extremer Schreibdurchsatz, Mikrosekunden-Lookups, Ähnlichkeitssuche über Millionen Vektoren — ein echtes, konkretes Extrem ist der ehrliche Grund, einen Spezial-Store zu ergänzen.

Beachte die Reihenfolge: Muster und Korrektheit zuerst, Skalierung später. Allein diese Reihenfolge verhindert die meisten Datenbankfehler.

Ein Entscheidungspfad: Lookups per Schlüssel, Ad-hoc-Fragen, Beziehungen, Zeitbereiche oder starke Transaktionen zeigen je auf eine andere Datenbankfamilie.

Die ehrliche Realität: Es ist selten eine Datenbank

Was erfahrene Teams tatsächlich tun: Sie nutzen mehr als eine. Das ist Polyglot Persistence — die vernünftige Einsicht, dass verschiedene Daten verschiedene Formen haben. Ein einzelnes Produkt kann PostgreSQL als Source of Truth betreiben, Redis für Caching und Sessions, Elasticsearch für Suche und einen Vektor-Store für KI-Funktionen. Jedes tut das eine, worin es am besten ist.

Aber Polyglot Persistence ist ein Ziel, kein Startpunkt. Jede zusätzliche Datenbank ist ein weiteres System zum Betreiben, Überwachen, Sichern und Durchdenken. Der disziplinierte Weg:

  1. Starte mit einer relationalen Datenbank. PostgreSQL allein bewältigt relationale Daten, JSON-Dokumente, Key-Value-Muster, Volltextsuche und Vektoren — oft jahrelang, ein System.
  2. Ergänze einen Spezial-Store erst, wenn ein konkreter, gemessener Druck es verlangt — nicht weil ein Blogpost sagte, relational skaliere nicht.
  3. Extrahiere, rate nicht. Wenn ein echter Engpass oder ein Zugriffsmuster auftaucht, verschiebe diese eine Last in die dafür gebaute Datenbank.

Und denk daran: Selbst innerhalb einer relationalen Datenbank gibt es viel Spielraum, bevor du sie verlassen musst — die meisten „die Datenbank ist langsam“-Probleme sind in Wahrheit fehlende Indizes und unoptimierte Abfragen, kein Signal zum Paradigmenwechsel. Wenn du eine einzelne relationale Maschine bei einer schreiblastigen Last wirklich überwächst, beginnt genau dort ein Wide-Column-Store wie Bigtable sich zu lohnen.

Das Fazit

„SQL vs. NoSQL“ war nie die eigentliche Frage. Die echten Fragen lauten: Welche Form haben meine Daten, wie stark muss meine Konsistenz sein, und wie sieht mein Zugriffsmuster aus? Beantworte sie, und die Datenbank wählt sich selbst.

SQL — das relationale Modell — bleibt der richtige Standard für die meisten Anwendungen, weil ein Schema, echte Transaktionen und Ad-hoc-Abfragen früh mehr wert sind als jede einzelne Optimierung. NoSQL ist eine Menge von Spezialisten, jeder brillant in einer Aufgabe und unauffällig im Rest. ACID und BASE sind die zwei ehrlichen Antworten auf die Konsistenzfrage, die CAP jedem verteilten System aufzwingt.

Wähle nach deinen Mustern, starte relational und ergänze einen Spezialisten erst, wenn ein echtes Problem — kein modisches — es vor dich stellt.

Häufig gestellte Fragen

Was ist der Unterschied zwischen SQL und NoSQL?

Die Namen sind irreführend. SQL ist eine Abfragesprache relationaler Datenbanken, während NoSQL ('not only SQL') ein Sammelbegriff für Datenbanken mit anderem Datenmodell ist — Dokument, Key-Value, Wide-Column, Graph und weitere. Der eigentliche Unterschied liegt also nicht in der Sprache, sondern im Modell. Relationale Datenbanken speichern Daten in Tabellen mit Zeilen und Spalten, erzwingen ein Schema und bieten starke Transaktionsgarantien. NoSQL-Datenbanken lockern eine oder mehrere dieser Eigenschaften zugunsten von Flexibilität, horizontaler Skalierung oder einer Form, die zu einem bestimmten Zugriffsmuster passt. Die praktische Frage lautet nie 'SQL oder NoSQL' im Abstrakten — sondern welches Datenmodell dazu passt, wie deine Anwendung Daten liest und schreibt.

Welche Datenbanktypen gibt es?

Die häufigsten Familien sind: relational (Tabellen, SQL, starke Konsistenz — PostgreSQL, MySQL); Dokument (JSON-ähnliche Dokumente, flexibles Schema — MongoDB); Key-Value (ein riesiges Wörterbuch, extrem schnelle Lookups — Redis); Wide-Column (riesige, nach Schlüssel partitionierte Tabellen, enormer Schreibdurchsatz — Cassandra, Bigtable); Graph (Knoten und Beziehungen, für vernetzte Daten — Neo4j); Time-Series (optimiert für zeitgestempelte Metriken — InfluxDB, TimescaleDB); Search (Volltext und Relevanz — Elasticsearch); und Vektor (Ähnlichkeitssuche für KI-Embeddings — pgvector, Pinecone). Jede optimiert für eine andere Datenform und ein anderes Zugriffsmuster, weshalb reale Systeme oft mehr als eine einsetzen.

Was ist der Unterschied zwischen ACID und BASE?

ACID und BASE beschreiben zwei Konsistenzphilosophien. ACID (Atomicity, Consistency, Isolation, Durability) garantiert, dass eine Transaktion entweder vollständig geschieht oder gar nicht, dass die Datenbank gültig bleibt, dass gleichzeitige Transaktionen sich nicht gegenseitig zerstören und dass committete Daten einen Absturz überstehen — das Modell klassischer relationaler Datenbanken. BASE (Basically Available, Soft state, Eventually consistent) ist der Gegentausch: Das System bleibt verfügbar und skaliert horizontal, akzeptiert aber, dass verschiedene Knoten nach einem Schreibvorgang kurz uneinig sein können, bevor sie konvergieren. ACID bevorzugt Korrektheit; BASE bevorzugt Verfügbarkeit und Skalierung. Die meisten NoSQL-Systeme neigen zu BASE, viele bieten heute aber einstellbare Konsistenz pro Operation.

Ist SQL oder NoSQL besser für die Skalierung?

Beide skalieren, aber unterschiedlich. Relationale Datenbanken skalieren traditionell vertikal — eine größere Maschine — und Lesezugriffe gut über Replikate, doch Schreibzugriffe über viele Maschinen zu verteilen ist schwerer, weil Transaktionen und Joins voraussetzen, dass Daten zusammenliegen. Viele NoSQL-Datenbanken waren von Anfang an auf horizontale Skalierung ausgelegt: Sie partitionieren (sharden) Daten über viele Knoten und akzeptieren dafür schwächere Konsistenz, was zu sehr hohen Schreibmengen und riesigen Datensätzen passt. Allerdings skalieren moderne relationale Systeme (und 'NewSQL'-Datenbanken wie Spanner oder CockroachDB) heute ebenfalls horizontal, sodass 'NoSQL skaliert, SQL nicht' überholt ist. Skalierung ist ein echter Faktor, entscheidet aber selten allein.

Wann sollte ich eine NoSQL-Datenbank verwenden?

Greife zu NoSQL, wenn ein konkreter Druck das Verlassen des relationalen Standards rechtfertigt. Gute Gründe: ein Dokument-Store, wenn deine Daten natürlich hierarchisch sind und sich das Schema oft ändert; ein Key-Value-Store für Caching oder Session-Daten, bei denen du nur per Schlüssel nachschlägst und Mikrosekunden-Latenz brauchst; ein Wide-Column-Store für enormen Schreibdurchsatz mit einfachen, vorhersehbaren Abfragen; eine Graph-Datenbank, wenn Beziehungen das Primäre sind, das du abfragst; eine Time-Series-Datenbank für Metriken und Events; eine Vektordatenbank für KI-Ähnlichkeitssuche. Schlechte Gründe: 'ist moderner', 'relational skaliert nicht' (in deiner Größe meist falsch) oder das Vermeiden von Schema-Design. Trifft kein guter Grund zu, ist eine relationale Datenbank fast immer die sicherere Wahl.

Sollte ich für ein neues Projekt mit SQL oder NoSQL starten?

Für die meisten neuen Projekte: starte relational. Eine relationale Datenbank gibt dir ein klares Schema, das deine Daten dokumentiert, echte Transaktionen, die ganze Fehlerklassen verhindern, und eine flexible Abfragesprache, die auch unerwartete Fragen beantwortet — genau das zählt früh am meisten, wenn du deine Daten und Zugriffsmuster noch nicht ganz verstehst. NoSQL glänzt, wenn du die exakte Form deiner Lese- und Schreibzugriffe bereits kennst und einen konkreten Bedarf hast, den es besser bedient. Der pragmatische Weg: mit PostgreSQL beginnen (das auch Dokumente, Key-Value und Vektoren gut kann) und später, für eine bestimmte Last, eine spezialisierte Datenbank ergänzen, sobald ein echter Engpass oder ein Zugriffsmuster es verlangt.

ENDE