Изоляция (системы баз данных)

Оглавление1 Изоляция (системы баз данных)1.1 Основы изоляции транзакций1.2 Грязное чтение1.3 Неповторяемое чтение1.4 Фантомное чтение1.5 Стратегии предотвращения неповторяемых чтений и фантомных […]

Изоляция (системы баз данных)

  • Основы изоляции транзакций

    • Изоляция транзакций предотвращает несогласованность данных между транзакциями. 
    • Существуют четыре уровня изоляции: READ UNCOMMITTED, READ COMMITTED, REPEATABLE READ, SERIALIZABLE. 
  • Грязное чтение

    • Происходит, когда транзакция читает данные, которые были изменены другой транзакцией. 
    • На уровне READ UNCOMMITTED транзакция может получить обновленные данные. 
    • На уровнях READ COMMITTED, REPEATABLE READ и SERIALIZABLE транзакция получает исходные данные. 
  • Неповторяемое чтение

    • Происходит, когда транзакция дважды читает одни и те же данные, и между чтениями происходит обновление. 
    • На уровнях READ UNCOMMITTED и READ COMMITTED транзакция получает обновленные данные. 
    • На уровнях REPEATABLE READ и SERIALIZABLE транзакция получает исходные данные. 
  • Фантомное чтение

    • Происходит, когда транзакция дважды читает данные, и между чтениями вставляются или удаляются строки. 
    • На уровнях READ UNCOMMITTED, READ COMMITTED и REPEATABLE READ транзакция получает новый набор данных. 
    • На уровне SERIALIZABLE транзакция получает исходный набор данных. 
  • Стратегии предотвращения неповторяемых чтений и фантомных чтений

    • Управление параллелизмом на основе блокировок: транзакция фиксируется после фиксации или отката предыдущей транзакции. 
    • Многовариантное управление параллелизмом: транзакция фиксируется немедленно, но может возникнуть конфликт фиксации. 
  • Уровни изоляции

    • Сериализуемый: самый высокий уровень изоляции, требует снятия блокировок в конце транзакции. 
    • Повторяемое чтение: сохраняет блокировки чтения и записи до конца транзакции, но не управляет блокировкой диапазона. 
    • Чтение зафиксировано: сохраняет блокировки записи до конца транзакции, но снимает блокировки чтения. 
    • Чтение незафиксированным: самый низкий уровень изоляции, допускает “грязное” чтение. 
  • Уровень изоляции по умолчанию

    • Уровень изоляции по умолчанию в разных СУБД варьируется. 
    • Большинство баз данных позволяют пользователю устанавливать любой уровень изоляции. 
  • Критика определений изоляции ANSI SQL

    • Определения уровней изоляции ANSI SQL подвергаются критике за двусмысленность и неточность. 
  • Сравнение уровней изоляции с явлениями чтения

    • Сериализуемая аномалия не тождественна сериализуемому уровню изоляции. 

Полный текст статьи:

Изоляция (системы баз данных) — Википедия

Оставьте комментарий

Прокрутить вверх