165

Daten & Datenbanken · NoSQL

NoSQL-Datenbanken einsetzen

Du lernst, wann eine NoSQL-Datenbank besser passt als eine relationale, und setzt eine Dokumentdatenbank wie MongoDB von der Modellierung bis zum Betrieb ein.

Fortgeschritten Fortgeschritten ca. 24 Std. SelbststudiumApplikationsentwicklung: 2. Lehrjahr · Berufsfachschule
#NoSQL#MongoDB#Dokumentdatenbank#JSON#Aggregation Pipeline#Indizes#Redis#Schema-Design#Replikation

Überblick

Worum geht es?

Nicht alle Daten passen gut in starre Tabellen: Produktkataloge mit sehr unterschiedlichen Eigenschaften, Sensordaten oder Logeinträge lassen sich oft einfacher als Dokumente speichern. Du lernst die wichtigsten NoSQL-Typen kennen und begründest, wann welcher passt. Mit MongoDB entwirfst du ein Dokumentmodell, das zu den Abfragen der Applikation passt, und arbeitest mit CRUD-Befehlen und der Aggregation Pipeline. Zum Schluss kümmerst du dich um Indizes, Schema-Validierung, Benutzer, Backups und den Zugriff aus einer Applikation.

Wofür brauchst du das?

Viele moderne Applikationen kombinieren relationale und NoSQL-Datenbanken: MongoDB für flexible Inhalte, Redis als schneller Cache, eine Zeitreihendatenbank für Messwerte. Im Lehrbetrieb musst du entscheiden können, welche Technologie für eine Anforderung sinnvoll ist, und eine bestehende NoSQL-Datenbank abfragen und erweitern. Das Wissen hilft dir in 295 (Backend), 321 (Verteilte Systeme) und 346 (Cloud).

Das solltest du schon können

  • Daten analysieren und Entitäten mit Beziehungen modellieren (Modul 162)
  • SQL-Abfragen mit Filtern, Joins und Gruppierungen schreiben (Modul 106)
  • Den Aufbau von JSON-Objekten und -Arrays lesen und schreiben
  • Container mit Docker starten und stoppen

Typische Tools & Technologien

MongoDBMongoDB CompassmongoshMongoDB AtlasRedisDockerNode.js / Python / Java Driver

Lernziele

Was musst du können?

Das sind die Fähigkeiten, die am Ende des Moduls sitzen sollten. Jedes Ziel mit einem Beispiel aus dem Lehrbetrieb.

  1. 1

    NoSQL-Typen unterscheiden und eine Datenbankwahl begründen

    Kompetenz A

    Du kennst Dokument-, Key-Value-, Spalten- und Graphdatenbanken und weisst, für welche Zugriffsmuster sie gebaut sind. Du vergleichst sie mit einer relationalen Datenbank und begründest eine Entscheidung anhand konkreter Anforderungen statt nach Trend.

    Situation

    Ein Ticketanbieter für Konzerte in der Deutschschweiz plant ein neues System: Veranstaltungsdaten mit sehr unterschiedlichen Feldern, eine Warteschlange beim Vorverkaufsstart mit 20'000 gleichzeitigen Besucher:innen und die Zahlungsabwicklung.

    Deine Aufgabe

    Schlage für jeden Teil eine passende Datenbanktechnologie vor und begründe sie.

    Gutes Ergebnis

    MongoDB für Veranstaltungen, weil Open-Air, Theater und Club unterschiedliche Felder haben. Redis für Warteschlange und Sitzungen, weil Lese- und Schreibzugriffe in Millisekunden nötig sind. PostgreSQL für Zahlungen, weil dort Transaktionen und strikte Konsistenz zwingend sind.

    DokumentdatenbankKey-Value-StoreSpaltenfamilieGraphdatenbankCAP-TheoremPolyglot Persistence
  2. 2

    Ein Dokumentmodell passend zu den Abfragen entwerfen

    Kompetenz B

    In MongoDB modellierst du nicht nach Normalformen, sondern danach, wie die Applikation die Daten liest und schreibt. Du entscheidest, wann Daten eingebettet und wann über Referenzen verknüpft werden, und achtest auf Grenzen wie die maximale Dokumentgrösse.

    Situation

    Ein Onlineshop für Sportartikel führt Velos, Schuhe und Zelte. Jede Kategorie hat ganz andere Eigenschaften (Rahmengrösse, Schuhgrösse, Personenanzahl). Die Produktseite zeigt Produkt, Varianten und die neuesten 10 Bewertungen.

    Deine Aufgabe

    Entwirf die Collection 'produkte' so, dass die Produktseite mit einer einzigen Abfrage geladen wird.

    Gutes Ergebnis

    Ein Dokument pro Produkt mit gemeinsamen Feldern (name, preis, kategorie) und einem Objekt 'eigenschaften' mit kategoriespezifischen Feldern. Varianten sind als Array eingebettet. Die neuesten 10 Bewertungen werden eingebettet, alle Bewertungen liegen zusätzlich in einer eigenen Collection mit Referenz auf die Produkt-ID.

    DokumentCollectionEinbetten vs. ReferenzierenZugriffsmusterDenormalisierungBSON und 16-MB-Grenze
  3. 3

    Dokumente einfügen, abfragen, ändern und löschen

    Kompetenz C

    Du arbeitest in mongosh und Compass mit insertMany, find, updateOne, updateMany und deleteMany. Du filterst mit Operatoren wie $gt, $in und $regex, fragst verschachtelte Felder und Arrays ab und änderst gezielt Teile eines Dokuments mit $set, $inc und $push.

    Situation

    Im Sportshop sollen alle Zelte für mindestens 3 Personen unter CHF 300 angezeigt werden. Später wird ein Zelt ausverkauft und erhält eine neue Bewertung.

    Deine Aufgabe

    Formuliere die Abfrage und die Änderungen.

    Gutes Ergebnis

    find mit kategorie 'Zelt', 'eigenschaften.personen' $gte 3 und preis $lt 300, Projektion auf Name und Preis, sortiert nach Preis. Danach updateOne mit $set auf lagerbestand 0 und $push einer neuen Bewertung in das Array, mit $each, $sort (nach Datum absteigend) und $slice: 10 auf die neuesten 10 begrenzt.

    insertOne / insertManyfind mit Filter und ProjektionAbfrageoperatorenPunktnotationUpdate-Operatoren ($set, $inc, $push)upsert
  4. 4

    Daten mit der Aggregation Pipeline auswerten

    Kompetenz D

    Für Auswertungen reihst du Stufen wie $match, $group, $sort, $project und $unwind aneinander. Mit $lookup verknüpfst du bei Bedarf Collections. Du verstehst, warum die Reihenfolge der Stufen für Ergebnis und Geschwindigkeit wichtig ist.

    Situation

    Ein Energieversorger im Kanton Aargau speichert stündliche Messwerte von 5000 Smart Metern als Dokumente. Das Netzteam will den Spitzenverbrauch pro Quartier im Januar wissen.

    Deine Aufgabe

    Erstelle eine Pipeline für die Auswertung.

    Gutes Ergebnis

    $match auf Januar 2026 zuerst, damit nur relevante Dokumente verarbeitet werden. $group nach quartier und Stunde mit $sum des Verbrauchs, danach $group nach quartier mit $max. $sort absteigend. Ergebnis: Baden-Nord hat die Spitze mit 4.8 MWh am 14. Januar um 18 Uhr.

    Aggregation Pipeline$match / $group / $sort$project / $unwind$lookupAkkumulatoren ($sum, $avg, $max)
  5. 5

    Indizes und Schema-Validierung gezielt einsetzen

    Kompetenz E

    Auch eine schemafreie Datenbank braucht Regeln. Du definierst mit JSON Schema, welche Felder Pflicht sind und welche Typen erlaubt sind. Mit explain() erkennst du langsame Abfragen und legst passende Einzel-, Mehrfeld- oder TTL-Indizes an.

    Situation

    Die Smart-Meter-Collection ist auf 40 Millionen Dokumente gewachsen. Abfragen pro Zähler dauern mehrere Sekunden, und es tauchen Dokumente ohne zaehler_id auf.

    Deine Aufgabe

    Mach die Abfragen schnell und verhindere unvollständige Dokumente.

    Gutes Ergebnis

    explain('executionStats') zeigt einen COLLSCAN. Ein Mehrfeldindex auf zaehler_id und zeitpunkt bringt die Abfrage auf 15 ms. Ein Validator verlangt zaehler_id (string), zeitpunkt (date) und verbrauch_kwh (number, mindestens 0). Ein TTL-Index löscht Rohdaten nach 3 Jahren automatisch.

    IndexMehrfeldindexexplain()TTL-IndexJSON-Schema-Validierung
  6. 6

    Eine NoSQL-Datenbank sicher betreiben

    Kompetenz E

    Du startest MongoDB mit aktivierter Authentifizierung, legst Benutzer mit passenden Rollen an und erstellst Backups mit mongodump. Du verstehst, wie ein Replica Set die Verfügbarkeit erhöht und was bei einem Ausfall des Primary passiert.

    Situation

    Bei einem KMU in der Ostschweiz läuft MongoDB seit Jahren ohne Passwort auf einem Server, der aus dem Internet erreichbar ist. Ein Sicherheitsscan hat das entdeckt.

    Deine Aufgabe

    Sichere die Datenbank ab und richte eine Datensicherung ein.

    Gutes Ergebnis

    bindIp auf das interne Netz beschränkt, Authentifizierung aktiviert, Benutzer 'shop_app' mit readWrite nur auf die Shop-Datenbank und ein Admin mit starkem Passwort. Nächtlicher mongodump auf ein separates NAS mit 14 Tagen Aufbewahrung, ein Restore wurde in einem Docker-Container erfolgreich getestet.

    AuthentifizierungRollen (read, readWrite)Netzwerkzugriff (bindIp)mongodump / mongorestoreReplica Set
  7. 7

    Eine NoSQL-Datenbank aus einer Applikation nutzen

    Kompetenz F

    Du verbindest eine Applikation über den offiziellen Treiber mit der Datenbank, hältst die Verbindungsdaten in Umgebungsvariablen und führst Abfragen und Änderungen aus dem Code aus. Fehler wie Verbindungsabbrüche oder Duplikate behandelst du sauber.

    Situation

    Eine kleine Node.js-Applikation für eine Velovermietung in Interlaken soll Reservationen in MongoDB speichern.

    Deine Aufgabe

    Binde die Datenbank an und setze das Speichern und Abfragen der Reservationen um.

    Gutes Ergebnis

    Der MongoDB-Treiber liest den Connection String aus der Variable MONGODB_URI. Ein Unique-Index auf velo_id und datum verhindert Doppelreservationen, der Duplicate-Key-Fehler wird abgefangen und als Meldung 'Velo an diesem Tag bereits reserviert' angezeigt.

    TreiberConnection StringUmgebungsvariableFehlerbehandlungObjectId

Selbsteinschätzung

Wo stehst du?

Die Kompetenzmatrix zerlegt das Modul in Themenstränge und drei Stufen. Für den Kompetenznachweis solltest du überall mindestens Stufe 2 erreichen. Dein Stand bleibt in diesem Browser gespeichert und färbt Lernweg und Übungen ein.

Tippe auf eine Aussage, um deinen Stand zu setzen: offen unsicher sitzt
A

NoSQL-Typen einordnen

Ziel 1

Grundlagen

Fortgeschritten

Erweitert

B

Dokumente modellieren

Ziel 2

Grundlagen

Fortgeschritten

Erweitert

C

Dokumente abfragen und ändern

Ziel 3

Grundlagen

Fortgeschritten

Erweitert

D

Auswerten mit Aggregation

Ziel 4

Grundlagen

Fortgeschritten

Erweitert

E

Indizes, Validierung und sicherer Betrieb

Ziel 5Ziel 6

Grundlagen

Fortgeschritten

Erweitert

F

Aus der Applikation nutzen

Ziel 7

Grundlagen

Fortgeschritten

Erweitert

Praxisfall

Das Tourenportal der Alpwerk Software AG

Tim ist im 2. Lehrjahr als Informatiker Applikationsentwicklung bei der Alpwerk Software AG in Chur, einer Softwarefirma mit 45 Mitarbeitenden. Für eine regionale Tourismusorganisation baut das Team ein Portal, auf dem Wanderungen, Biketouren und Schneeschuhtrails mit ganz unterschiedlichen Angaben erfasst werden. Tim übernimmt die Datenhaltung, weil das starre Tabellenmodell des ersten Prototyps ständig angepasst werden musste.

  1. Kapitel 1

    Tabellen oder Dokumente?

    Tim vergleicht für das Teammeeting MariaDB, MongoDB und Redis anhand der Anforderungen. Jede Tourenart hat andere Felder, etwa Höhenmeter und Schwierigkeit beim Wandern oder die Trailskala beim Biken, und das Portal liest viel häufiger, als es schreibt. Er empfiehlt MongoDB für die Touren und Redis nur als Cache für Wetterdaten. Die Rechnungsdaten der Organisation bleiben bewusst in der relationalen Datenbank.

    Ziel 1

  2. Kapitel 2

    Einbetten oder verweisen?

    Tim entwirft ein Dokument pro Tour mit eingebetteten Etappen und Fotos. Die Bewertungen bettet er zuerst ebenfalls ein, bis ihm auffällt, dass eine beliebte Tour mehrere tausend Bewertungen bekommen kann. Er lagert sie in eine eigene Collection mit Verweis auf die Tour aus und speichert in der Tour nur Durchschnitt und Anzahl. In mongosh testet er die wichtigsten Abfragen, etwa alle Wanderungen unter 800 Höhenmetern mit Bahnanschluss.

    Ziel 2Ziel 3

  3. Kapitel 3

    Die Saisonstatistik

    Die Tourismusorganisation will wissen, welche Regionen im Sommer am meisten Bewertungen erhalten. Tim baut eine Pipeline mit $match auf Juni bis September, $lookup auf die Touren und $group nach Region. Zuerst fehlen alle Biketouren, weil das Feld region dort im Unterobjekt start liegt. Mit einem angepassten Feldpfad stimmen die Zahlen, und die Auswertung zeigt das Prättigau an der Spitze.

    Ziel 4

  4. Kapitel 4

    Langsame Suche und ein offener Port

    Mit 25'000 Touren dauert die Suche nach Region und Schwierigkeit über eine Sekunde. explain() zeigt einen COLLSCAN, also legt Tim einen zusammengesetzten Index an und kommt auf 15 Millisekunden. Ein Sicherheitscheck zeigt zudem, dass die Testinstanz ohne Passwort aus dem Internet erreichbar war. Er aktiviert die Authentifizierung, schränkt den Netzwerkzugriff ein und definiert ein JSON-Schema, das Touren ohne Titel oder mit negativer Distanz ablehnt.

    Ziel 5Ziel 6

  5. Kapitel 5

    Die API greift zu

    Zum Schluss bindet Tim die Datenbank mit dem offiziellen Node.js-Treiber an die Express-API an. Die Verbindungsdaten kommen aus Umgebungsvariablen, und alle Zugriffe laufen über ein eigenes Modul tourenRepository. Als die Datenbank beim Lasttest kurz nicht erreichbar ist, liefert die API dank Fehlerbehandlung eine verständliche Meldung statt abzustürzen.

    Ziel 7

Lernweg

Wie lernst du das?

  1. 1

    Die NoSQL-Landschaft verstehen

    ca. 3 Std.

    Du verschaffst dir einen Überblick über die NoSQL-Typen und vergleichst sie mit relationalen Datenbanken anhand konkreter Anwendungsfälle.

    • Eine Vergleichstabelle für MongoDB, Redis, Cassandra, Neo4j und PostgreSQL erstellen
    • Für fünf Anwendungsfälle (Warenkorb-Cache, Produktkatalog, soziales Netzwerk, Buchhaltung, Sensordaten) eine Technologie wählen und begründen

    Trainiert Kompetenz A1A2

    Lernziel1

  2. 2

    MongoDB einrichten und erste Dokumente

    ca. 4 Std.

    Du startest MongoDB in Docker, verbindest dich mit Compass und mongosh und arbeitest mit einfachen CRUD-Befehlen.

    • MongoDB per docker run starten und mit Compass verbinden
    • Einen Beispieldatensatz mit mongoimport aus einer JSON-Datei laden
    • 20 Abfragen mit Filtern, Projektionen und Sortierung schreiben

    Trainiert Kompetenz C1B1

    Lernziel3

  3. 3

    Modellieren für Zugriffsmuster

    ca. 4 Std.

    Du überträgst ein relationales Modell in ein Dokumentmodell und lernst, Einbetten und Referenzieren abzuwägen.

    • Ein Bestellmodell aus Modul 164 in Dokumente umbauen
    • Für jede Beziehung entscheiden und begründen: einbetten oder referenzieren
    • Updates auf verschachtelte Felder und Arrays üben

    Trainiert Kompetenz B2C2

    Lernziel23

  4. 4

    Auswerten mit Pipelines

    ca. 4 Std.

    Du baust Aggregationen Schritt für Schritt auf und prüfst nach jeder Stufe das Zwischenergebnis.

    • Den Aggregation Pipeline Builder in Compass nutzen
    • Umsatz pro Kategorie und Monat berechnen
    • Zwei Collections mit $lookup verbinden

    Trainiert Kompetenz D1D2

    Lernziel4

  5. 5

    Performance, Regeln und Betrieb

    ca. 5 Std.

    Du machst die Datenbank schnell, robust und sicher.

    • Eine Collection mit 1 Million generierten Dokumenten füllen und Abfragen mit explain vor und nach einem Index messen
    • Einen JSON-Schema-Validator anlegen und ungültige Dokumente testen
    • Authentifizierung aktivieren, Rollen vergeben und mongodump/mongorestore ausprobieren

    Trainiert Kompetenz E1E2

    Lernziel56

  6. 6

    Mini-Applikation mit MongoDB

    ca. 5 Std.

    Du verbindest eine kleine Applikation mit deiner Datenbank und setzt einen vollständigen Anwendungsfall um.

    • Mit dem Treiber deiner Sprache Daten lesen und schreiben
    • Fehlerfälle wie Duplikate und fehlende Verbindung behandeln
    • Deine Modellierungsentscheide in einer kurzen Dokumentation begründen

    Trainiert Kompetenz F2F3B3A3

    Lernziel721

Üben

Übungen aus der Praxis

Rezeptsammlung einer Kantine

Einstieg Einstieg

Die Personalkantine eines Spitals sammelt ihre Rezepte in Word-Dokumenten. Jedes Rezept hat unterschiedlich viele Zutaten, Allergene und Arbeitsschritte. Es soll eine durchsuchbare Sammlung in MongoDB entstehen.

Weist nach C1B1

  1. Ein Dokumentformat für Rezepte mit eingebetteten Zutaten und Allergenen festlegen
  2. Zehn Rezepte mit insertMany einfügen
  3. Alle vegetarischen Rezepte ohne Gluten finden
  4. Bei einem Rezept eine Zutat ergänzen und die Portionenzahl erhöhen
Tipp anzeigen

Allergene als Array von Strings lassen sich mit $nin elegant ausschliessen.

Lösungsskizze anzeigen

Dokument mit name, kategorie, vegetarisch (boolean), portionen, zutaten (Array von Objekten mit name, menge, einheit), allergene (Array). Abfrage mit vegetarisch true und allergene $nin ['Gluten']. Update mit $push auf zutaten und $inc auf portionen.

Sendungsverfolgung auswerten

Fortgeschritten Fortgeschritten

Ein Paketdienst in der Region Bern speichert jedes Tracking-Ereignis (abgeholt, im Depot, in Zustellung, zugestellt) als Dokument mit Sendungsnummer, Zeitpunkt, Ort und Fahrer. Pro Tag kommen 80'000 Ereignisse dazu.

Weist nach D2E2

  1. Ermitteln, wie viele Sendungen gestern pro Depot zugestellt wurden
  2. Die durchschnittliche Zeit von 'abgeholt' bis 'zugestellt' pro Postleitzahlenbereich berechnen
  3. Die fünf Fahrer mit den meisten Zustellungen der Woche anzeigen
  4. Mit explain prüfen, ob die Pipeline einen Index nutzt, und einen passenden anlegen
Tipp anzeigen

Für die Durchlaufzeit brauchst du pro Sendung den ersten und den letzten Zeitpunkt. Gruppiere zuerst nach Sendungsnummer, dann weiter.

Lösungsskizze anzeigen

Pipeline mit $match auf Zeitraum und Status zuerst. Für die Durchlaufzeit $group nach sendung mit $min und $max des Zeitpunkts, $project der Differenz, danach $group nach PLZ-Bereich mit $avg. Index auf status und zeitpunkt.

Datenhaltung für eine Gebäudeautomation

Anspruchsvoll Anspruchsvoll

Ein Facility-Management-Unternehmen betreut 60 Schulhäuser in mehreren Gemeinden. Pro Raum messen Sensoren alle 5 Minuten Temperatur, CO₂ und Belegung. Hauswarte wollen aktuelle Werte sehen, die Gemeinden Monatsberichte. Rohdaten dürfen nur 2 Jahre gespeichert werden.

Weist nach A3B3D3E3

  1. Begründen, ob MongoDB, eine relationale Datenbank oder eine Kombination sinnvoll ist
  2. Das Dokumentmodell für Gebäude, Räume und Messwerte entwerfen
  3. Validierung, Indizes und automatische Löschung nach 2 Jahren einrichten
  4. Eine Pipeline für den Monatsbericht (Durchschnitt und Überschreitungen über 1400 ppm CO₂ pro Schulzimmer) erstellen
  5. Benutzer für Applikation, Auswertung und Administration mit passenden Rollen anlegen und ein Backup-Konzept skizzieren
Tipp anzeigen

Ein Dokument pro Messung wird schnell sehr gross. Überlege, ob das Bucket-Pattern (z.B. ein Dokument pro Raum und Stunde) die Anzahl Dokumente sinnvoll reduziert, oder ob eine Time-Series-Collection passt.

Lösungsskizze anzeigen

MongoDB für Messwerte als Time-Series-Collection oder Bucket-Pattern, Stammdaten der Gebäude als eingebettete Struktur in einer eigenen Collection. Validator auf Pflichtfelder und Wertebereiche, Index auf raum_id und zeitpunkt, Ablauf nach 2 Jahren. Monatsbericht mit $match, $group nach Raum und einer bedingten Zählung der Überschreitungen. Drei Rollen und tägliches mongodump mit getesteter Wiederherstellung.

Selbstcheck

Kannst du das beantworten?

Was ist der wichtigste Unterschied beim Modellieren für MongoDB im Vergleich zu SQL?

Bei SQL normalisierst du nach den Daten. Bei MongoDB modellierst du nach den Zugriffsmustern der Applikation, also danach, welche Daten zusammen gelesen und geschrieben werden.

Wann bettest du Daten ein und wann referenzierst du sie?

Einbetten, wenn die Daten fast immer zusammen gelesen werden und ihre Anzahl begrenzt ist. Referenzieren, wenn sie unabhängig genutzt werden, stark wachsen oder von vielen Dokumenten geteilt werden.

Wofür eignet sich ein Key-Value-Store wie Redis besonders?

Für sehr schnelle Zugriffe über einen Schlüssel, z.B. Caches, Sessions, Zähler oder Warteschlangen.

Was sagt das CAP-Theorem aus?

Ein verteiltes System kann bei einer Netzwerktrennung nicht gleichzeitig volle Konsistenz und volle Verfügbarkeit garantieren. Man muss sich für eines von beiden entscheiden.

Warum sollte $match möglichst früh in einer Pipeline stehen?

Damit die folgenden Stufen weniger Dokumente verarbeiten müssen und ein Index genutzt werden kann.

Was ist ein TTL-Index?

Ein Index auf ein Datumsfeld, der Dokumente nach einer festgelegten Zeit automatisch löscht.

Heisst 'schemafrei', dass man kein Schema braucht?

Nein. Die Datenbank erzwingt keines, aber die Applikation erwartet eine Struktur. Mit Schema-Validierung stellst du sicher, dass sie eingehalten wird.

Prüfung

Stolpersteine & Prüfungstipps

Typische Stolpersteine

  • MongoDB wie eine relationale Datenbank nutzen, mit vielen kleinen Collections und $lookup für jede Abfrage.
  • Unbegrenzt wachsende Arrays einbetten, z.B. alle Bestellungen eines Kunden in seinem Dokument.
  • MongoDB ohne Authentifizierung und mit offenem Port im Internet betreiben.
  • Auf Schema-Validierung verzichten und später mit fünf Schreibweisen desselben Feldes kämpfen.
  • NoSQL wählen, weil es modern klingt, obwohl die Anforderungen nach Transaktionen und festen Beziehungen verlangen.

Tipps für den Kompetenznachweis

  • Schreibe vor dem Modellieren die drei bis fünf wichtigsten Abfragen der Applikation auf. Sie bestimmen das Modell.
  • Baue Pipelines Stufe für Stufe in Compass auf und prüfe nach jeder Stufe das Zwischenergebnis.
  • Begründe jede Entscheidung für Einbetten oder Referenzieren in einem Satz, das wird oft bewertet.
  • Halte ein Docker-Kommando bereit, um MongoDB in Sekunden frisch zu starten, falls deine Testdaten kaputt sind.

Glossar

Begriffe kurz erklärt

NoSQL
Sammelbegriff für Datenbanken, die nicht oder nicht nur das relationale Tabellenmodell verwenden.
Dokument
Datensatz in einer Dokumentdatenbank, meist im JSON- bzw. BSON-Format mit verschachtelten Feldern.
Collection
Sammlung von Dokumenten in MongoDB, vergleichbar mit einer Tabelle.
Aggregation Pipeline
Folge von Verarbeitungsstufen, mit der Dokumente gefiltert, gruppiert und umgeformt werden.
Denormalisierung
Bewusstes, redundantes Speichern von Daten, um Lesezugriffe zu beschleunigen.
Replica Set
Gruppe von MongoDB-Servern mit denselben Daten, die bei einem Ausfall automatisch übernehmen.
Key-Value-Store
Datenbank, die Werte unter einem eindeutigen Schlüssel speichert und sehr schnell liefert.
CAP-Theorem
Aussage, dass verteilte Systeme bei Netzwerkproblemen zwischen Konsistenz und Verfügbarkeit abwägen müssen.

Mit KI-Tutor

Jeder Kurs hat einen persönlichen KI-Tutor

  • Erklärt in deinem Tempo
  • Debuggt mit dir
  • Fachgespräch wie im QV
  • Unbegrenzt neue Übungen

Denkanstösse statt fertiger Lösungen. In der Gratis-Lektion zum Ausprobieren.

KI-Tutor · Modul 164Nur Tipps

Mein JOIN liefert plötzlich doppelte Zeilen. Was mache ich falsch?
Gute Frage! Schau dir die Spalte an, über die du verbindest: Ist sie in beiden Tabellen eindeutig? Was passiert mit einer Kundin, die zwei Bestellungen hat?
Ah, dann kommt sie zweimal vor …
Genau. Willst du die Bestellungen zählen oder nur die Kundinnen sehen? Je nachdem hilft dir GROUP BY oder DISTINCT.

Tutavio

So helfen wir dir bei Modul 165

  • Wir übersetzen mit dir ein relationales Modell aus deinem Unterricht in ein Dokumentmodell und besprechen jede Einbetten-oder-Referenzieren-Entscheidung.
  • Wir bauen mit dir Aggregation Pipelines Stufe für Stufe in Compass auf, bis du die Logik selbst sicher anwendest.
  • Wir richten mit dir MongoDB in Docker mit Authentifizierung, Rollen und Backup ein, so wie es im Betrieb aussehen sollte.
  • Vor der Prüfung trainieren wir Begründungsfragen wie 'Warum NoSQL und nicht SQL?' mit konkreten Szenarien.

Unverbindlich anfragen. Wir melden uns innert 24 Stunden.

Tutor:in für Modul 165 finden

Passende Module

Diese Seite ist eine eigene Lernhilfe von Tutavio und keine offizielle Modulbeschreibung. Nummer, Titel und Einordnung stammen aus den öffentlichen Bildungsplänen. Die verbindliche Modulidentifikation findest du im Modulbaukasten von ICT-Berufsbildung Schweiz.

Gratis-LektionNachhilfe