4.25M
Категория: Базы данныхБазы данных

Команды TCL в SQL. Примеры использования

1.

Команды TCL в SQL.
Примеры
использования.
Выполнили:
Жакаев Даулет Канатович
Ершов Максим Михайлович

2.

Структура
презентации
TCL - что это?
Основные команды TCL
Команда COMMIT
Команда ROLLBACK
Команда SAVEPOINT
Примеры реального применения TCL
Лучшие практики и рекомендации
Заключение

3.

TCL - что это?
TCL (Transaction Control Language) – это
часть SQL, которая используется для
управления транзакциями в базе данных.
Транзакция – это последовательность
операций с базой данных, которая должна
быть выполнена целиком; если какая-либо
часть транзакции не удается выполнить, то
вся транзакция отменяется.

4.

Роль TCL в управлении транзакциями:
Обеспечение Целостности Данных: TCL помогает в поддержании
целостности данных, гарантируя, что либо все операции в транзакции будут
успешно выполнены, либо ни одна.
Управление Последовательностью Операций: TCL позволяет
контролировать порядок выполнения операций в базе данных, что особенно
важно в многопользовательских системах и сложных бизнес-процессах.
Обработка Ошибок и Восстановление: В случае ошибок или сбоев TCL
предоставляет механизмы для отмены или восстановления данных до
стабильного состояния.

5.

Основные команды TCL
1.
2.
3.
COMMIT - используется для
применения всех изменений, сделанных в
текущей транзакции.
ROLLBACK - отменяет все изменения,
сделанные в текущей транзакции.
SAVEPOINT - создает точки в
транзакции, к которым можно.

6.

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

7.

COMMIT
Сценарий: Предположим, что вы управляете базой
данных интернет-магазина, и вам нужно обновить
количество товаров на складе после продажи.
SQL Код:
·
·
·
·
·
·
BEGIN TRANSACTION;
-- Предположим, что продано 5 единиц товара с
ID 100
UPDATE Inventory SET quantity = quantity - 5
WHERE product_id = 100;
-- Подтверждаем, что обновление успешно
COMMIT;

8.

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

9.

ROLLBACK
Сценарий: Возьмем пример банковской системы, где необходимо
перевести средства с одного счета на другой.
SQL Код:
·
·
·
·
·
·
·
·
·
·
·
·
·
BEGIN TRANSACTION;
-- Попытка перевести средства
UPDATE Accounts SET balance = balance - 1000 WHERE account_id
= 123;
UPDATE Accounts SET balance = balance + 1000 WHERE account_id
= 456;
-- Проверка условия (например, наличия достаточного баланса)
IF (SELECT balance FROM Accounts WHERE account_id = 123) < 0
THEN
ROLLBACK;
ELSE
COMMIT;
END IF;

10.

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

11.

SAVEPOINT
Сценарий: Рассмотрим сценарий в базе данных интернетмагазина, где необходимо обновить информацию о продукте и
цене, но при ошибке в обновлении цены, изменения информации о
продукте должны сохраниться.
SQL Код:
· BEGIN TRANSACTION;
·
· -- Обновление информации о продукте
· UPDATE Products SET description = 'New description'
WHERE id = 101;
· SAVEPOINT ProductUpdated;
·
· -- Обновление цены продукта
· UPDATE Products SET price = price * 1.1 WHERE id =
101;
·
· -- Предположим, здесь произошла ошибка
· ROLLBACK TO SAVEPOINT ProductUpdated;
·
· COMMIT;

12.

Примеры реального применения TCL
Финансовые Транзакции в Банке
Сценарий: Банковские переводы между счетами.
Применение TCL: Во время перевода денежных
средств с одного счета на другой, используются
команды BEGIN TRANSACTION, COMMIT, и ROLLBACK для
обеспечения точности и безопасности транзакции.
Если средства снимаются с одного счета, но по
какой-то причине не зачисляются на другой, вся
операция отменяется (ROLLBACK), предотвращая
некорректное изменение балансов.
·
·
BEGIN TRANSACTION;
UPDATE Accounts SET balance = balance
- 1000 WHERE account_id = 5672;
· UPDATE Accounts SET balance = balance
+ 1000 WHERE account_id = 1632;
·
· IF (SELECT balance FROM Accounts
WHERE account_id = 5672) < 0
· THEN
·
ROLLBACK;
· ELSE
·
COMMIT;
· END IF;

13.

Примеры реального применения TCL
Управление Персональными
Данными
Сценарий: Обновление персональных
данных клиента в базе данных.
Применение TCL: При изменении
персональных данных клиента, таких как
адрес или контактная информация, важно,
чтобы все изменения были выполнены
полностью и без ошибок. Использование
COMMIT гарантирует, что все обновления
применяются одновременно, а ROLLBACK
используется для отмены изменений в
случае ошибок.
BEGIN TRANSACTION;
SAVEPOINT UserSet;
UPDATE users SET name = 0 WHERE user_id = 120;
IF TYPE( SELECT name FROM users WHERE user_id =
120 ) != text
THEN
ROLLBACK TO SAVEPOINT UserSet;
ELSE
COMMIT;
END IF;

14.

Практики и
рекомендации
Реализация Механизмов Обработки
Ошибок: Включайте проверки и
механизмы
обработки
ошибок
в
транзакции
для
предотвращения
нежелательных изменений и потери
данных.
Тестирование и Отладка: Регулярно
тестируйте транзакции на предмет
ошибок и отладки, чтобы убедиться в их
корректности.

15.

Заключение
Мы углубились в мир SQL, изучив команды
группы TCL, такие как COMMIT, ROLLBACK, и
SAVEPOINT, их роль и применение в различных
бизнес-сценариях.
Мы обсудили, как эти команды помогают
обеспечивать целостность данных, управлять
транзакциями и предотвращать потерю данных в
случае ошибок или сбоев.

16.

Спасибо за внимание!
English     Русский Правила