Zum Inhalt

Fragenkatalog M165 NoSQL-Datenbanken

Hier sind die Antworten zu den Fragenkatalogen des Moduls 165.

Fragenkatalog M165 01 Aktivierung Vorwissen

Einfache Fragen

Frage 1: Erklären Sie den Begriff "Daten" und wie sie sich von "Informationen" und "Wissen" unterscheiden.

  • Daten: Rohfakten, Zahlen, Zeichen oder Symbole ohne Kontext (z. B. "25", "rot").
  • Informationen: Daten, die in einen Kontext gesetzt und verarbeitet wurden, sodass sie eine Bedeutung haben (z. B. "25 Grad Celsius").
  • Wissen: Verstandene Informationen, die mit Erfahrung und Kontext verknüpft sind und Handlungen ermöglichen (z. B. "Bei 25 Grad ziehe ich ein T-Shirt an").

Frage 2: Beschreiben Sie den Unterschied zwischen relationalen Datenbanken und NoSQL-Datenbanken.

  • Relationale Datenbanken (SQL): Speichern Daten in Tabellen mit festen Schemata und Beziehungen (Foreign Keys). Sie nutzen SQL und sind stark auf Konsistenz (ACID) ausgerichtet.
  • NoSQL-Datenbanken: Speichern Daten flexibel (z. B. als Dokumente, Key-Value-Paare, Graphen). Sie haben oft kein festes Schema, sind horizontal skalierbar und priorisieren oft Verfügbarkeit vor sofortiger Konsistenz.

Frage 3: Erläutern Sie die Bedeutung von Datenqualität und nennen Sie vier wichtige Aspekte.

Datenqualität bestimmt, wie gut Daten für ihren vorgesehenen Zweck geeignet sind. Schlechte Daten führen zu falschen Entscheidungen. Vier Aspekte: 1. Korrektheit: Die Daten müssen die Realität richtig abbilden. 2. Vollständigkeit: Alle benötigten Daten müssen vorhanden sein. 3. Konsistenz: Daten dürfen sich nicht widersprechen. 4. Aktualität: Die Daten müssen auf dem neuesten Stand sein.

Frage 4: Erklären Sie die Rolle und Berechtigungen des IT-Administrators in der Filmdatenbank.

Der IT-Administrator hat in der Regel volle Zugriffsrechte (Superuser). Er ist verantwortlich für die Wartung, Sicherung, Benutzerverwaltung und Performance-Optimierung der Datenbank. Er darf Schemata ändern und hat Zugriff auf alle Daten.

Mittelschwere Fragen

Frage 5: Erklären Sie das Konzept der Abstraktion und wie es in der Datenverarbeitung verwendet wird.

Abstraktion bedeutet, komplexe Details auszublenden, um sich auf das Wesentliche zu konzentrieren. In der Datenverarbeitung geschieht dies durch Datenmodelle (z. B. ER-Modell), die die Realität vereinfacht darstellen, ohne technische Speicherdetails (Bits/Bytes) anzeigen zu müssen.

Frage 6: Beschreiben Sie die Bedeutung von Redundanz in Datenbanken und welche Probleme sie verursachen kann.

Redundanz bedeutet, dass dieselben Daten mehrfach gespeichert sind. * Problem: Dies führt zu Speicherverschwendung und Inkonsistenzen (Anomalien), wenn Daten an einer Stelle geändert werden, aber an einer anderen nicht (Update-Anomalie).

Frage 7: Erläutern Sie die Normalisierung in relationalen Datenbanken und nennen Sie die drei wichtigsten Normalformen.

Normalisierung ist der Prozess, Redundanzen zu minimieren und Daten in logische Tabellen aufzuteilen. * 1. NF: Atomare Werte (keine Listen in einer Zelle). * 2. NF: Keine teilweisen Abhängigkeiten vom Primärschlüssel. * 3. NF: Keine transitiven Abhängigkeiten (Nicht-Schlüssel-Attribute hängen nur vom Primärschlüssel ab).

Frage 8: Beschreiben Sie die Rolle und Berechtigungen des Verwaltungspersonals in der Filmdatenbank.

Das Verwaltungspersonal pflegt die Daten (CRUD-Operationen: Create, Read, Update, Delete für Filmdaten), hat aber meist keine administrativen Rechte (wie Benutzer anlegen oder Struktur ändern).

Schwere Fragen

Frage 9: Erklären Sie den Unterschied zwischen NewSQL-Datenbanken und herkömmlichen relationalen Datenbanken sowie NoSQL-Datenbanken.

  • NewSQL: Versucht, die Skalierbarkeit von NoSQL mit den ACID-Garantien und der SQL-Schnittstelle von relationalen Datenbanken zu kombinieren (z. B. CockroachDB).
  • Relationale DB: ACID, SQL, aber schwer horizontal skalierbar.
  • NoSQL: Skalierbar, flexibel, aber oft Abstriche bei ACID/SQL.

Frage 10: Beschreiben Sie die Rolle des Rollenkonzepts in Bezug auf Datensicherheit und Zugriffssteuerung in Datenbanken.

Ein Rollenkonzept (RBAC - Role Based Access Control) fasst Berechtigungen zu Rollen zusammen (z. B. "Leser", "Editor", "Admin"). Benutzern werden Rollen zugewiesen statt individueller Rechte. Dies vereinfacht die Verwaltung und erhöht die Sicherheit, da Rechte nach dem "Need-to-know"-Prinzip vergeben werden können.

Frage 11: Erläutern Sie die Bedeutung von Datensicherheitskonzepten für Unternehmen und geben Sie Beispiele für mögliche Konsequenzen bei Nichteinhaltung.

Datensicherheitskonzepte schützen vor Datenverlust, Diebstahl und Missbrauch. * Konsequenzen: Finanzielle Verluste, Image-Schaden, rechtliche Strafen (DSGVO), Betriebsunterbrechungen.

Frage 12: Beschreiben Sie, wie das Rollenspiel zur Verdeutlichung der Bedeutung von Rollen und Berechtigungen in der Datenbankverwaltung eines Fitnesscenters eingesetzt werden kann.

Im Rollenspiel nehmen Teilnehmer verschiedene Rollen ein (z. B. Trainer, Mitglied, Rezeptionist, Admin). Es wird simuliert, wer welche Daten sehen darf (Trainer sieht Trainingsplan, aber nicht Bankverbindung; Rezeptionist sieht Zahlungsstatus). Dies macht abstraktes Rechtemanagement greifbar.


Fragenkatalog M165 02 NoSQL-Grundlagen

Einfache Fragen

Frage 1: Was sind die Hauptunterschiede zwischen relationalen Datenbanken und NoSQL-Datenbanken?

  • Schema: Relational = fest (SQL); NoSQL = flexibel/schema-less.
  • Skalierung: Relational = vertikal (schnellerer Server); NoSQL = horizontal (mehr Server).
  • Datenstruktur: Relational = Tabellen; NoSQL = Dokumente, Graphen, Key-Value, etc.

Frage 2: Erkläre das CAP-Theorem.

Das CAP-Theorem besagt, dass ein verteiltes System von den drei Eigenschaften Consistency (Konsistenz), Availability (Verfügbarkeit) und Partition Tolerance (Ausfalltoleranz) nur zwei gleichzeitig vollständig gewährleisten kann.

Frage 3: Nenne die vier Haupttypen von NoSQL-Datenbanken.

  1. Key-Value Stores (z. B. Redis)
  2. Document Stores (z. B. MongoDB)
  3. Column-Family Stores (z. B. Cassandra)
  4. Graph Databases (z. B. Neo4j)

Frage 4: Was sind die Vorteile von JSON im Vergleich zu XML?

  • Leichtgewichtiger und kompakter (weniger Overhead).
  • Einfacher zu lesen für Menschen und Maschinen.
  • Direkte Abbildung auf Objekte in vielen Programmiersprachen (besonders JavaScript).

Mittelschwere Fragen

Frage 5: Was sind die Vorteile und Herausforderungen beim Einsatz von NoSQL-Datenbanken in grossen Anwendungen?

  • Vorteile: Hohe Skalierbarkeit, Flexibilität bei Änderungen am Datenmodell, hohe Performance bei grossen Datenmengen.
  • Herausforderungen: Eventual Consistency (Daten sind nicht sofort überall gleich), fehlende Standards (kein einheitliches SQL), komplexeres Datenmanagement auf Anwendungsebene.

Frage 6: Wie funktioniert die Datenmodellierung in einer dokumentenbasierten NoSQL-Datenbank wie MongoDB?

Daten werden in Dokumenten (meist JSON/BSON) gespeichert. Zusammengehörige Daten werden oft eingebettet (embedded), statt über Joins verknüpft zu werden. Dies optimiert Lesezugriffe. Sammlungen von Dokumenten heissen Collections.

Frage 7: Was bedeutet "Eventual Consistency" in Bezug auf NoSQL-Datenbanken?

Es bedeutet, dass nach einer Änderung die Daten nicht sofort auf allen Knoten konsistent sind, aber "schliesslich" (eventually) – nach einer gewissen Zeit ohne neue Updates – alle Knoten denselben Stand haben.

Frage 8: Erkläre die Unterschiede zwischen CP-, AP- und CA-Datenbanken gemäss dem CAP-Theorem.

  • CP (Consistency & Partition Tolerance): Bei Netzwerkproblemen bleibt das System konsistent, lehnt aber eventuell Anfragen ab (nicht verfügbar). (Z. B. MongoDB standardmässig).
  • AP (Availability & Partition Tolerance): Bei Netzwerkproblemen bleibt das System verfügbar, liefert aber eventuell veraltete Daten (nicht konsistent). (Z. B. Cassandra).
  • CA (Consistency & Availability): Nicht möglich in verteilten Systemen mit Netzwerkpartitionen. Gilt nur für Einzelknoten-Systeme (klassische RDBMS).

Schwere Fragen

Frage 9: Diskutiere die Vor- und Nachteile der Denormalisierung in NoSQL-Datenbanken.

  • Vorteile: Schnellere Lesezugriffe, da keine Joins nötig sind (Daten liegen beieinander).
  • Nachteile: Redundanz (mehr Speicherbedarf), aufwendigere Updates (Daten müssen an mehreren Orten geändert werden), Gefahr von Inkonsistenzen.

Frage 10: Wie kann die Datenintegrität in einer NoSQL-Datenbank sichergestellt werden, wenn ACID-Eigenschaften nicht vollständig erfüllt sind?

  • Durch Design auf Anwendungsebene (Applikation muss Fehler abfangen).
  • Nutzung von atomaren Operationen auf Dokumentenebene.
  • Einsatz von Transaktionen (viele moderne NoSQL-DBs wie MongoDB unterstützen mittlerweile Multi-Document-Transaktionen).

Frage 11: Welche Rolle spielen Indizes in NoSQL-Datenbanken und wie unterscheiden sie sich von Indizes in relationalen Datenbanken?

Indizes sind auch in NoSQL essenziell für die Performance von Abfragen. Sie funktionieren ähnlich (B-Trees), können aber komplexer sein (z. B. auf Felder in eingebetteten Dokumenten oder Arrays). Ohne Index muss oft die ganze Collection gescannt werden.

Frage 12: Erläutere die verschiedenen Anwendungsfälle für die verschiedenen Typen von NoSQL-Datenbanken.

  • Key-Value: Caching, Session-Management (hoher Durchsatz, einfache Struktur).
  • Document: Content-Management-Systeme, E-Commerce Kataloge (variable Attribute).
  • Column-Store: Big Data Analysen, Zeitreihendaten (schreibintensiv, riesige Mengen).
  • Graph: Soziale Netzwerke, Recommendation Engines (komplexe Beziehungen).

Fragenkatalog M165 03 NoSQL-Datenbank implementieren

Einfache Fragen

Frage 1: Was sind NoSQL-Datenbanken und wofür werden sie verwendet?

Nicht-relationale Datenbanken für grosse, unstrukturierte Datenmengen, Echtzeit-Webanwendungen und Big Data.

Frage 2: Nennen Sie drei Arten von NoSQL-Datenbanken und deren Hauptmerkmale.

(Siehe Frage 3 in Kapitel 02) 1. Document (JSON-Struktur) 2. Key-Value (einfacher Schlüssel-Wert) 3. Graph (Knoten und Kanten)

Frage 3: Was ist der Unterschied zwischen einer relationalen und einer NoSQL-Datenbank?

(Siehe Frage 2 in Kapitel 01 & Frage 1 in Kapitel 02) Hauptunterschied liegt in Struktur (Tabelle vs. flexibel) und Skalierung.

Frage 4: Welche Vorteile bieten NoSQL-Datenbanken im Vergleich zu traditionellen Datenbanken?

Agilität (Schemaänderungen einfach), Skalierbarkeit (Scale-out), Performance bei speziellen Workloads.

Mittelschwere Fragen

Frage 5: Erklären Sie, was ein Dokumentenmodell in NoSQL-Datenbanken ist und geben Sie ein Beispiel.

Daten werden als Dokumente (z. B. JSON) gespeichert. Ein Dokument enthält alle Infos zu einer Entität. Beispiel:

{
  "_id": 1,
  "name": "Film A",
  "genres": ["Action", "Drama"]
}

Frage 6: Was sind die Hauptunterschiede zwischen einer Schlüssel-Wert-Datenbank und einer dokumentenorientierten Datenbank?

  • Key-Value: Der Wert ist eine "Black Box" für die Datenbank; man kann nur über den Key abfragen.
  • Document: Die Datenbank versteht die Struktur (JSON) und man kann Abfragen auf Felder innerhalb des Dokuments machen (z. B. "finde alle mit genre='Action'").

Frage 7: Beschreiben Sie die Rolle von Indizes in NoSQL-Datenbanken und deren Vorteile.

Indizes beschleunigen Leseoperationen drastisch, indem sie eine sortierte Referenzstruktur bieten. Nachteil: Schreiben wird etwas langsamer (Index muss gepflegt werden).

Frage 8: Was ist eine Graphdatenbank und in welchen Anwendungsfällen ist sie besonders nützlich?

Speichert Daten als Knoten (Entitäten) und Kanten (Beziehungen). Perfekt für vernetzte Daten: "Freunde von Freunden finden", Routenplanung, Betrugserkennung.

Schwere Fragen

Frage 9: Erklären Sie das Konzept der horizontalen Skalierung in NoSQL-Datenbanken und wie es sich von der vertikalen Skalierung unterscheidet.

  • Horizontal (Scale-out): Hinzufügen weiterer Server (Nodes) zum Cluster. Günstig, fast unbegrenzt möglich (NoSQL-Ansatz).
  • Vertikal (Scale-up): Aufrüsten des bestehenden Servers (mehr RAM/CPU). Teuer und hat physikalische Grenzen (SQL-Ansatz).

Frage 10: Was sind die Herausforderungen bei der Datenkonsistenz in verteilten NoSQL-Datenbanken und wie können sie adressiert werden?

Synchronisation zwischen Knoten dauert Zeit (Latenz). Adressierung durch: Quorum-Reads/Writes (Mehrheit muss zustimmen), Versionierung (Vector Clocks), oder Inkaufnahme von Eventual Consistency.

Frage 11: Diskutieren Sie die Vor- und Nachteile von NoSQL-Datenbanken im Vergleich zu relationalen Datenbanken in Bezug auf Transaktionsmanagement.

SQL bietet starke ACID-Transaktionen über mehrere Tabellen. NoSQL bot lange nur Atomizität auf Dokumentenebene (Single-Document ACID). Zwar bieten einige nun Multi-Document ACID, dies ist aber oft performance-intensiver als bei SQL. Wer komplexe Finanztransaktionen braucht, wählt oft noch SQL.

Frage 12: Beschreiben Sie den Begriff "CAP-Theorem" und seine Bedeutung für NoSQL-Datenbanken.

(Siehe Frage 2 & 8 in Kapitel 02). Für NoSQL bedeutet es, dass man sich meist entscheiden muss: Will ich absolute Konsistenz (CP, z.B. bei Zahlungen) oder immer Verfügbarkeit (AP, z.B. bei Social Media Feeds)? Man kann nicht beides perfekt haben, wenn das Netzwerk partitioniert ist.


Fragenkatalog M165 04 Arbeiten mit MongoDB

Einfache Fragen

Frage 1: Wie verbindet man sich mit der Datenbank und erstellt die moviesDB?

mongosh "mongodb+srv://cluster..."
use moviesDB

Frage 2: Wie fügt man Filmdaten in die movies-Collection ein?

db.movies.insertOne({ title: "Inception", year: 2010 })
// oder
db.movies.insertMany([{...}, {...}])

Frage 3: Wie prüft man die eingefügten Daten in der movies-Collection?

db.movies.find()
// oder schön formatiert (in älteren Shells):
db.movies.find().pretty()

Frage 4: Wie fügt man eine Auszeichnung (Award) in die awards-Collection ein?

db.awards.insertOne({ oscars: 2, movie_id: ... })

Mittelschwere Fragen

Frage 5: Wie kann man einem Film Dokument verschachtelte Bewertungen (IMDb und Tomatometer) hinzufügen?

db.movies.updateOne(
  { title: "Inception" },
  { $set: { 
      ratings: { 
        imdb: 8.8, 
        tomatoes: 87 
      } 
    } 
  }
)

Frage 6: Wie fügt man einem Film JSON-Dokument Kommentare mit Benutzerinformationen hinzu?

Als Array von Objekten:

db.movies.updateOne(
  { title: "Inception" },
  { $push: { 
      comments: { user: "User1", text: "Great movie!" } 
    } 
  }
)

Frage 7: Wie kann man überprüfen, ob ein JSON-Dokument korrekt strukturiert ist?

In MongoDB selbst durch Schema Validation (JSON Schema) bei der Collection-Erstellung. Manuell durch Prüfung mit find() oder externen JSON-Lintern.

Frage 8: Wie können Sie JSON-Dokumente basierend auf IMDb-Bewertungen aus der movies-Collection abfragen?

db.movies.find({ "ratings.imdb": { $gt: 8.0 } })

Schwere Fragen

Frage 9: Wie kann man die MongoDB-Datenbank mflix von einer lokalen Sicherung wiederherstellen?

Mit mongorestore:

mongorestore --uri "mongodb+srv://..." --nsInclude="mflix.*" dump/
(Umgebungsvariablen für Passwörter sollten gesetzt sein).

Frage 10: Wie kombiniert man komplexe Abfragen (Leonardo DiCaprio + Martin Scorsese + Genre Drama/Krimi)?

db.movies.find({
  cast: "Leonardo DiCaprio",
  directors: "Martin Scorsese",
  genres: { $in: ["Drama", "Crime"] }
})

Frage 11: Wie findet man die Anzahl von Filmen... (Aggregation)?

db.movies.aggregate([
  { $match: { cast: "Leonardo DiCaprio" } },
  { $group: { _id: null, count: { $sum: 1 } } }
])

Frage 12: Wie kann überprüft werden, ob ein Film-Dokument die Schemaanforderungen erfüllt und wie können fehlerhafte Einträge angezeigt werden?

Durch Validierungsregeln ($jsonSchema) auf der Collection. Bestehende fehlerhafte Dokumente findet man mit einer Query, die das Gegenteil des Schemas sucht (z. B. find({ title: { $exists: false } })).