- 1 Section
- 8 Lessons
- unbegrenzt
Lösungen
Aufgabe 1
Lösung:
NoSQL bedeutet „Not only SQL“.
Im Gegensatz zu relationalen Datenbanken arbeiten NoSQL-Systeme nicht mit festen Tabellenstrukturen und Fremdschlüsseln,
sondern speichern Daten oft in flexiblen Formaten wie JSON oder Key-Value-Paaren.
Dadurch können sie große, unstrukturierte oder sich schnell ändernde Datenmengen effizient verarbeiten.
Relationale Systeme legen den Fokus auf Datenkonsistenz, NoSQL eher auf Flexibilität und Skalierbarkeit.
Aufgabe 2
Lösung (Vergleich):
| Merkmal | Relational (SQL) | Dokumentbasiert (NoSQL) |
|---|---|---|
| Struktur | Tabellen mit festen Spalten | Flexible JSON-Dokumente |
| Beziehungen | Über Fremdschlüssel | Eingebettete Objekte |
| Skalierung | Vertikal (größerer Server) | Horizontal (mehr Server) |
| Schema | Vorher festgelegt | Schemafrei |
| Sprache | SQL | Abfragesprache der Datenbank (z. B. JSON-ähnlich) |
Aufgabe 3
Lösung:
a) In einer relationalen Datenbank würde man die Kundendaten in eine Tabelle kunden und die Bestellungen in eine zweite Tabelle bestellungen auslagern. Beide wären über die kundennr miteinander verknüpft.
b) Der Vorteil im NoSQL-Format ist, dass alle relevanten Informationen zu einem Kunden in einem einzigen Dokument stehen. Dadurch lassen sich zusammengehörige Daten leichter lesen und schnell laden, da keine JOINs erforderlich sind.
Aufgabe 4
Lösung:
MongoDB-Abfrage:
db.kunden.find({ ort: "Berlin" })
SQL-Äquivalent:
SELECT * FROM kunden WHERE ort = 'Berlin';
Beide Befehle liefern denselben logischen Inhalt: alle Kunden aus Berlin.
Aufgabe 5
Lösung:
Schemafreiheit kann zu Problemen führen, wenn dieselben Informationen unterschiedlich benannt oder strukturiert werden.
Beispiel: In einigen Dokumenten steht das Feld „ort“, in anderen „stadt“.
Dadurch sind konsistente Abfragen kaum möglich.
Lösung: Einführung von Validierungsregeln oder Nutzung von Schemas im Anwendungs-Code (z. B. über Mongoose oder JSON Schema), um einheitliche Feldnamen sicherzustellen.
Aufgabe 6
Lösung:
| Typ | Anwendungsfall |
|---|---|
| Key-Value-Store | c) Caching von Login-Sitzungen |
| Dokumentbasiert | b) Produktkatalog mit variablen Attributen |
| Graphdatenbank | a) Soziales Netzwerk |
Begründung:
Key-Value eignet sich für schnelle Zugriffe, Dokumente sind flexibel bei Produktinformationen,
Graphdatenbanken sind ideal für Beziehungsnetzwerke.
Aufgabe 7
Lösung:
Die Beziehungen würden als Kanten dargestellt:
A → B (A folgt B)
B → C (B folgt C)
C → A (C folgt A)
Vorteil: Eine Graphdatenbank kann solche Beziehungsstrukturen extrem effizient analysieren.
Zum Beispiel kann sie sehr schnell berechnen, wer wem indirekt folgt oder welche Personen in denselben Netzwerken vorkommen.
Aufgabe 8
Lösung:
Ein relationales System wäre sinnvoll bei:
stark strukturierten Daten (z. B. Rechnungen, Buchhaltung, Inventar)
klar definierten Beziehungen
hoher Datenintegrität (z. B. Banken, Behörden)
Hier ist Konsistenz wichtiger als Flexibilität.
NoSQL eignet sich besser, wenn sich die Datenstrukturen häufig ändern oder stark skalieren müssen.
Aufgabe 9
Lösung (Beispiel-Dokument):
{
"kundennr": 1001,
"name": "Anna Beispiel",
"ort": "Berlin",
"bestellungen": [
{ "produkt": "T-Shirt", "preis": 19.99 },
{ "produkt": "Hoodie", "preis": 39.99 }
]
}
Erläuterung:
Das gesamte Kundenobjekt mit allen Bestellungen befindet sich in einem Dokument.
Die Beziehung Kunde–Bestellung wird dadurch direkt im Dokument abgebildet (keine JOINs nötig).
