Информационное обеспечение


ЛАБОРАТОРНАЯ РАБОТА №5 ТРИГГЕРЫ



бет18/56
Дата05.03.2023
өлшемі256,49 Kb.
#71567
түріПрактикум
1   ...   14   15   16   17   18   19   20   21   ...   56

ЛАБОРАТОРНАЯ РАБОТА №5 ТРИГГЕРЫ


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


Теоретические сведения


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


Можно выделить следующие группы триггеров:

    1. Триггеры DML применяются для проверки внесенных в таблицы изме- нений, которые запускаются на события: вставки, обновления, удаления дан- ных из таблиц.

    2. Триггеры DDL запускаются при выполнении DDL-инструкций, т. е. при создании, модификации, удалении таблиц или других объектов БД.

    3. Триггеры уровня базы данных отслеживают события, касающиеся работы самой базы данных, такие как ее останов, запуск, возникновение ошибок Oracle, а также реагируют на такие пользовательские события как logon и logoff.

    4. Триггеры INSTEAD OF – замещающие триггеры, запускаются непо- средственно перед выполнением вставки, обновления, удаления и определяют, какие операции необходимо выполнить вместо соответствующей операции. Триггеры INSTEAD OF управляют операциями над представлениями (view), но не над таблицами и позволяют преобразовывать необновляемые представления в редактируемые, задавая их поведение в коде триггера.

Триггеры DML. Триггеры DML отслеживают события и операции, произ- водимые над данными. Это наиболее распространенный вид триггеров. DML-триггер может запускаться:

  • до выполнения операции – триггер BEFORE – или после выполнения опе- рации – триггер AFTER. Триггеры BEFORE используются в случае, когда надо проверить возможность выполнения операции, определить значения полей;

  • один раз для всей инструкции SQL – триггер уровня инструкции – или отдельно для каждой изменяемой записи – триггер уровня записи или строчный триггер (FOR EACH ROW). В этом случае, например, при обновлении 100 строк, триггер будет запускаться и срабатывать 100 раз.

Для манипулирования данными в триггере доступны так называемые псев- дозаписи NEW и OLD, которые представляют собой структуры данных, анало- гичные типу RECORD – записи PL/SQL. Псевдозапись NEW содержит значе- ния полей после внесения изменений, OLD – значения полей до внесения изме- нений. Соответственно, псевдозапись NEW доступна в триггерах, обрабатыва-
ющих операции вставки и изменения, а OLD – изменения и удаления. При обра- щении к полям псевдозаписи в теле триггера всегда записывается двоеточие –
:OLD.JOB_ID. Псевдозаписи NEW, OLD в триггере никогда не объявляются, но название псевдозаписи можно изменять при создании триггера, например:

CREATE OR REPLACE TRIGGER update_job_history BEFORE INSERT OR UPDATE


OF job_id, department_id ON employees


Достарыңызбен бөлісу:
1   ...   14   15   16   17   18   19   20   21   ...   56




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет