Создание новой хранимой процедуры

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

[{@имя_параметра тип_данных }

AS

BEGIN

SELECT <необходимый_текст_запроса>

END

GO

Удаление хранимой процедуры

DROP PROCEDURE {имя_процедуры}

Выполнение хранимой процедуры

EXEC <имя_процедуры> [@имя_параметра=]{значение}

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

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

Триггеры позволяют решать различные задачи:

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

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

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

· поддержка репликации;

· расчет промежуточных результатов и других вычисляемых значений.

Создание триггеров

CREATE TRIGGER < имя_триггера >

ON < имя_таблицы >

AS

BEGIN

{ [ DELETE] [,] [ INSERT] [,] [ UPDATE] }

<тело_триггера>

END

Удаление триггера

DROP TRIGGER {имя_триггера}

Классы триггеров

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

· INSTEAD OF.Триггер вызывается вместо выполнения команд. INSTEAD OF-триггер может быть определен как для таблицы, так и для просмотра.

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

· INSERT TRIGGER – запускаются при попытке вставки данных с помощью команды INSERT. Команда INSERT – в таблице inserted содержатся все строки, которые пользователь пытается вставить в таблицу; в таблице deleted не будет ни одной строки; после завершения триггера все строки из таблицы inserted переместятся в исходную таблицу.

· UPDATE TRIGGER – запускаются при попытке изменения данных с помощью команды UPDATE. Команда UPDATE – при ее выполнении в таблице deleted находятся старые значения строк, которые будут удалены при успешном завершении триггера. Новые значения строк содержатся в таблице inserted. Эти строки добавятся в исходную таблицу после успешного выполнения триггера.

· DELETE TRIGGER – запускаются при попытке удаления данных с помощью команды DELETE. Команда DELETE – в таблице deleted будут содержаться все строки, которые пользователь попытается удалить; триггер может проверить каждую строку и определить, разрешено ли ее удаление; в таблице inserted не окажется ни одной строки.

Особенности архитектуры «клиент-сервер»

Архитектура клиент-сервер основана на распределении функций между двумя типами независимых и автономных процессов: серверами и клиентами.

Основные правила архитектуры клиент-сервер:

■ независимость от оборудования. Требует, чтобы процессы клиента, сервера и ППО могли выполняться на различных аппаратных платформах (IBM, DEC, Apple и др.) без какого-либо изменения функциональных возможностей;

■ открытый доступ к сервисам. Все клиенты в системе должны иметь неограниченный доступ ко всем сервисам, предоставляемым внутри сети. И эти сервисы не должны зависеть от расположения клиента или сервера;

■ распределение процессов (автономность процессов, максимальное использование локальных ресурсов, масштабируемость и гибкость, способность к взаимодействию и интегрируемость)

■ стандартизация. Все правила клиент-серверной архитектуры должны быть основаны на стандартах.

Основной принцип технологии клиент-сервер заключается в разделении функций приложения на 4 группы:

1. Функции ввода и отображения данных — презентационная логика.

2. Прикладные функции, определяющие основные алгоритмы решения задач приложения и характерные для данной предметной области (например, для банковской системы — открытие счета, перевод денег с одного счета на другой и т.д.) — бизнес-логика.

3. Фундаментальные функции хранения и управления информационными ресурсами (базами данных, файловыми системами и т.д.).

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

Поэтому, в любом приложении выделяются следующие компоненты:

· компонент представления данных (функции 1-й группы);

· прикладной компонент (функции 2-й группы);

· компонент управления ресурсом (функции 3-ей группы и протокол их взаимодействия).

Наши рекомендации