- 1 Section
- 10 Lessons
- unbegrenzt
- NoSQL – MongoDB, Redis & Grundlagen10
Aufgaben NoSQL
Letzte Lektion des Kurses – die Prüfungsvorbereitung. Wir gehen 12 typische IHK-Aufgaben zu allen Themen des NoSQL-Kurses durch: Warum NoSQL, die vier Familien, CAP-Theorem, MongoDB, Redis und die SQL-vs.-NoSQL-Entscheidung. Klick eine Aufgabe um sie zu öffnen – versuch erst selbst zu antworten, bevor du die Lösung aufklappst.
Die Aufgabentypen entsprechen denen aus echten Prüfungen: Begriff & Definition, Szenario-Analyse, Konzept-Vergleich, Code/Befehl-Erstellung, Beratung mit Begründung. Wer diese fünf Muster beherrscht, ist gut gerüstet.
1) Überblick
2) Aufgaben Teil A – Grundlagen & NoSQL-Typen
- Horizontale Skalierung: Web-Riesen wie Google, Facebook, Amazon hatten Datenmengen, die nicht mehr auf einem Server passten. Klassische SQL-DBs sind schwer auf viele Server zu verteilen.
- Schema-Flexibilität: moderne Web-Daten sind oft variabel strukturiert. Feste SQL-Schemas mit ALTER TABLE für jede Änderung wurden zum Bremser.
- Angepasste Datenmodelle: für spezielle Use Cases (Caching, Graph-Analyse, Time-Series) sind spezialisierte Datenmodelle effizienter als das relationale.
- Key-Value-Store: Beispiel Redis. Use Case: Cache, Session-Store, Rate-Limiting.
- Dokument-Datenbank: Beispiel MongoDB. Use Case: Content-Management, Produktkataloge mit variablen Attributen, User-Profile.
- Wide-Column-Store: Beispiel Cassandra. Use Case: Time-Series-Daten, IoT-Telemetrie, Massendaten mit hoher Schreiblast.
- Graph-Datenbank: Beispiel Neo4j. Use Case: soziale Netzwerke, Empfehlungssysteme, Betrugserkennung.
- Daten ohne komplexe Beziehungen (kein Foreign-Key-Constraint über Server-Grenzen) leichter zu verteilen sind.
- JOINs über mehrere Server sind teuer; NoSQL vermeidet JOINs durch Embedded-Strukturen.
- NoSQL akzeptiert oft eventually consistent, was Replikation einfacher macht.
3) Aufgaben Teil B – CAP und MongoDB
- C – Consistency (Konsistenz): alle Knoten im System haben zu jedem Zeitpunkt dieselbe Sicht auf die Daten.
- A – Availability (Verfügbarkeit): jeder Knoten antwortet immer auf Anfragen.
- P – Partition Tolerance (Partitionstoleranz): das System funktioniert auch bei Netzwerk-Partitionen weiter.
- SQL-Tabelle ≈ MongoDB-Collection (Container für gleichartige Daten)
- SQL-Zeile ≈ MongoDB-Document (ein einzelner Datensatz)
- SQL-Spalte ≈ MongoDB-Field (ein Attribut innerhalb des Datensatzes)
ALTER TABLE. In MongoDB ist das Schema dynamisch – jedes Document in einer Collection kann andere Felder haben, und auch verschachtelte Strukturen (Sub-Documents, Arrays) sind möglich.
kunden:a) Alle Kunden aus Berlin, die mindestens 18 Jahre alt sind.
b) Den Namen eines Kunden mit der Email „test@example.de" ändern.
c) Alle inaktiven Kunden (Feld
aktiv: false) löschen.{ email: "test@example.de" },
{ $set: { name: "Neuer Name" } }
);
$set-Operator vergessen. Ohne $set ersetzt MongoDB das gesamte Dokument – nur das name-Feld bleibt übrig, alle anderen verschwinden!adressen_ids, eine separate Collection hat die Adressen-Dokumente.
Wann was?
- Embedded, wenn die Daten „gehören zu", fast immer zusammen gelesen werden und sich selten unabhängig ändern. Vorteil: eine Abfrage liefert alles, atomare Updates.
- Referenced, wenn die Daten eigenständig existieren, von mehreren Eltern verwiesen werden könnten oder das Eltern-Dokument zu groß würde (16-MB-Limit).
4) Aufgaben Teil C – Redis und Architektur
- String: einfacher Text/Zahl. Use Case: Cache-Einträge, atomare Counter (mit
INCR). - List: doppelt verkettete Liste. Use Case: Queues (Jobs, Notifications) mit
LPUSH/BLPOP. - Hash: Objekt mit Feldern. Use Case: User-Profile, Session-Daten als Feld-Wert-Paare.
- Set: ungeordnete Menge eindeutiger Strings. Use Case: Online-User-Liste, Tag-Sammlungen, Mengen-Operationen.
- Sorted Set: Menge mit Score, automatisch sortiert. Use Case: Leaderboards, Prioritäts-Queues.
SET, LPUSH, HSET, SADD, ZADD – das zeigt Vertrautheit.getProduct(id), die ein Produkt aus einem 5-Minuten-Cache holt oder bei Cache-Miss aus der DB lädt. Welche Redis-Befehle werden verwendet?# 1) Cache fragen
cached = redis.GET("product:" + id)
if cached:
return JSON.parse(cached) # Cache Hit
# 2) Aus DB lesen
product = db.query("SELECT ...", id)
# 3) In Cache schreiben mit TTL = 300 Sek
redis.SETEX("product:" + id, 300, JSON.stringify(product))
return product
GET key– Wert aus Cache lesen, gibtnilbei Cache-Miss.SETEX key seconds valueoderSET key value EX seconds– Wert schreiben mit Time-to-Live.
DEL product:42), sonst kommen veraltete Daten.- (a) Kunden & Bestellungen: relationale SQL-DB (z.B. PostgreSQL oder MySQL). Begründung: harte ACID-Anforderungen für Geld und Rechtsdaten, klare Struktur, komplexe Reports nötig.
- (b) Produktkatalog: Dokument-DB (z.B. MongoDB). Begründung: variable Attribute pro Produkttyp (Bücher haben Autor, Schuhe haben Größe). In SQL würde das viele NULL-Spalten oder eine Vererbungs-Hölle bedeuten.
- (c) Sessions & Warenkörbe: Redis. Begründung: häufiger Zugriff mit Sub-Millisekunden-Anforderung, automatischer Ablauf per TTL, kein langfristiger Storage nötig.
- ACID: Bank-Transaktionen, Buchhaltung, alles mit Geld-Bezug.
- BASE: Social-Media-Likes, Click-Counter, Sensor-Daten – Bereiche, wo kurze Inkonsistenz akzeptabel und hohe Verfügbarkeit wichtiger ist.
5) Mini-Quiz: schnelle Zuordnung
Sechs kurze Multiple-Choice-Fragen zur Wiederholung:
6) Cheatsheet – das musst du auswendig wissen
Vor der Prüfung am Tag vorher überfliegen. Diese Begriffe sicher in der Klausur zu nennen, ist der Unterschied zwischen Befriedigend und Gut:
insertOne, find, updateOne (immer $set!), deleteOne$eq, $gt/$gte, $lt/$lte, $in, $or, $regex, $exists$match, $group, $project, $sort, $limit, $lookupZusammenfassung & Kurs-Abschluss
Mit dieser Lektion ist der NoSQL-Kurs abgeschlossen. Du hast eine breite Tour durch die NoSQL-Welt gemacht: warum NoSQL überhaupt entstanden ist, die vier Familien, das CAP-Theorem als theoretische Grundlage, MongoDB als Dokument-DB mit CRUD und Aggregation, Redis als Key-Value-Store mit seinen vielfältigen Use Cases, und schließlich die Entscheidungs-Strategie. Die zwölf Aufgaben hier decken alle prüfungsrelevanten Aufgabentypen ab. Wer sie sicher beantworten kann, ist auf den NoSQL-Teil der IHK-Abschlussprüfung gut vorbereitet. Wichtigste Take-Aways: NoSQL ist kein Ersatz für SQL, sondern eine Ergänzung. Wähle das Werkzeug nach dem Problem, nicht nach Hype. Polyglot Persistence ist der heutige Standard.
