SQL transaktsioonid

Транзакция — это последовательность операций над базой данных, которая выполняется как единое целое. Она обеспечивает целостность данных и гарантирует, что все операции внутри транзакции будут выполнены полностью или не выполнены вовсе.

SQL SERVER

Создана таблица T, в которую добавлены три строки со значениями 'first', 'second', 'third'. Выполнен SELECT, чтобы отобразить содержимое таблицы.

Начата транзакция, добавлена строка 'fourth' с id = 4. Затем выполнен ROLLBACK, чтобы отменить добавление.

После отката строка с id = 4 отсутствует, таблица снова содержит только три исходные записи.

Начата новая транзакция, выполнено удаление всех строк, где id > 1. В результате осталась только строка с id = 1.

В рамках транзакции обновлены значения si для всех строк на 3, затем выполнен ROLLBACK, и значения si вернулись к NULL.

Продемонстрированы основные возможности SQL-транзакций: создание таблицы и данных, выполнение изменений внутри транзакции, откат изменений с помощью ROLLBACK, а также повторное использование транзакций для удаления и обновления данных. Все действия сопровождались проверкой результата через SELECT, что наглядно показало работу транзакций и их влияние на содержимое таблицы.

XAMPP

Создана база данных transactiontargv24 и таблица T с полями id, s, si. Добавлены три строки с данными 'first', 'second', 'third'. Выполнен SELECT *, чтобы убедиться, что таблица заполнена корректно.

Начата транзакция (START TRANSACTION), в таблицу добавлена строка ('4', 'fourth'). Выполнен SELECT * FROM T — строка отображается, но изменения пока не зафиксированы.

Выполнена команда ROLLBACK, после чего снова проверено содержимое таблицы: строка 'fourth' исчезла, данные откатились к состоянию до транзакции.

Отключён автокоммит: SET AUTOCOMMIT=0;
Начата транзакция, удалена строка с id = 3, затем выполнен COMMIT — удаление сохранено в базе.

Выполнен START TRANSACTION и создан SAVEPOINT test1;
Содержимое таблицы проверено — отображаются только строки с id = 1 и id = 2.

выполнен запрос UPDATE t SET si = 2;, который установил значение si = 2 для всех строк в таблице.

Создан SAVEPOINT SP2, затем обновлено поле si до значения 5.
После просмотра результата выполнен ROLLBACK TO SAVEPOINT SP2, что откатило изменения.

Значения поля si вернулись к предыдущему состоянию (например, 2), подтверждая, что откат к точке сохранения сработал корректно.

В ходе работы была создана база данных transactiontargv24 и таблица T с полями id, s и si. В таблицу были добавлены тестовые строки. Далее на практике отработаны основные принципы работы с транзакциями:

  • Использование команд START TRANSACTION, COMMIT, ROLLBACK для управления сохранением и откатом изменений.
  • Выполнение операций вставки, удаления и обновления данных с последующей фиксацией (COMMIT) или отменой (ROLLBACK) результата.
  • Работа с точками сохранения (SAVEPOINT) и частичным откатом (ROLLBACK TO SAVEPOINT), что позволяет более гибко управлять изменениями в транзакции.
  • Визуальное подтверждение результатов через SELECT, что позволило наглядно убедиться в эффективности транзакционного управления.

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