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.