Проблемы конкурентного доступа

Оценить
(0 голоса)

Если не используется блокировка и, следовательно, не существует изоляции между транзакциями, то могут возникнуть следующие четыре проблемы:

♦ потеря обновлений;

♦ грязное чтение (обсуждавшееся в разд. «Блокировка» ранее);

♦ неповторяемое чтение;

♦ фантомные записи.

Проблема потери обновлений при одновременном доступе появляется, когда не существует изолированности одной транзакции от всех других транзакций. Это означает, что несколько транзакций могут читать одни и те же данные и изменять их. Изменения данных, выполненные всеми транзакциями за исключением транзакции, выполнившей эти изменения последней, будут потеряны.

Проблема неповторяемого чтения при одновременном доступе появляется, когда один процесс читает данные несколько раз, а другой процесс изменяет те же данные между двумя операциями чтения в первом процессе. По этой причине данные, прочитанные в различных операциях, будут разными.

Проблема фантомных записей при одновременном доступе похожа на проблему неповторяемого чтения, потому что две последовательные операции чтения могут получать различные значения, однако в данном случае смысл такого поведения заключается в различном количестве строк, прочитанных в первый раз и во второй раз. (Дополнительные строки, называемые фантомными, были добавлены другими транзакциями.)


Database Engine и уровни изоляции
READ UNCOMMITTED
READ COMMITTED
REPEATABLE READ
SERIALIZABLE

Добавить комментарий


Защитный код
Обновить

© 2021 serversql.ru. Все права защищены.