Grundlagen der Datenbanken

Transaktion T1 hält eine gemeinsame Sperre (Shared Lock) auf einer Zeile und liest sie. T2 fordert eine gemeinsame Sperre und T3 eine exklusive Sperre (Exclusive Lock) auf dieselbe Zeile an. Was gilt für den Zeitraum, bis T1 ihre Sperre freigibt?

  1. AT2 erhält ihre Sperre sofort, T3 muss warten
  2. BT2 und T3 müssen beide warten
  3. CT2 und T3 erhalten ihre Sperren beide sofort
Antwort und Erläuterung anzeigen

Antwort: A. T2 erhält ihre Sperre sofort, T3 muss warten

Eine gemeinsame Sperre wird beim Lesen von Daten gesetzt; andere Transaktionen können auf dieselben Daten ebenfalls gemeinsame Sperren setzen und gleichzeitig lesen, aber keine exklusive Sperre zum Schreiben. Eine exklusive Sperre wird beim Ändern von Daten gesetzt, und solange sie besteht, können andere Transaktionen weder gemeinsame noch exklusive Sperren setzen. Hier sind die gemeinsame Sperre von T1 und die von T2 miteinander verträglich, T2 erhält ihre Sperre also sofort und kann lesen. Die exklusive Sperre von T3 ist mit der gemeinsamen Sperre von T1 unverträglich, daher muss T3 warten, bis T1 ihre Sperre freigibt (und da T2 ebenfalls eine gemeinsame Sperre hält, auch bis T2 ihre freigibt). Gleichzeitig laufende Transaktionen auf diese Weise mit Sperren voneinander abzuschirmen, nennt man Nebenläufigkeitskontrolle.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Grundlagen der Datenbanken

  1. Welche Aussage beschreibt das für die Nebenläufigkeitskontrolle von Transaktionen verwendete Zwei-Phasen-Sperrprotokoll (2PL) richtig?
  2. Transaktion T1 setzte eine exklusive Sperre auf Zeile A und forderte dann eine Sperre auf Zeile B an, während T2 eine exklusive Sperre auf Zeile B setzte und dann eine Sperre auf Zeile A anforderte, sodass keine von beiden weiterkommt. Was tut ein DBMS üblicherweise, wenn es diese Situation erkennt?
  3. Viele DBMS zeichnen bei einer Datenänderung die Änderung in einem Protokoll (Journal, Log) auf und schreiben dieses Protokoll vor der eigentlichen Datenbank auf nichtflüchtigen Speicher (WAL: Write-Ahead Logging). Was ist der Hauptgrund für dieses Vorgehen?
  4. Es gibt die Transaktionen T1 bis T5, und vor einem Ausfall wurde einmal ein Checkpoint gesetzt. T1 begann und wurde vor dem Checkpoint festgeschrieben. T2 und T3 begannen vor dem Checkpoint; T2 wurde nach dem Checkpoint, aber vor dem Ausfall festgeschrieben, T3 war zum Zeitpunkt des Ausfalls nicht festgeschrieben. T4 und T5 begannen nach dem Checkpoint; T4 wurde vor dem Ausfall festgeschrieben, T5 nicht. Für welche Transaktionen ist bei der Wiederherstellung nach dem Ausfall ein Rollforward anhand des Protokolls nötig?
  5. Auf der Spalte MitgliedsNr einer Mitgliedertabelle mit 1 Million Zeilen wurde ein B+-Baum-Index angelegt. Welche Kombination aus allgemein zu erwartender Wirkung und deren Preis ist richtig?