BD-1st-2.4-lab9.tresc-1.1-Slajd13
Poziomy izolacji transakcji (1)
Poziomy izolacji transakcji określają, jaki stopień wzajemnego odseparowania równolegle wykonywanych transakcji ma zostać zastosowany w bazie danych. Standard ANSI SQL definiuje cztery poziomy izolacji transakcji. Anomalia „utracona modyfikacja” nie występuje w żadnym z poziomów izolacji.
Najniższym poziomem izolacji jest „odczyt danych niezatwierdzonych”, co oznacza, że zmiany, wprowadzone przez operacje w ramach aktywnej transakcji (jeszcze nie zatwierdzonej), są widoczne dla innych, równolegle realizowanych transakcji. W poziomie tym mogą wystąpić wszystkie omówione wcześniej anomalie (z wyjątkiem „utraconej modyfikacji”). Wyższy poziom, „odczyt danych zatwierdzonych” oznacza, że zmiany, wprowadzone przez operacje w ramach transakcji, są widoczne dla innych transakcji dopiero po zatwierdzeniu transakcji. Poziom ten eliminuje anomalię „brudnego odczytu”, dopuszczając występowanie „niepowtarzalnego odczytu” i „fantomów”. Kolejny poziom, „powtarzalny odczyt”, dodatkowo zapobiega anomalii „niepowtarzalnego odczytu”. W najwyższym poziomie o nazwie „uszeregowany”, nie występuje żadna z anomalii.
Należy mieć świadomość, że wraz ze wzrostem poziomu izolacji transakcji maleje stopień współbieżności. Największą współbieżność uzyskuje się dla poziomu „odczyt danych niezatwierdzonych”, jednak przy występowaniu anomalii, najmniejsza współbieżność to poziom „uszeregowany” jednak kosztem najniższej współbieżności. W praktyce rozsądnym kompromisem jest wybór poziomu „odczyt zatwierdzonych danych”.