Работы в рамках дисциплины:
Клиент-серверные системы управления базами данных
Предыдущая работа:
Практика №3 - Администрирование
Следующая работа:
Практика №5 - Работа с группами ролей и ролями
Полезная статья на тему транзакций, на основе которой была выполнена работа:
Уровни изоляции транзакций с примерами на PostgreSQL
В реализованную по выбору базу данных добавить 3 уникальные транзакции, одна из которых должна выводить ошибку любого уровня исключения(например, "грязное чтение" или фантомное чтение)
- Сделали 4 подключения и в каждом открыли по транзакции.
- В начальный момент всем транзакциям доступна изначальная версия данных.
- В первой транзакции обновили данные, но это обновление видно только ей, в остальных транзакциях обновление НЕ видно.
- Как только закрываем первую транзакцию, сразу обновления доступны остальным транзакциям.
- Обновление данных во второй транзакции блокирует другие изменения, например, в третьей транзакции.
- Несмотря на то, что третья транзакция ожидает закрытия второй, четвертая и вторая прекрасно функционируют.
- Закрытие второй транзакции приводит к разблокированию данных для изменения.
- До закрытия третьей транзакции, данные будут удалёнными только внутри третьей транзакции.
- Закрытие третьей транзакции, как следствие возникает фантомное чтение, т. е. транзакция повторно выполняет запрос, возвращающий набор строк для этого же условия, и обнаруживает, что набор строк, удовлетворяющих условию, изменился из-за транзакции, завершившейся за это время.