русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Шановні українці! Матеріал був перекладений з російської мови. Тому можуть бути незначні помикли...

Тригери об'єктів баз даних

Забезпечення цілісності даних має вирішальне значення для підтримки точності та узгодженості бази даних. Тригери являють собою особливий вид збережених процедур, прив'язаних до таблиць і поданнями і автоматично які спрацьовують при додавання, видалення або змінення даних. Перш ніж реалізовувати тригер, слід з ’ ясувати, чи не можна отримати аналогічні результати з використанням обмежень. Тригери застосовуються в наступних випадках:

  1. якщо потрібно реалізувати складні обмеження на дані;
  2. якщо необхідно каскадне зміна через пов'язані таблиці в базі даних;
  3. якщо база даних денормализована і потрібно спосіб автоматизованого оновлення надлишкових (дублюючих) даних в декількох таблицях;
  4. якщо потрібно висновок користувацьких повідомлень, журналювання проведених користувачем операцій з даними або складна обробка помилок.

Для створення тригера використовується конструкція наступного виду:

CREATE TRIGGER {ім'я тригера}
ON {ім'я таблиці}
FOR {тип події для обробки}
AS
{текст тригера}

При створенні тригера слід задати тип події, що викликає його спрацьовування. Типів події три: INSERT, UPDATE, DELETE. Один і той же тригер може спрацьовувати на один, два або три події. Конструкція AS і наступні за нею команди мови SQL визначають завдання, яке буде виконувати тригер.

При спрацьовуванні тригера на події INSERT, UPDATE або DELETE створюється одна або дві псевдотаблицы (також відомих як логічні таблиці). Існує два типи логічних таблиць: INSERTED і DELETED. INSERTED створюється в результаті події додавання або оновлення даних. У ній знаходиться набір доданих або змінених записів. DELETED створюється в результаті видалення або відновлення даних.

У разі видалення даних в ній знаходяться видалені записи, а у разі оновлення даних в ній знаходяться оновлені запису в тому стані, в якому вони були до операції оновлення. Для визначення того, значення якого поля записів було змінено при оновленні даних, використовується конструкція IF UPDATE({ім'я поля}). UPDATE({ім'я поля}) повертає TRUE, якщо поле було змінено, і FALSE інакше. Необхідно звернути увагу на той факт, що при виконанні тригера таблиця, для якої був створений тригер, вже містить додані і змінені записи і не містить видалені записи.

Для скасування додавання, видалення або зміни даних в триггере необхідно викликати оператор відкату транзакції ROLLBACK TRAN.

Переглядів: 3606

Повернутися в зміст:Введення в розробку розподілених інформаційних систем




Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн