Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы на СУБД.docx
Скачиваний:
9
Добавлен:
30.08.2019
Размер:
146.57 Кб
Скачать

5. Определение триггера в стандарте языка sql

Триггер – это откомпилированная SQL-процедура, исполнение которой обусловлено наступлением определенных событий внутри базы данных.

Триггеры – особый инструмент SQL-сервера, используемый для поддержания целостности данных.

Триггер представляет собой специальный тип процедур, запускаемых сервером автоматически при попытке изменения данных в таблицах, с которыми триггеры связаны. Каждый триггер привязывается к конкретной таблице. В случае обнаружения ошибки или нарушения целостности данных происходит отмена всех сделанных изменений.

С помощью триггеров достигаются следующие цели:

  • проверка корректности введенных данных и выполнение сложных (дополнительных) ограничений целостности данных (которые трудно, если вообще возможно, поддерживать с помощью ограничений целостности, установленных для таблицы);

  • выдача предупреждений (напоминающих о необходимости выполнения некоторых действий при обновлении таблицы, реализованном определенным образом);

  • накопление аудиторской информации (посредством фиксации сведений о внесенных изменениях и тех лицах, которые их выполнили);

  • поддержка репликации.

Недостатки использования триггеров:

  • сложность: при перемещении некоторых функций в базу данных усложняются задачи ее проектирования, реализации и администрирования;

  • скрытая функциональность: перенос части функций в базу данных и сохранение их в виде одного или нескольких триггеров может привести к скрытию от пользователя некоторых функциональных возможностей. (Хотя это в определенной степени упрощает его работу, но может стать причиной незапланированных, потенциально нежелательных побочных эффектов, поскольку в этом случае пользователь не в состоянии контролировать все процессы, происходящие в базе данных);

  • влияние на производительность: перед выполнением каждой команды по изменению состояния базы данных СУБД должна проверить триггерное условие с целью выяснения необходимости запуска триггера для этой команды.

Типы триггеров

Существует три типа триггеров:

  • INSERT TRIGGER – запускаются при попытке вставки данных с помощью команды INSERT.

  • UPDATE TRIGGER – запускаются при попытке изменения данных с помощью команды UPDATE.

  • DELETE TRIGGER – запускаются при попытке удаления данных с помощью команды DELETE.

6. Понятие хранимой процедуры

Хранимые процедуры это группа связанных между собой операторов SQL или функций, хранимых в откомпилированном виде. Использование хранимых процедур вместо отдельных операторов SQL дает пользователю следующие преимущества:

  • хранение в исполняемом формате (перед выполнением хранимой процедуры SQL Server генерирует для нее план исполнения, выполняет ее оптимизацию и компиляцию);

  • поддержка модульного программирования (позволяют разбивать большие задачи на самостоятельные, более мелкие и удобные в управлении части);

  • могут вызывать другие хранимые процедуры и функции;

  • могут быть вызваны из прикладных программ других типов;

  • выполняются быстрее, чем последовательность отдельных операторов;

  • уменьшает размер запроса.