Лабораторная работа Разработка триггера и хранимой процедуры. Требования к программному обеспечению icon

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




Скачати 48.47 Kb.
НазваЛабораторная работа Разработка триггера и хранимой процедуры. Требования к программному обеспечению
Дата05.08.2012
Розмір48.47 Kb.
ТипЛабораторная работа

Лабораторная работа 5. Разработка триггера и хранимой процедуры.


Требования к программному обеспечению:


  1. Компьютер с установленным на нем приложением Borland SQL Explorer.

  2. Компьютер с установленный на нем СУБД MS SQL Server версии 7.0/2000/2003, и с установленной учебной базой CIS.

  3. СУБД MS SQL Server должна иметь запись о пользователе user (пароль-user) с привилегиями db_owner для всех объектов в рабочем пространстве CIS.


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

1. Триггеры


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

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

  • Поскольку триггер физически находится и выполняется на сервере, это снижает нагрузку сети при передаче возобновленных данных.

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

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

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


Синтаксис операторов, которые задают триггера, может варьироваться в зависимости от СУБД.


Приведем синтаксис оператора создания триггера, принятый в СУБД MS SQL Server v.6.0 и выше:


CREATE TRIGGER TriggerName ON TableName FOR Option

AS ,


где

TriggerName – имя триггера

TableName – имя таблицы, операции над которой (добавления, удаления, обновления) должны вызывать триггер

Option – одна из операций INSERT(добавление), DELETE (удаление), UPDATE (обновление)

TriggerBody – тело триггера.


Структура тела тригера такова:


BEGIN

[<определение локальных переменных>]

<операторы>

END


Определение локальных переменных и операторы в теле триггера задаются на процедурном языке, который также имеет некоторые отличия, в зависимости от СУБД. Этот процедурный язык применяется для написания как триггеров, так и хранимых процедур, и имеет операторы цикла, ветвления.


Оператор


DECLARE @variableName1 variableType1[, @variableName2 variableType2…]


задает локальную переменную variableName1 типа variableType1.


Пример 1.

DECLARE @ numrows int,

@errno int,

@errmsg varchar(255)


Инициализация локальной переменной выполняется с помощью оператора SELECT.


Пример 2.

SELECT @numrows = count(*)

FROM Tovar


В отличие от хранимых процедур, триггер имеет доступ к однозаписным таблицам: INSERTED (если обрабатывается случай добавления записи), и DELETED (если обрабатывается случай изъятия записи).


Пример 3.

SELECT @numrows = count(*)

FROM Storing, inserted

WHERE (Storing.nnum = inserted.nnum)

AND (Storing.num = inserted.num)


Этот фрагмент определяет, сколько в таблице Storing есть записей, где значения атрибутов nnum и num совпадает с значениями этих же атрибутов в записи, которая добавляется.


Пример 4.

Дана база данных такой структуры, как показано на рис. 1.





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


OperationDate, OperationType (“income” / ”sale”), TovarNNum, TovarName, Edizm, Amount, Price, TotalCost


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


CREATE TRIGGER tI_Insert ON Income FOR insert

AS

BEGIN

INSERT INTO OperationList (OperationDate, OperationType, TovarNNum, TovarName, Edizm, Amount, Price, TotalCost)

SELECT getdate(),”income”, inserted.nnum, Tovar.name, edizm, amount, iprice, amount*price

FROM Tovar, inserted

WHERE Tovar.nnum = inserted.nnum

END


Аналогичные триггеры можно написать и для таблицы отпуска товара со склада.
^

2. Хранимые процедуры


Хранимые процедуры – более общий вид программного пакета, чем триггер. Хранимая процедура является отдельным объектом базы данных, к ней можно обратиться напрямую (тогда как к триггеру – только выполняя обновления записей в таблице, к которой этот триггер приписан).


Приведем синтаксис оператора создания хранимой процедуры, принятый в СУБД MS SQL Server v.6.0 и выше:


CREATE TriggerName ON TableName FOR Option

AS

^

3. Условие лабораторной работы


  1. Очень часто важные данные при удалении копируются или переносятся в специальные архивные таблицы. Спланируйте структуру триггера на удаление записей из какой-то одной таблицы, созданной Вами в лабораторной работе №2, таким образом, чтобы записи после удаления не уничтожались, как обычно, а добавлялись в специальную таблицу – архив удаленных записей. Дайте этой специальной таблице имя вида:


имя_таблицы_для_которой_создается_архив_ARCHIVE


  1. Откройте CIS в приложении Borland SQL Explorer.

  2. Создайте с помощью запроса CREATE TABLE таблицу – архив с нужным именем.

  3. Создайте и выполните запрос на создание триггера, спланированного в п.1.

  4. В случае невыполнения запроса (это возможно, если при введении запроса были допущены синтаксические ошибки), исправьте ошибки.

  5. Проверьте работу триггера, предварительно занеся несколько записей в исходную таблицу.

  6. В том случае, если триггер отрабатывает неправильно, Вам придется изменить текст запроса на создание этого триггера и выполнить этот запрос заново. Перед этим используйте команду


DROP TRIGGER имя_триггера;


  1. Спланируйте и создайте хранимую процедуру такого вида: по введенной начальной и конечной дате нужно подсчитать количество записей в архивной таблице.

  2. При отладке хранимой процедуры выполняйте те же действия, что и при отладке триггера. Команда для удаления хранимой процедуры:


DROP PROC имя_процедуры;


  1. Пригласите преподавателя для просмотра результатов.

Схожі:

Лабораторная работа Разработка триггера и хранимой процедуры. Требования к программному обеспечению iconЛабораторная работа Разработка системы пользователей базы данных. Требования к программному обеспечению
Компьютер с установленный на нем субд ms sql server версии 0/2000/2003, и с установленной учебной базой cis
Лабораторная работа Разработка триггера и хранимой процедуры. Требования к программному обеспечению iconЛабораторная работа Знакомство с диаграммами расписаний проектов. Создание Gantt диаграммы расписания проекта. Требования к программному обеспечению
Лабораторная работа Знакомство с диаграммами расписаний проектов. Создание Gantt диаграммы расписания проекта
Лабораторная работа Разработка триггера и хранимой процедуры. Требования к программному обеспечению iconЛабораторная работа Знакомство с технологией структурного анализа и проектирования sadt, на примере case-системы bpwin Требования к программному обеспечению
Лабораторная работа Знакомство с технологией структурного анализа и проектирования sadt, на примере case-системы bpwin 0
Лабораторная работа Разработка триггера и хранимой процедуры. Требования к программному обеспечению iconЛабораторная работа Инструментальные средства Total Quality Management (tqm). Требования к программному обеспечению
Поэтому усилие, направленное на правильные 20 может решить 80 проблем. Двойные (плотные) диаграммы Парето могут использоваться, для...
Лабораторная работа Разработка триггера и хранимой процедуры. Требования к программному обеспечению iconЛабораторная работа Использование редактора запросов sql borland sql explorer(TM) для знакомства с основными объектами баз данных. Требования к программному обеспечению
...
Лабораторная работа Разработка триггера и хранимой процедуры. Требования к программному обеспечению iconЛабораторная работа Синхронизация idef0 и dfd диаграмм бизнес процесса предприятия со структурой реляционной базы данных, на примере case-систем bpwin/erwin Требования к программному обеспечению
Лабораторная работа Синхронизация idef0 и dfd диаграмм бизнес процесса предприятия со структурой реляционной базы данных, на примере...
Лабораторная работа Разработка триггера и хранимой процедуры. Требования к программному обеспечению iconЛабораторная работа Использование редактора запросов sql borland sql explorer(TM) для создания запросов к данным с использованием языка sql. Требования к программному обеспечению
Лабораторная работа Использование редактора запросов sql borland sql explorer(TM) для создания запросов к данным с использованием...
Лабораторная работа Разработка триггера и хранимой процедуры. Требования к программному обеспечению iconЛабораторная работа n 9 Работа с командами обработки строк
В общем случае цепочечные команды позволяют выполнять действия над блоками памяти
Лабораторная работа Разработка триггера и хранимой процедуры. Требования к программному обеспечению iconЛабораторная работа №1 «Работа с командным процессором Windows 2000»
Написать командный файл, выводящий на экран содержимое файлов указанных в качестве параметров этого файла
Лабораторная работа Разработка триггера и хранимой процедуры. Требования к программному обеспечению iconЛабораторная работа №1 «Работа с командным процессором Windows 2000»
Написать командный файл, выводящий на экран содержимое файлов указанных в качестве параметров этого файла
Додайте кнопку на своєму сайті:
Документи


База даних захищена авторським правом ©zavantag.com 2000-2013
При копіюванні матеріалу обов'язкове зазначення активного посилання відкритою для індексації.
звернутися до адміністрації
Документи