Datenbanken in Rechnernetzen und Transaktionssysteme - Cheatsheet
Entity-Relationship-Modell (ERM)
Definition:
Abstraktionskonzept zur Modellierung von Datenbanken; verwendet Entitäten, Attribute und Beziehungen.
Details:
- Entität: Objekt oder Konzept, das in der Datenbank repräsentiert wird.
- Attribut: Eigenschaft einer Entität.
- Beziehung: Verbindung zwischen zwei oder mehr Entitäten.
- Schlüsselattribute: Eindeutige Identifizierung einer Entität.
- Darstellung in einem ER-Diagramm.
- Einfacher vs. erweiterter ERM (EERM).
Normalisierung und Denormalisierung von Datenbanken
Definition:
Prozess zur Optimierung der Datenbankstruktur durch Eliminierung von Redundanzen und Sicherstellung der Datenintegrität (Normalisierung) und umgekehrter Prozess zur Verbesserung der Abfragegeschwindigkeit (Denormalisierung).
Details:
- Normalisierung: Schrittweise Aufteilung in Normalformen:
- 1. Normalform (1NF): Elimination von Wiederholungsgruppen
- 2. Normalform (2NF): Elimination von partiellen Abhängigkeiten
- 3. Normalform (3NF): Elimination von transitiven Abhängigkeiten
- Ziel: Redundanz verringern, Konsistenz und Datenintegrität verbessern
- Denormalisierung: Vergleichen von mehreren Tabellen und Zusammenzuführen von Daten
- Ziel: Performance/Abfragegeschwindigkeit erhöhen
- Nachteile: Erhöhte Redundanz, potentielle Konsistenzprobleme
ACID-Prinzipien
Definition:
ACID-Prinzipien sichern die Zuverlässigkeit von Transaktionen in Datenbanksystemen.
Details:
- Atomicity (Atomarität): Eine Transaktion ist entweder vollständig oder gar nicht ausgeführt.
- Consistency (Konsistenz): Eine Transaktion führt das System von einem konsistenten Zustand in einen anderen.
- Isolation (Isolation): Parallel ablaufende Transaktionen beeinflussen sich nicht gegenseitig.
- Durability (Dauerhaftigkeit): Nach Abschluss einer Transaktion bleiben die Änderungen dauerhaft gespeichert.
Konzepte von Datenreplikation und Synchronisation
Definition:
Datenreplikation: Duplizieren von Daten über mehrere Knoten hinweg; Synchronisation: Sicherstellen der Konsistenz dieser kopierten Daten.
Details:
- Datenreplikation: erhöht Verfügbarkeit und Fehlertoleranz
- Synchronisationsstrategien: sofort (synchron) vs. verzögert (asynchron)
- Replikationsarten: Master-Slave, Multi-Master, Peer-to-Peer
- Konsistenzmodelle: starke Konsistenz, eventual consistency
- Konfliktbehandlung: Konflikterkennung und -auflösung
- Wichtige Algorithmen: Two-Phase Commit (2PC), Paxos, Raft
- Leistungsmetriken: Latenz, Durchsatz, Verfügbarkeit
Concurrency Control Techniken und Locking-Mechanismen
Definition:
Mechanismen zur Verwaltung gleichzeitiger Zugriffe auf eine Datenbank, um Konsistenz und Isolation von Transaktionen sicherzustellen.
Details:
- Ziel: Vermeidung von Anomalien wie Dirty Reads, Lost Updates, Non-repeatable Reads.
- Sperrarten: Shared Lock (S) für Lesen, Exclusive Lock (X) für Schreiben.
- 2-Phasen-Sperrprotokoll (2PL): Growing Phase (nur Sperren), Shrinking Phase (nur Entsperren).
- Deadlocks: Zyklisches Warten, gelöst durch Deadlock Detection oder Deadlock Prevention.
- WICHTIG: Isolationslevel (READ UNCOMMITTED, READ COMMITTED, REPEATABLE READ, SERIALIZABLE) beeinflussen Sperrverhalten.
Role-Based Access Control (RBAC)
Definition:
Zugriffssteuerung basierend auf Rollen, um Berechtigungen effizient zu verwalten und zuzuweisen.
Details:
- Rollen: Sammlung von Berechtigungen, die bestimmten Aufgaben entsprechen.
- Subjekte: Nutzer oder Prozesse, denen Rollen zugewiesen werden.
- Zuweisung: Subjekte erhalten Rollen basierend auf ihrer Position oder Aufgabe.
- Rollen-Hierarchien: Erlauben die Vererbung von Berechtigungen.
- Vorteile: Vereinfachte Verwaltung, erhöhte Sicherheit, Skalierbarkeit.
- Nicht zu verwechseln mit Discretionary Access Control (DAC) oder Mandatory Access Control (MAC).
- Beispiel: Verwaltungssysteme, Datenbankschutz.
Verteilte Datenbanksysteme
Definition:
Verteilte Datenbanksysteme bestehen aus mehreren logisch zusammenhängenden Datenbanken, die über ein Netzwerk verteilt sind.
Details:
- Datenaufteilung: Daten sind auf mehreren Standorten verteilt.
- Replikation: Datenkopien werden an mehreren Standorten gehalten.
- Transparenz: Nutzern erscheint das System als eine einzige Datenbank.
- Konsistenz: Daten in allen Replikaten müssen aktuell und korrekt sein.
- Verfügbarkeit: System bleibt auch bei Ausfällen von Teilen funktionsfähig.
- Skalierbarkeit: Einfache Erweiterung durch Hinzufügen weiterer Knoten.
- Abfragen: Komplexität durch verteilte Datenzugriffe höher.
Multiversion Concurrency Control (MVCC)
Definition:
Multiversion Concurrency Control (MVCC) erlaubt mehreren Transaktionen gleichzeitig zu lesen und zu schreiben, indem verschiedene Versionen von Datenobjekten beibehalten werden.
Details:
- Jede Schreiboperation erzeugt eine neue Version eines Datenobjekts.
- Lesende Transaktionen sehen nur die Versionen, die vor ihrem Beginn erstellt wurden. Dadurch wird eine konsistente Sicht auf die Daten sichergestellt.
- MVCC verhindert Deadlocks und verbessert die Performance bei gleichzeitigen Transaktionen.
- Abfragen verwenden Transaktionszeitstempel, um die korrekten Versionen von Daten zu identifizieren:
ReadTime(T)
und WriteTime(T)
. - Schreibkonflikte werden durch Überprüfen der Sichtbarkeit und der gültigen Zeiträume der Versionen gemanagt.
- Drei wichtige Operationen:
- Read(y): Liest die neueste Version, die vor
ReadTime
erstellt wurde. - Write(x): Generiert eine neue Version.
- Commit: Macht die neue Version dauerhaft sichtbar.