ЛАБОРАТОРНАЯ РАБОТА 14

ТРИГГЕРЫ И ПРОЦЕДУРЫ

Цель работы

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

Содержание работы и методические указания

к ее выполнению

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

При определении триггера задаются:

Синтаксис оператора Create trigger (в нотации СУБД Informix) для создания триггера приведен в Приложении 2.

При выполнении триггера выполняется оператор модификации данных либо вызывается хранимая процедура, предварительно созданная и помещенная в базу данных оператором Create procedure. Хранимая процедура в отличие от триггеров может выполнять достаточно сложный набор действий:

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

Последовательность выполнения лабораторной работы:

1. Ознакомиться со средствами разработки триггеров и хранимых процедур.

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

3. Проверить правильность работы триггеров и процедур, разработанных в п. 2.

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

5. Проверить правильность работы триггеров и процедур, разработанных в п. 4.

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

7. Проверить правильность работы процедур, разработанных в п. 6.

8. Оформить раздел отчета "Хранимые процедуры и триггеры", включив в него описание разработанных триггеров и хранимых процедур.

Контрольные вопросы

  1. Что вкладывается в понятие физической и логической независимости данных?
  2. Что вкладывается в понятие целостности данных?
  3. Как разделяются ограничения целостности по способам реализации?
  4. Как разделяются ограничения целостности по времени проверки?
  5. Как разделяются ограничения целостности по области действия?
  6. Что такое утверждение?
  7. Как создается хранимая процедура?
  8. Каковы основные конструкции языка SPL?
  9. Как создается триггер?
  10. Какие оператора языка SQL допустимы внутри триггера?
  11. Как реализуется механизм событий?
  12. Как указать действия, которые следует предпринять в случае ошибки?
  13. Как удалить хранимую процедуру, триггер из базы данных?
  14. С какими моделями транзакций связано исполнение триггеров?