Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
IZ_SAPR.doc
Скачиваний:
3
Добавлен:
04.09.2019
Размер:
427.01 Кб
Скачать

Визначення заголовку тригера

Заголовок тригера має формат

… TRIGGER Ім’яТригера FOR Ім’яТаблиці

[ACTIVE | INACTIVE]

{BEFORE | AFTER}

{DELETE | INSERT | UPDATE}

[POSITION номер]

  • ACTIVE | INACTIVE – вказує, чи є тригер активним чи ні. Можна визначити тригер “про запас”, встановивши для нього INACTIVE. В подальшому можна перевизначити тригер як активний. За умовчанням діє ACTIVE.

  • BEFORE | AFTER – вказує, чи буде виконуватись тригер до (BEFORE), чи після (AFTER) запам’ятовування змін в БД.

  • DELETE | INSERT | UPDATE – вказує операцію над таблицею бази даних, при виконанні якої спрацьовує тригер.

  • POSITION номер – вказує, яким за рахунком буде виконуватись тригер у випадку наявності групи тригерів, що мають однакові характеристики операції та час (до, після операції) виклику тригера. Значення номеру задається числом в діапазоні 0..32767. Тригери з меншими номерами виконуються раніше.

Забезпечення каскадних дій

Якщо між двома чи більше таблицями БД встановлені відношення посилкової цілісності (відношення “один-до-багатьох”, “один-до-одного”), при зміні стовпця зв’язку в батьківській таблиці повинно бути змінене значення стовпця зв’язку у записах відповідних дочірніх таблиць. Такий вплив на дочірню таблицю має назву каскадного оновлення. Якщо в батьківській таблиці видалений запис, повинні бути видалені всі пов’язані з ним записи в дочірній таблиці. Такий вплив на дочірню таблицю має назву каскадного видалення.

Для реалізації автоматичного виконання каскадних оновлень та змін необхідно, по-перше, видалити посилкові цілісності, що блокують такі зміни у визначенні БД і, по-друге, визначити самі тригери для батьківської таблиці.

Використання генераторів

Генератором називається програма, яка зберігається на сервері БД і яка повертає унікальні значення даних.

Для створення генератора застосовується оператор

CREATE GENERATOR ім’я_генератора;

Для генератора необхідно встановити стартове значення за допомогою оператора

SET GENERATOR ім’я_генератора TO стартове_значення;

Стартове_значення повинно бути цілочисельним.

Для одержання унікального значення до генератора можна звернутися за допомогою функції

GEN_ID (ім’я_генератора, крок);

Приклад: Робота з тригерами та генераторами.

  1. Створити тригер, що вилучає значення у таблиці STUDENT, якщо в таблиці GRUPA вилучені відповідні значення GTITLE (рис. 6.11.).

Лабораторна робота № 7 Використання транзакцій, захист бази даних

Мета: Вивчення основ роботи з транзакціями та організація захисту бази даних.

Завдання:

  • внести зміни в БД використовуючи транзакцій;

  • розробити декілька рівнів ізоляції транзакцій;

  • визначити для двох користувачів БД різні привілеї (читання та запису) для різних таблиць.

Зміст звіту:

  • опис виконання основних дій за допомогою транзакцій;

  • опис основних рівнів ізоляції транзакцій, що використані в роботі;

  • лістинги розроблених транзакцій та їх аналіз;

  • опис привілеїв користувачів;

  • лістінги програм по реалізації привілеїв користувачів;

  • висновки по роботі.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]