22
Datenbanken Grundlagen (Fach) / Transaktionen (Lektion)
f
Diese Lektion wurde von mapawa erstellt.
Diese Lektion ist leider nicht zum lernen freigegeben.
Anzeige
- Definiere "Transaktion" - logische Abfolge von Operationen - mindestens ein Schreibe-/Lesevorgang
- Was sind die Eigenschaften einer Transaktion - kann sich über einen längeren Zeitraum erstrecken - Operationen finden meist außerhalb des Datenbestandes statt
- Welche Probleme können bei Transaktionen auftreten - Lost Update - Dirty Read - inkonsistente Berechnung
- Was ist das Lost Update Problem? Das Ergebnis eines Updates wird durch ein weiteres, gleichzeitg stattfindentes Update verfälsct
- Welche Informationen sind nötig, um ein Rollback durchführen zu können? - Zuordnung jeder Operation zu einer Transaktion - Beginn der Transaktion (BOT) - Ende der Transaktion (EOT)
- Wofür steht ACID? Atomicity Consistency Isolation Durability
- Was heißt Atomicity? Eine Transaktion ist als atomare Einheit anzusehen. Sie wird entweder ganz oder gar nicht ausgeführt
- Was heißt Consistency? Die Konsistenz der Daten muss nach der Transkation weiterhin bestehent
- Was heißt "Isolation" Eine Transaktion muss bezüglich ihres Ergebnisses von anderen Transaktionen unabhängig sein
- Was heißt "Durability"? Die Auwirkungen einer erfolgreichen Transaktionen müssen dauerhaft sein und dürfen nicht verloren gehen
- Anzeige
- Wann tritt ein Konflikt im Schedule auf? Wenn mehrere Operationen auf den gleichen Datensatz zugreifen && diese Operationen zu verschiedenen Transaktionen gehören && mindestens eine Operation eine schreibende ist
- Wann ist ein Schedule seriell? Wenn alle Operationen einer Transaktion nacheinander ablaufen
- Was sind zwei Schedules konflikäquivalent? Wenn die Reihenfolge ihrer in Konflikt stehenden Operationen gleich sind
- Wie kann man einen Schedule auf Serialsiierbarkeit prüfen? 1. Zeichne für jede Operation auf einen Datensatz einen Knoten 2. Zeichne eine Kante für jeden Wechsel des Datensatzes --> Ergibt dies einen Kreis, ist der Schedule nicht serialisierbar
- Warum ist die Serialisierung von Schedules in der Praxis kaum möglich oder sinnvoll? - Verschränkungen von Operationen werden meist von außen vorgegeben - ständig neue Operationen hinzukommen - bei Feststellung der Nicht-Serialisierbarkeit alle beteiligten Transaktionen neu gestarted werden müssen
- Was kennzeichnet pessimistische Protokolle? Sie prüfen Transaktionen vor ihrer Ausführung auf Konflikte
- Was kennzeichnet optimistische Protokolle? Sie führen Transaktionen zunächst im Buffer aus und gucken dann, ob sich Probleme ergeben haben
- Wie ist das 2-Phase Sperrmodell aufgebaut? - Wachstumsphase --> es können ledigliche Sperren vergeben werden - Schrupfphase --> es können lediglich Sperren aufgehboen werden
- Was sind die Nachteile von Sperrverfahren? - Einschränkung der möglichen Verzahnungen --> möglicher Effizienzverlust - Hoher Overhead - Möglichkeit des Deadlocks
- Was ist ein Deadlock? Mehrer Transaktionen warten auf die Freigabe von von anderen Transaktionen erteilten Sperren
- Wie kann ein Deadlock vermieden werden? - Timeout bei Deadlock - restriktiveres Protokoll - Deadlock Erkennung
- Was ist das Zeitstempelverfahren? - jede neue Transkationen kriegt einen Start-Timestamp - Jeder Datensatz erhält einen Timestamp mit der letzten Schreib und der letzten Leseoperation - Wenn der Start-TS der Transaktion älter ist als der Änderungs-TS des Datensatzes, dann wird die Transaktion neugestartet