Главная > Системы искусственного интеллекта
НАПИШУ ВСЁ ЧТО ЗАДАЛИ
СЕКРЕТНЫЙ БОТ В ТЕЛЕГЕ
<< Предыдущий параграф Следующий параграф >>
Пред.
След.
Макеты страниц

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

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

ДЛЯ СТУДЕНТОВ И ШКОЛЬНИКОВ ЕСТЬ
ZADANIA.TO

10.3. Триггеры

Современные базы данных позволяют указывать и выполнять над базой данных действия с помощью рассмотренных операторов реляционной алгебры или их аналогов в языке SQL в зависимости от свершения таких изменений в базе данных, как создание, удаление или модификация таблиц. Эти изменения обычно называют событиями. Описание действий осуществляется с помощью специальных правил, не очень удачно называемых триггерами. События, приводящие к выполнению правил, называют обычно триггерными событиями. В настоящем параграфе рассмотрим концепцию триггеров, поскольку они могут быть использованы для реализации вывода в дедуктивных базах данных. Триггеры не входят в определение понятия базы данных. Они воспринимаются и выполняются системой управления базой данных. Синтаксически триггер определяется следующим образом:

Каждый триггер определяется по отношению к таблице базы данных. Событиями являются введение данных в таблицу, удаление данных из таблицы и обновление значения в определенных столбцах таблицы. Совершение событий дает возможность выполнить действия, указываемые в спецификации триггера. Это выполнение может произойти, но может и не произойти. Все зависит от условия, предшествующего действию в спецификации действия. Режим выполнения указывает, будет ли действие выполняться отдельно для каждой строки таблицы или для таблицы в целом. В списке триггеров с большим приоритетом задаются триггеры, приоритет выполнения которых выше, чем у данного. Список триггеров с меньшим приоритетом указывает триггеры, приоритет выполнения которых ниже, чем у данного. Если сразу несколько триггеров с одинаковым приоритетом могут выполняться, то система управления базой данных выполняет один из них в произвольном порядке.

Пример. База данных некоторого предприятия содержит две таблицы форматов

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

Сумма, которую может потратить каждый исполнитель, не должна превосходить сумму его бюджета.

Заказы посылаются поставщику по электронной почте.

Если сумма заказа превышает 1000 руб., то исполнитель должен получить разрешение на ее расходование от вышестоящего начальника.

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

менее Если это так, то статус исполнителя по данному изделию устанавливается разрешающим закупку. В противном случае выполняется другой триггер, в результате чего по электронной почте посылается запрос начальнику исполнителя на разрешение закупки, который в своем ответе устанавливает соответствующий статус исполнителя. Триггер, реализующий второе правило, выполняется, когда статус исполнителя является разрешающим.

При использовании триггеров требуется решение двух главных вопросов.

Любое ли изменение в любой базе данных приводит к конечному числу шагов выполнения триггеров?

Является ли выполнение триггеров детерминированным?

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

1
Оглавление
email@scask.ru