- •Лабораторная работа 1
- •Лабораторная работа №2 Создание базы данных
- •Работа в среде Microsoft sql server 2008
- •Создание базы данных
- •Создание таблиц, входящих в бд. Задание для их атрибутов типов данных и ограничений целостности, соответствующих смыслу таблиц.
- •Присвоение имен ограничениям
- •Проверка ограничивающих условий с использованием составных полей
- •Values (111,'Петров','Александр', ‘Иванович’, ‘1994-05-05’, 23, 3,5);
- •Values (101, 'Иванов', null, 200, 3, 'Москва','6/10/1979', 15);
- •3. Модификация структуры таблицы (добавление и удаление нового столбца, добавление ограничений, изменение типа данных, ограничений целостности)
- •Лабораторная работа №3 Команды манипулирования данными
- •Values (111, 'Иванов', ‘Александр’);
- •Лабораторная работа №4 Проектирование запросов
- •Лабораторная работа №5 Создание запросов
- •Проектирование представлений, хранимых процедур, триггеров
- •Проектирование представлений
- •Примеры триггеров
- •Лабораторная работа №7 Представления
- •Обновление данных в представлениях
- •Тип, Цена, Цена*0.05 from Товар Модифицирование представлений
- •Операции модификации в представлениях, маскирующих строки и столбцы
- •Агрегированные представления
- •Представления, основанные на нескольких таблицах
- •Лабораторная работа №8 Разработка хранимых процедур Хранимые процедуры
- •Создание, изменение и удаление хранимых процедур
- •Drop procedure {имя_процедуры} [,...N]; Выполнение хранимой процедуры
- •Лабораторная работа №9 Создание триггеров
- •Компоненты триггера
- •Типы триггеров
- •Создание триггеров
- •Преимущества использования триггеров:
- •Программирование триггеров
- •Примеры использования триггеров
- •Insert into Students (fio, Nomer_zachetki, id_Group, Stipendiya) values ('Ильин с.В.', '08вп131', 2, 1250);
- •17.6. Использование хранимых процедур в триггерах
- •Insert into Students (fio, Nomer_zachetki, id_Group, Stipendiya) values ('Макарь в.А.', '06вп118', 4, 1200);
Лабораторная работа №9 Создание триггеров
Триггеры – это предварительно определенное действие или последовательность действий, автоматически осуществляемых при выполнении операций обновления, добавления или удаления данных.
Исключительно важно в этом определении слово «автоматически». Ни пользователь, ни приложение не могут активизировать триггер, он выполняется автоматически, когда пользователь или приложение выполняют с базой данных определенные действия.
Триггер – это специальный вид хранимой процедуры. Триггеры обеспечивают проверку любых изменений на корректность, прежде чем эти изменения будут приняты.
Каждый триггер привязывается к конкретной таблице. Все производимые им модификации данных рассматриваются как одна транзакция. В случае обнаружения ошибки или нарушения целостности данных происходит откат этой транзакции. Тем самым внесение изменений запрещается. Отменяются также все изменения, уже сделанные триггером.
Создать триггер может только владелец базы данных. Это ограничение позволяет избежать случайного изменения структуры таблиц, способов связи с ними других объектов и т.п.
Компоненты триггера
Ограничения, для реализации которых создается триггер.
Событие, которое будет характеризовать возникновение ситуации, требующей проверки ограничений. Триггерные события чаще всего связаны с изменением состояния базы данных и состоят из вставки, удаления и обновления строк в таблице. События могут учитываться и дополнительные условия (например, добавление записи только с отрицательным значением).
Предусмотренное действие осуществляется за счет выполнения процедуры или последовательности процедур, с помощью которых реализуется логика, требуемая для реализации ограничений.
Триггер выполняется неявно в каждом случае возникновения триггерного события. Приведение его в действие называют запуском триггера. С помощью триггеров достигаются следующие цели:
проверка корректности введенных данных и выполнение сложных ограничений целостности данных, которые трудно, если вообще возможно, поддерживать с помощью ограничений целостности, установленных для таблицы;
выдача предупреждений, напоминающих о необходимости выполнения некоторых действий при обновлении таблицы, реализованном определенным образом.
Типы триггеров
Существует три типа триггеров:
Insert – определяет действия, которые будут выполняться после добавления новой записи в таблицу.
Update – определяет действия, которые будут выполняться после изменения записи таблицы.
Delete – определяет действия, которые будут выполняться после удаления записи из таблиц.
Часто в СУБД определяется большее число событий, с которыми можно связать триггеры. Например, до вставки, после вставки, до изменения, после изменения и т.д.
SQL Server поддерживает два вида триггеров: замещающие (INSTEAD OF) и завершающие (AFTER). Замещающие триггеры вызываются вместо обработки запроса на вставку, обновление или удаление, а завершающие – после обработки запроса. Всего имеется шесть возможных типов триггеров: замещающий триггер вставки, обновления и удаления и завершающий триггер вставки, обновления и удаления.
Для триггеров вставки и обновления в SQL Server новые значения столбца обрабатываемой таблицы хранятся в псевдотаблице под названием inserted. В случае обновления и удаления старые значения каждого столбца будут храниться в псевдотаблице с именем deleted.
