Grundlagen der Datenbanken
Welche Antwort nennt richtig die Phänomene, die unter dem im SQL-Standard definierten Isolationslevel READ COMMITTED auftreten können?
- AWeder Dirty Reads noch Non-repeatable Reads noch Phantom Reads können auftreten
- BDirty Reads können nicht auftreten, Non-repeatable Reads und Phantom Reads aber schon
- CDirty Reads und Non-repeatable Reads können nicht auftreten, Phantom Reads aber schon
Antwort und Erläuterung anzeigen
Antwort: B. Dirty Reads können nicht auftreten, Non-repeatable Reads und Phantom Reads aber schon
Der SQL-Standard definiert vier Isolationslevel, geordnet danach, wie wenige Phänomene sie verhindern: READ UNCOMMITTED, READ COMMITTED, REPEATABLE READ und SERIALIZABLE. Unter READ UNCOMMITTED können alle drei Phänomene auftreten. READ COMMITTED liest nur festgeschriebene Daten und verhindert so Dirty Reads, doch da jedes Lesen den in diesem Moment festgeschriebenen Wert sieht, können Non-repeatable Reads und Phantom Reads auftreten. REPEATABLE READ verhindert zusätzlich Non-repeatable Reads, Phantom Reads können aber weiterhin auftreten. SERIALIZABLE verhindert alle drei und garantiert dasselbe Ergebnis wie die Ausführung der Transaktionen nacheinander in irgendeiner Reihenfolge. Je höher das Isolationslevel, desto mehr Wartezeiten auf Sperren und Wiederholungen gibt es und desto weniger kann gleichzeitig verarbeitet werden; das Level wird daher passend zur Anwendung gewählt. In realen DBMS können das Standard-Isolationslevel und die auf jedem Level tatsächlich verhinderten Phänomene stärker sein als die Mindestanforderungen des Standards.