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

16.Триггеры.

Структура:

CREATE TRIGGER имя_триггера For имя_таблицы

[Active| inActive]

Before | After

Update | Insert | Delete

Position номер_позиции // указывает порядок выполнения триггера (по умолчанию позиция «0») если с одной таблицы связаны несколько триггеров то позиция определяет очередность запуска триггеров.

As

Тело_триггера

Специальные контекстные переменные, которые используются только в триггерах:

OLD.имя_столбца // содержит старые значения столбца которые были до изменения данных

NEW.имя_столбца // новые значения столбца, новые значения данных

Пример:

CREATE TRIGGER Bef_Ins_Rashod For Rashod

Active

Before

Insert

Position 0

As

Begin NEW.ID=Gen_ID (Gen_Rashod_ID, 1);

End

Пример:

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

CREATE TRIGGER Af_Ins_Rashod For Rashod

Active After Insert Position 0

As

Begin

Update Tovar Set ostatok=ostatok – NEW.kolvo

Where Tovar.ID=NEW.NTovar ;

Лабораторная работа 9 задание 3

CREATE TRIGGER Af_Up_Prof For Prof

Active After Update Position 0

As

Begin

Update Uplan Set Uprof=New.ID Where UProf=Old.ID;

Update Stud set SProf=New.ID where SProf=OLD.ID;

End

17.Представленния (view).Генераторы.

View (представление) – это виртуальная таблица, созданная на основе инструкции select.

Созданное представление можно использовать в других инструкциях select как источник данных.

Пример:

CREATE VIEW STOIM_Rashod (Dat, Tovar, Stoim)

As

Select RDate, T.Name, R.kolvo*T.Zena

From Rashod R, Tovar T

Where R.NTovar = T.ID;

DROP VIEW Stoim_Rashod;

Представление будет обновляемым, если данные выбираются из одной таблицы и отсутствует группировка и агрегатные функции, и представление включает все поля таблицы, имеющие ограничения Not Null.

Генератор - это именованный счетчик возвращающий уникальное целочисленное значение. Используется генератор для автоматического формирования значения первичных ключей таблицы. В других СУБД вместо генератора используется специальный тип – автоинкрементное поле.

Присвоение генератора:

CREATE Generator Gen_ID_Tovar;

Set Generator Gen_ID_Tovar To значение;

Использование генератора:

Gen_ID (имя_генератора, прирощение)

(Gen_ID_Tovar , 1)

Пример:

Insert into Tovar (ID, Name, Zena)

Values (Gen_ID (Gen_IRTovar,1), ‘блокнот’, 10);

18.Транзакции их назначение и реализация

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

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

Целостное состояние – все ограничения, все правила бизнес логики выполнены.

Механизм транзакции обеспечивает их изолированность.

Механизм транзакции основан на принципе множества версий.

MGA (Multi Generation Architecture) – многоверсионная архитектура. Все изменения проводимые над конкретными записями проводится не над сомой записью а над её версией. В один момент в базе может существовать несколько версий одной записи. Для реализации этой архитектуры в СУБД существуют страницы учета транзакций. Каждая транзакция видит и работает только с одной версией данных.

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