Skip to content

Latest commit

 

History

History
56 lines (32 loc) · 3.39 KB

Практика №4 - Работа с транзакциями.md

File metadata and controls

56 lines (32 loc) · 3.39 KB

Практика №4 - Работа с транзакциями

Работы в рамках дисциплины:
Клиент-серверные системы управления базами данных
Предыдущая работа:
Практика №3 - Администрирование
Следующая работа:
Практика №5 - Работа с группами ролей и ролями
Полезная статья на тему транзакций, на основе которой была выполнена работа:
Уровни изоляции транзакций с примерами на PostgreSQL


Задание

В реализованную по выбору базу данных добавить 3 уникальные транзакции, одна из которых должна выводить ошибку любого уровня исключения(например, "грязное чтение" или фантомное чтение)

Ход работы

  1. Сделали 4 подключения и в каждом открыли по транзакции.

  1. В начальный момент всем транзакциям доступна изначальная версия данных.

  1. В первой транзакции обновили данные, но это обновление видно только ей, в остальных транзакциях обновление НЕ видно.

  1. Как только закрываем первую транзакцию, сразу обновления доступны остальным транзакциям.

  1. Обновление данных во второй транзакции блокирует другие изменения, например, в третьей транзакции.

  1. Несмотря на то, что третья транзакция ожидает закрытия второй, четвертая и вторая прекрасно функционируют.

  1. Закрытие второй транзакции приводит к разблокированию данных для изменения.

  1. До закрытия третьей транзакции, данные будут удалёнными только внутри третьей транзакции.

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