NoSQL vs. Relational

Relationale Datenbanken – Rückblick

Relationale Datenbanken (RDBMS) speichern Daten in Tabellen mit festen Spalten und Datentypen. Beziehungen werden über Fremdschlüssel hergestellt. Abfragesprache: SQL. ACID-Eigenschaften werden garantiert.

Beispiele: MySQL, PostgreSQL, Oracle, SQLite.

Stärken: Strukturierte Daten, komplexe Abfragen (JOINs), Datenintegrität, Transaktionen.

Was ist NoSQL?

NoSQL steht für „Not only SQL“ und bezeichnet Datenbanken, die nicht dem relationalen Modell folgen. Sie sind häufig schema-frei oder schema-flexibel und optimiert für horizontale Skalierung (Verteilung auf viele Server).

NoSQL-Typen
  • Dokumentenbasiert (z. B. MongoDB, CouchDB): Daten als JSON/BSON-Dokumente. Jedes Dokument kann eine andere Struktur haben. Ideal für: Content-Management, Produktkataloge.
  • Key-Value-Stores (z. B. Redis, DynamoDB): Einfachstes Modell – jeder Schlüssel hat einen Wert. Extrem schnell für einfache Zugriffe. Ideal für: Caching, Sessions, Einkaufswagen.
  • Spaltenorientierte DB (z. B. Cassandra, HBase): Daten in Spaltenfamilien statt Zeilen organisiert. Ideal für: Zeitreihen, Analysen über viele Datensätze.
  • Graph-Datenbanken (z. B. Neo4j): Daten als Knoten und Kanten. Ideal für: Soziale Netzwerke, Empfehlungssysteme, Routenplanung.
Beispiel: Dokument vs. Tabelle
// MongoDB-Dokument (JSON)
{
  "_id": "s001",
  "name": "Anna Müller",
  "klasse": "Q2",
  "kurse": [
    {"fach": "Informatik", "note": 2},
    {"fach": "Mathe", "note": 1}
  ]
}

-- Relationales Äquivalent: 3 Tabellen!
-- Schüler(id, name, klasse)
-- Belegung(schueler_id, kurs_id, note)
-- Kurs(kurs_id, fach)
Das CAP-Theorem

Das CAP-Theorem (Brewer, 2000) besagt, dass ein verteiltes Datenbanksystem höchstens zwei der folgenden drei Eigenschaften gleichzeitig garantieren kann:

  • C – Consistency (Konsistenz): Alle Knoten sehen gleichzeitig die gleichen Daten.
  • A – Availability (Verfügbarkeit): Jede Anfrage erhält eine Antwort (auch wenn nicht alle Knoten erreichbar sind).
  • P – Partition Tolerance (Partitionstoleranz): Das System funktioniert trotz Netzwerkausfällen zwischen Knoten.

Da Netzwerkpartitionen in der Praxis unvermeidbar sind (P ist Pflicht), muss zwischen C und A gewählt werden:

  • CP-Systeme (z. B. MongoDB): Konsistenz vor Verfügbarkeit.
  • AP-Systeme (z. B. Cassandra): Verfügbarkeit vor Konsistenz (eventual consistency).
Vergleich: Relational vs. NoSQL
  • Schema: Relational = festes Schema, NoSQL = flexibel/schema-frei.
  • Skalierung: Relational = meist vertikal (größerer Server), NoSQL = horizontal (mehr Server).
  • Konsistenz: Relational = ACID (streng), NoSQL = oft BASE (Eventually Consistent).
  • Abfragen: Relational = mächtiges SQL mit JOINs, NoSQL = datenbankspezifische APIs.
  • Einsatz: Relational = strukturierte Daten mit komplexen Beziehungen, NoSQL = große, flexible Datenmengen.

Abitur-Tipp: Im Abitur wird gerne nach Vor- und Nachteilen beider Ansätze gefragt. Präge dir die vier NoSQL-Typen mit je einem Anwendungsbeispiel ein. Das CAP-Theorem ist ein anspruchsvolles Konzept – merke dir: P ist Pflicht, also muss man zwischen C und A wählen. Typische Aufgabe: Begründe, wann NoSQL und wann eine relationale DB sinnvoll ist.