Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
РЭУБД.doc
Скачиваний:
30
Добавлен:
20.12.2018
Размер:
239.62 Кб
Скачать
  1. Понятие и назначение хранимой процедуры, триггера и генератора. Команды по созданию, редактированию и удалению хранимой процедуры, триггера

Это тоже элемент базы данных, наряду с таблицами. Это специальная программа, написанная на так называемом языке процедур и триггеров и хранимая в качестве части базы данных. Поскольку мы создали хранимую процедуру, мы можем напрямую вызвать на выполнение из своего приложения. Хранимая процедура может получать входные параметры и возвращать определенные значения приложению. Язык процедур и триггеров включает в себя операторы SQL и некоторые расширения, такие как IF THEN ELSE, MHILE DO, FOR SELECT DO, исключения и обработку ошибок.

Преимущества использования хранимых процедур:

· Модульное оформление;

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

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

· Улучшение работы. И это – основное достоинство этого инструмента. Хранимые процедуры выполняются сервером, а не клиентом, что снижает загрузку сети и улучшает её работу, особенно в условиях клиентского доступа. Например, в системе управления кадрами, когда общая база данных хранится на сервере и работники отдела кадров и руководство предприятия пользуются ее услугами, у некоторого клиента возникает потребность получить аналитические данные в некотором разрезе. При наличии в БД хранимой процедуры, получающей требуемую аналитику, нет нужды клиенту вытаскивать к себе все необходимые данные для расчета, а достаточно вызвать на сервере соответствующую хранимую процедуру, передав ей необходимые параметры, и эта процедура, на месте исполнив всю работу и не перегоняя большое количества данных по сети клиенту, выдаст ему только результат в виде небольшой таблицы. Этой же процедурой может воспользоваться и другой клиент и получить для себя такую же аналитику.

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

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

Хранимая процедура создается с помощью оператора:

CREATE PROCEDURE <Имя процедуры>

[(<Список входных параметров>)]

[RETURNS(<Список выходных параметров>)]

AS <Тело процедуры>

Удаление хранимой процедуры выполняется с помощью оператора:

DROP PROCEDURE<имя процедуры>

Изменение процедуры производится оператором:

ALTER PROCEDURE <имя процедуры>

[(<Список входных параметров>)]

[RETURNS(<Список выходных параметров>)]

AS <Тело процедуры>

Создается генератор с помощью языка SQL-сервера:

CREATE GENERATOR <Имя генератора>;

Создание триггера выполняется оператором следующего формата:

CREATE TRIGGER <Имя триггера> FOR <Имя таблицы>

Изменение триггера

ALTER TRIGGER <Имя триггера> For <Имя таблицы>

Производится оператором:

DROP TRIGGER <имя триггера>

Программирование триггера аналогично программированию хранимой процедуры. Для доступа к значениям столбца используются конструкции формата:

OLD.<Имя столбца>

NEW.<Имя столбца>