Разделы презентаций


Заняття 9. Тригери

Тригер як вид збереженої процедуриТригер – це збережена процедура особливого типу, яку користувач не викликає особисто, а використання якої обумовлено настанням визначеної події у реляційній базі даних.Тригери застосовуються для забезпечення цілісності

Слайды и текст этой презентации

Слайд 1Заняття 9. Тригери

Заняття 9. Тригери

Слайд 2Тригер як вид збереженої процедури
Тригер – це збережена процедура особливого

типу, яку користувач не викликає особисто, а використання якої обумовлено

настанням визначеної події у реляційній базі даних.
Тригери застосовуються для забезпечення цілісності даних і реалізації складної бізнес-логіки.
Тригер запускається сервером автоматично при спробі зміни даних у таблиці, з якою він пов'язаний.
Всі здійснені ним модифікації даних розглядаються як виконані в транзакції, в якій виконано дію, що викликало спрацьовування тригера. Відповідно, у разі виявлення помилки або порушення цілісності даних може відбутися відкат цієї транзакції.
Створює тригер тільки власник бази даних. Це обмеження дозволяє уникнути випадкової зміни структури таблиць, способів зв'язку з ними інших об'єктів і т.д.
Не можна створювати тригери для представлень і тимчасових таблиць!
Тригер як вид збереженої процедуриТригер – це збережена процедура особливого типу, яку користувач не викликає особисто, а

Слайд 3Використання тригерів
автоматичне обчислення значень похідних стовпців;
запобігання виконанню недозволених транзакцій;
виконання складних

перевірок з метою захисту даних;
підтримка складних обмежень цілісності;
реєстрація подій, що

відбуваються в БД;
підтримка реплікації (синхронізації вмісту декількох копій);
збирання статистики щодо доступу до таблиць БД.
Використання тригерівавтоматичне обчислення значень похідних стовпців;запобігання виконанню недозволених транзакцій;виконання складних перевірок з метою захисту даних;підтримка складних обмежень

Слайд 4Загальний синтаксис створення тригера
CREATE
[DEFINER = { user | CURRENT_USER

}]
TRIGGER

FOR EACH ROW
<тіло тригера>

Час спрацювання тригера: { BEFORE | AFTER }

Подія тригера: { INSERT | UPDATE | DELETE }
Загальний синтаксис створення тригера CREATE[DEFINER = { user | CURRENT_USER }]TRIGGER FOR EACH ROWЧас спрацювання тригера: {

Слайд 5Приклад створення тригера
Приклад 1. Після видалення інформації про продавця встановити

значення NULL у полях snum таблиць Customers та Orders, які

відповідали його номеру:
CREATE TRIGGER Sal_dlt
AFTER DELETE ON Sellers
FOR EACH ROW BEGIN
UPDATE Customers SET snum = NULL
WHERE Sellers.snum = Customers.snum;
UPDATE Orders SET snum = NULL
WHERE Sellers.snum = Orders.snum;
END;

Приклад створення тригераПриклад 1. Після видалення інформації про продавця встановити значення NULL у полях snum таблиць Customers

Слайд 6Типи тригерів
Тригери DML. Їх виконання відбувається при виконанні для таблиці

будь-якого оператора мови маніпулювання даними (DML).
Тригери DDL. Спрацьовують у відповідь

на ряд подій мови визначення даних (DDL). Ці події насамперед відповідають інструкціям SQL CREATE, ALTER, DROP і деяким системним збереженим процедурам, які виконують схожі з DDL операції (не підтримуються в MySQL).
Тригери входу можуть спрацьовувати у відповідь на подію LOGON, що виникає при установці користувальницьких сеансів (не підтримуються в MySQL).
Типи тригерівТригери DML. Їх виконання відбувається при виконанні для таблиці будь-якого оператора мови маніпулювання даними (DML).Тригери DDL.

Слайд 7Тригери DML
Для створення тригера DML потрібен дозвіл ALTER на таблицю,

для якої створюється тригер.
Існує два параметри, що визначають поведінку тригерів:
AFTER.

Тригер виконується після успішного виконання команд, що його викликали. Якщо ж команди з якої-небудь причини не можуть бути успішно завершені, тригер не виконується. Слід зазначити, що зміни даних в результаті виконання запиту користувача і виконання тригера здійснюється в тілі однієї транзакції: якщо відбудеться відкат тригера, то будуть відхилені і зміни користувача.
BEFORE. Тригер викликається перед виконанням команд.
Тригери DMLДля створення тригера DML потрібен дозвіл ALTER на таблицю, для якої створюється тригер.Існує два параметри, що

Слайд 8Тригери розрізняють за типом команд, на які вони реагують:
INSERT TRIGGER

– запускаються при спробі додання даних за допомогою команди INSERT.
UPDATE

TRIGGER – запускаються при спробі зміни даних за допомогою команди UPDATE.
DELETE TRIGGER – запускаються при спробі видалення даних за допомогою команди DELETE.
При створенні тригера обов'язково має бути вказана одна із цих команд!
В MySQL допускається створення тригера, що реагує лише на одну команду.

Тригери розрізняють за типом команд, на які вони реагують:INSERT TRIGGER – запускаються при спробі додання даних за

Слайд 9Обмеження тригерів
Інструкція CREATE TRIGGER має бути першою інструкцією в пакеті

і може застосовуватися тільки до однієї таблиці.
Якщо для уточнення тригера

вказано ім'я схеми, то ім'я таблиці необхідно уточнити таким же чином.
Усередині тригера може бути використана будь-яка інструкція SET. Обраний параметр SET залишається в силі під час виконання тригера, після чого настройки повертаються в попередній стан.
Під час спрацьовування тригера результати повертаються користувачу, що викликав тригер так само, як і у випадку з збереженими процедурами. Щоб запобігти викликане спрацьовуванням тригера повернення результатів не слід включати інструкції SELECT, які повертають результат.
Обмеження тригерівІнструкція CREATE TRIGGER має бути першою інструкцією в пакеті і може застосовуватися тільки до однієї таблиці.Якщо

Слайд 10Видалення тригера
Для видалення тригера існує команда DROP TRIGGER.
В MySQL не

можливо модифікувати створений тригер! Для цього його необхідно видалити і

створити знову.
Видалення тригераДля видалення тригера існує команда DROP TRIGGER.В MySQL не можливо модифікувати створений тригер! Для цього його

Слайд 11Недоліки використання тригерів
складність: при переміщенні деяких функцій в базу даних

ускладнюються завдання її проектування, реалізації та адміністрування;
прихована функціональність: перенесення частини

функцій в базу даних і збереження їх у вигляді одного або декількох тригерів іноді призводить до приховування від користувача деяких функціональних можливостей. Хоча це певною мірою спрощує його роботу, але, на жаль, може стати причиною незапланованих, потенційно небажаних і шкідливих побічних ефектів, оскільки в цьому випадку користувач не в змозі контролювати всі процеси, що відбуваються в базі даних;
вплив на продуктивність: перед виконанням кожної команди по зміні стану бази даних СУБД повинна перевірити тригерну умову з метою з'ясування необхідності запуску тригера для цієї команди. Виконання подібних обчислень позначається на загальній продуктивності СУБД, а в моменти пікового навантаження її зниження може стати особливо помітним. Очевидно, що при зростанні кількості тригерів збільшуються і накладні витрати, пов'язані з такими операціями.
Недоліки використання тригерівскладність: при переміщенні деяких функцій в базу даних ускладнюються завдання її проектування, реалізації та адміністрування;прихована

Слайд 12Завдання 1. Написати тригери для власної бази даних
Створити 1 нову

таблицю із 3 полями (ідентифікатор, дата та інформація про модифікацію).
Для

однієї із таблиць бази даних написати 3 AFTER-тригери для кожного типу команд, які після виконання цих команд будуть робити запис у попередню створену таблицю про дату виконання команди та її зміст.
Написати 1 BEFORE-тригер для будь-якої таблиці бази даних, який перед оновленням або доданням даних у цю таблицю буде перевіряти їх відповідність певній умові.
Завдання 1. Написати тригери для власної бази данихСтворити 1 нову таблицю із 3 полями (ідентифікатор, дата та

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика