Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otvety_k_ekzamenu_TBD.doc
Скачиваний:
10
Добавлен:
23.09.2019
Размер:
958.98 Кб
Скачать

1.1.7.Алгоритмический язык хранимых процедур Формат объявления локальных переменных:

DECLARE VARIABLE <имя переменной> < тип данных > ;

Операторные скобки :Используются для указания границ составного оператора begin ... End ;

Оператор присваивания: Имя_переменной = выражение ;

Удаление ХП:

DROP PROCEDURE ИмяПроцедуры

  1. Основы sql. Понятие хранимой процедуры. Алгоритмический язык хранимых процедур. Формат оператора select в хп.

Оператор условия : IF ( < условие> ) THEN < оператор 1> [ELSE < оператор 2 > ]:

Оператор SELECT используется в ХП для выдачи единичной строки. К обычному формату SELECT в процедурный оператор добавлено предложение:

INTO :переменная [, переменная … ]

Пример: …

SELECT AVG(KOLVO), SUM(KOLVO)

FROM RASHOD

WHERE TOVAR = :IN_TOVAR

INTO :AVG_KOLVO, :SUM_KOLVO;

Оператор for select … do

FOR < оператор SELECT > DO < оператор > ;

Оператор SELECT используется в ХП в расширенном синтаксисе с INTO. Для каждой строки полученного результирующего НД выполняется оператор, следующий за словом DO. Этим оператором часто бывает SUSPEND, который приводит к возврату выходных параметров в вызывающее приложение.

1.1.8.Изменение хп

ALTER PROCEDURE ИмяПроцедур

[ ( входной_параметр тип_данных

[, входной_параметр тип_данных … ] ) ]

[ RETURNS

( выходной_параметр тип_данных

[ , выходной_параметр тип_данных … ] ) ]

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

36. Основы sql. Понятие хранимой процедуры. Алгоритмический язык хранимых процедур. Операторы if, while, exit, suspend. Оператор вызова хп.

Оператор WHILE … DO WHILE (<условие>) DO < оператор > ;

В цикле проверяется выполнение условия. Если истинно – выполняется оператор. Цикл продолжается пока условие не станет ложным.

Оператор EXIT инициирует прекращение выполнения процедуры и выход в вызывающее приложение.

CREATE PROCEDURE MAX_VALUE ( А INTEGER, B INTEGER )

RETURNS ( M_V INTEGER ) AS

DECLARE VARIABLE TMP INTEGER;

BEGIN

IF ( :A IS NULL OR :B IS NULL ) THEN EXIT;

IF ( :A > :B ) THEN M_V = :A ; ELSE M_V = :B ;

END

Оператор execute procedure Оператор вызова другой хранимой процедуры:

EXECUTE PROCEDURE имя [параметр [, параметр … ] ] ;

[ RETURNING_VALUES параметр [, параметр … ] ];

Оператор POST_EVENT Оператор применяется для посылки сервером клиентским приложениям сообщения о наступлении какой-либо ситуации, связанной с именем события. POST_EVENT “Имя события”;

После выполнения оператора наступает событие с указанным именем. Сервер БД уведомляет о наступлении этого события все активные приложения, зарегистрировавшие свой интерес к нему с помощью EVENT INIT.

Обмен событиями между сервером и приложениями может широко использоваться. Например, с его помощью можно создать клиентское приложение, которое будет видеть все изменения, вносимые в БД другими пользователями. Для этого нужно, чтобы в соответствующий момент возбуждалось заданное событие. Получив сообщение, программа-наблюдатель отображает внесенные изменения.

37. Понятие и особенности триггера. Использование триггеров для реализации каскадных воздействий.

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

По событию изменения триггеры различают на вызываемые при:

  • Добавлении новой записи

  • Изменении существующей записи

  • Удалении записи

По отношению к событию, влекущему их вызов, триггеры различаются на:

  • Выполняемые до наступления события

  • Выполняемы после наступления события

Особенности триггеров:

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

  • Нельзя передавать параметры и получать значения выходных параметров

  • Триггер всегда реализует действие

Преимущества использования триггеров:

  • Автоматическое обеспечение каскадных воздействий, выполняющихся на сервере.

  • Изменения в триггерах не влекут необходимости изменения клиентских приложений.

  • Обязательное выполнение бизнес-правил, реализованных с использованием триггеров для всех приложений работающих с БД.

  • Все изменения вносимые триггером выполняются в рамках одной транзакции. Как следствие, при откате транзакции откатываются также и все изменения, внесенные в БД триггерами.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]