Datenbanken in Rechnernetzen und Transaktionssysteme - Cheatsheet.pdf

Datenbanken in Rechnernetzen und Transaktionssysteme - Cheatsheet
Datenbanken in Rechnernetzen und Transaktionssysteme - Cheatsheet Architekturen für verteilte Systeme Definition: Strukturierte Anordnung von Komponenten, um verteilte Aufgaben effizient zu erledigen; wichtig für Skalierbarkeit und Ausfallsicherheit. Details: Client-Server: Aufteilung in Client und Server; Clients senden Anfragen, Server antworten Peer-to-Peer (P2P): Gleichberechtigte Knoten, die ...

© StudySmarter 2024, all rights reserved.

Datenbanken in Rechnernetzen und Transaktionssysteme - Cheatsheet

Architekturen für verteilte Systeme

Definition:

Strukturierte Anordnung von Komponenten, um verteilte Aufgaben effizient zu erledigen; wichtig für Skalierbarkeit und Ausfallsicherheit.

Details:

  • Client-Server: Aufteilung in Client und Server; Clients senden Anfragen, Server antworten
  • Peer-to-Peer (P2P): Gleichberechtigte Knoten, die direkt miteinander kommunizieren
  • Schichtenarchitektur: Mehrere Ebenen, z.B. Präsentation, Logik und Datenhaltung getrennt
  • Microservices: Modularisierung in kleine, unabhängige Dienste, die über APIs kommunizieren
  • \textbf{Wichtige Konzepte}: Skalierbarkeit, Lastverteilung, Fehlertoleranz

ACID-Eigenschaften (Atomicity, Consistency, Isolation, Durability)

Definition:

ACID-Eigenschaften sind grundlegende Prinzipien, die Transaktionen in Datenbanksystemen sicherstellen, um Datenintegrität und Zuverlässigkeit zu gewährleisten.

Details:

  • Atomicity: Transaktionen sind unteilbar; entweder wird die gesamte Transaktion durchgeführt oder gar nicht. -> \textit{Ganz oder gar nicht Prinzip.}
  • Consistency: Transaktionen führen das System von einem konsistenten Zustand in einen anderen. -> \textit{Datenintegrität wird erhalten.}
  • Isolation: Gleichzeitige Transaktionen beeinflussen sich nicht gegenseitig. -> \textit{Erscheinungsbild von sequentieller Ausführung.}
  • Durability: Nach Abschluss einer Transaktion bleiben die Änderungen dauerhaft bestehen, selbst bei Systemausfällen. -> \textit{Permanent gesicherte Daten.}

Synchrone vs. Asynchrone Replikation

Definition:

Synchrone Replikation: Änderungen an der Primärdatenbank werden auf allen Replikas sofort umgesetzt. Asynchrone Replikation: Änderungen werden später zu den Replikas propagiert.

Details:

  • Synchrone Replikation: Niedrige Latenz, hohe Konsistenz, hohe Netzwerkbelastung
  • Asynchrone Replikation: Höhere Latenz, mögliche Inkonsistenz, geringere Netzwerkbelastung
  • Beispielformel für synchrone Replikation: \[ T_{rep} = T_{primär} + T_{netz} \]
  • Beispielformel für asynchrone Replikation: \[ D_{latenz} = T_{primär} - T_{replik} \]

CAP-Theorem (Consistency, Availability, Partition Tolerance)

Definition:

Das CAP-Theorem beschreibt den Trade-off in verteilten Systemen zwischen Konsistenz, Verfügbarkeit und Partitionstoleranz.

Details:

  • Konsistenz (Consistency, C): Alle Knoten sehen dieselben Daten zur gleichen Zeit.
  • Verfügbarkeit (Availability, A): Jede Anfragen erhält eine Antwort (Erfolg oder Fehler).
  • Partitionstoleranz (Partition Tolerance, P): Das System arbeitet trotz Netzwerkpartitionen weiter.
  • Im Falle einer Netzwerkpartition musst Du Dich zwischen C und A entscheiden.

Log-basierte Wiederherstellung

Definition:

Methode zur Wiederherstellung von Datenbanken unter Benutzung von Protokollen, um den Zustand der Datenbank vor einem Fehler wiederherzustellen.

Details:

  • ARD: Atomicity, Consistency, Isolation, Durability.
  • WAL-Protokoll (Write Ahead Logging): Änderungen werden zuerst im Log und dann in der Datenbank geschrieben.
  • REDO- und UNDO-Protokoll: Wiederholung (REDO) und Rückgängigmachung (UNDO) von Transaktionen.
  • Checkpoint: Markiert sicheren Zustand, um Startpunkt zu reduzieren.
  • Log enthält sowohl 'before' als auch 'after' Images bei Änderungen.
  • Recovery-Prozesse: Normalerweise auf Basis der Analyse-, Redo-, und Undo-Phasen.

Konsistenzmodelle für replizierte Daten

Definition:

Modelle zur Gewährleistung der Konsistenz von Daten, die über mehrere Systeme verteilt sind.

Details:

  • Starke Konsistenz: Alle Knoten sehen immer den selben Stand der Daten nach einer Transaktion.
  • Eventuelle Konsistenz: Daten werden schließlich konsistent, keine sofortige Konsistenzgarantie.
  • Monotone Konsistenz: Ein Knoten sieht keine ältere Version der Daten, nachdem er eine neuere gesehen hat.
  • Kausale Konsistenz: Schreiboperationen, die kausal zusammenhängen, erscheinen in der gleichen Reihenfolge bei allen Knoten.
  • Lesesichtkonsistenz: Konsistente Sicht auf Daten während einer Operation.

Partitionierung und Fragmentierung

Definition:

Partitionierung teilt Datenbank in mehrere unabhängige Teile. Fragmentierung zerlegt eine Relation in kleinere Teile.

Details:

  • Partitionierungstypen: - Horizontale Partitionierung - Vertikale Partitionierung
  • Fragmentierungstypen: - Horizontale Fragmentierung (\texttt{WHERE}-Klausel) - Vertikale Fragmentierung (Attribut-Untergruppen)
  • Kombination beider möglich (Hybrid-Partionierung)
  • Wichtig für Datenverteilung, Performance und Verfügbarkeit

Concurrency Control Mechanismen

Definition:

Concurrency Control Mechanismen sichern die Konsistenz von Datenbanken bei konkurrierendem Zugriff durch mehrere Transaktionen.

Details:

  • Ziel: Vermeidung von Inkonsistenzen und Sicherstellung von Serialisierbarkeit
  • Optimistische Kontrolle: Konfliktvermeidung durch Validierung am Ende
  • Pessimistische Kontrolle: Vermeidung durch Sperren (Locks)
  • Zwei-Phasen-Sperrprotokoll (2PL): Sperren in Wachstumsphase, Freigeben in Schrumpfphase
  • Deadlocks: Vermeidung und Behandlung notwendig (z.B. durch Wait-Die oder Wound-Wait-Schema)
  • Timestamp-basierte Steuerung: Jüngere Transaktionen blockieren ältere nur, falls Konflikte entstehen
Sign Up

Melde dich kostenlos an, um Zugriff auf das vollständige Dokument zu erhalten

Mit unserer kostenlosen Lernplattform erhältst du Zugang zu Millionen von Dokumenten, Karteikarten und Unterlagen.

Kostenloses Konto erstellen

Du hast bereits ein Konto? Anmelden