П. Г. Демидова А. В. Зафиевский А. А. Короткин А. Н. Лататуев Базы данных Учебное пособие


Download 1.32 Mb.
Pdf ko'rish
bet76/94
Sana15.06.2023
Hajmi1.32 Mb.
#1487605
1   ...   72   73   74   75   76   77   78   79   ...   94
Bog'liq
Базы данных

6.2. Проблемы параллелизма
при работе с данными 
6.2.1. «Потерянное» обновление 
Рассмотрим основные проблемы, возникающие при совмест-
ной работе транзакций с данными, условно предполагая, что СУБД 
никак не вмешивается в процесс выполнения этих транзакций. 
Традиционно принято выделять четыре таких проблемы
каждой из которых соответствуют свои методы разрешения. 
Первой из них является т. н. «потерянное» обновление (lost 
update). Для его иллюстрации изобразим последовательность вы-
полнения операторов SQL в двух параллельных задачах в виде 
следующей таблицы. 


125 
Момент времени 
Задача 1 
Задача 2 

UPDATE t1 SET a1 = 5

UPDATE t1 SET a1 = 2 

SELECT a1 FROM t1 
В результате оператор SELECT в первой задаче выдаст зна-
чение 2, а не ожидаемое значение 5, т. е. результат выполнения 
оператора UPDATE в первой задаче будет потерян. 
6.2.2. Преждевременное чтение 
Другой проблемой является преждевременное (незафиксиро-
ванное) чтение (dirty read), иллюстрируемое следующей таблицей. 
Момент времени 
Задача 1 
Задача 2 

UPDATE t1 SET a1 = 5 
2 COMMIT 

UPDATE t1 SET a1 = 2 

SELECT a1 FROM t1 
5 ROLLBACK 
В этом примере задача 2 прочитала значение a1 до того, как 
оно было зафиксировано, и в дальнейшем будет использовать 
ошибочное значение, равное 2, а не восстановленное значение 5. 
6.2.3. Неповторяющееся чтение 
Продемонстрируем теперь еще одну проблему, заключающу-
юся в различных результатах выборки данных в разные моменты 
времени (unrepeatable read). 
Момент времени 
Задача 1 
Задача 2 

UPDATE t1 SET a1 = 5
2 COMMIT 

SELECT a1 FROM t1 

UPDATE t1 SET a1 = 2
5 COMMIT 

SELECT a1 FROM t1 
В этом примере задача 2 читает только зафиксированные 
результаты, однако в разные моменты времени один и тот же 
запрос в задаче 2 дает разные результаты, т. е. с точки зрения 
этой задачи данные в базе данных являются несогласованными в 
том смысле, что нельзя определить, какие же из них являются 
корректными. 


126 

Download 1.32 Mb.

Do'stlaringiz bilan baham:
1   ...   72   73   74   75   76   77   78   79   ...   94




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling