Автор работы: Пользователь скрыл имя, 20 Октября 2009 в 15:59, Не определен
Загайнов И.А. Проектирование информационных систем: Конспект мультимедиа лекций для студентов специальностей 050704 – Вычислительная техника и программное обеспечение, 050703 – Информационные системы.
DO
< оператор>;
Оператор
SUSPEND , возврат значений в вызываемую
процедуру.
6.10 Операторы языка.
Оператор
WHILE ... DO
WHILE
(<условие>) DO <оператор>
Оператор
EXIT
Оператор POST _EVENT
POST_EVENT
"Имя события";
Оператор EXECUTE PROCEDURE
EXECUTE PROCEDURE имя
[параметр [, параметр ]]
[RETURNING_VALUES
параметр [, параметр ...]];
6.11 Операторы OLD и NEW.
Оператор
версии значения OLD и NEW изменяемого поля
(контекстные переменные), позволяют обрушатся
к старому (хранящемуся в поле) значению
и к новому, пришедшему в операторе. Например,
при каскадном изменении связанных таблиц
используется следующая конструкция:
IF (OLD.ПoлeCвязиPoдитeля <> NEW.ПолеСвязиРодителя)
THEN UPDATE ДочерняяТаблица
SET ПолеСвязиДочернейТаблицы = NEW.ПолеСвязиРодителя
WHERE ПолеСвязиДочернейТаблицы
= OLD.ПoлeCвязиPoдитeля;
при изменении
столбца связи в родительской
таблице будет изменено значение
столбца связи у записей
6.12 Терминатор.
Для работы в IB Console необходимо переопределять терминатор (символ, завершающий оператор программного кода).
Выполняется
оператором:
SET TERM !! ;
CREATE TRIGGER . . .
. . .
END !!
SET TERM
; !!
После
кода триггера, значение терминатора
возвращается в предыдущее. Последний
оператор END тела триггера должен заканчиваться
знаком терминатора !!
6.13 Создание в Expert.
Функция «Новый триггер», контекстного меню.
6.14 Параметры.
Имя триггера.
Ассоциированная таблица.
Порядок, по умолчанию 0.
Тип действия.
Операторы
тела.
6.15 Изменение триггера.
Изменить
существующий триггер можно при
помощи оператора
ALTER TRIGGER ИмяТриггера FOR ИмяТаблицы
[ACTIVE | INACTIVE]
{BEFORE | AFTER)
{DELETE | INSERT | UPDATE}
[POSITION
номер] AS <тело триггера>
Имя триггера
должно совпадать с именем существующего
триггера базы данных.
6.16 Удаление триггера.
Для удаления
триггера следует воспользоваться
оператором
DROP
TRIGGER ИмяТриггера
Триггеры,
используемые для активных транзакций,
не могут быть удалены, пока транзакция
не завершена.
6.17 Примеры.
Для таблицы CREATE TABLE "NE1"("a1" INTEGER NOT NULL primary key,
"a2" CHAR(10), "a3" VARCHAR(10))
Создадим генератор: CREATE GENERATOR G1
Создаем триггер:
CREATE TRIGGER TR1 FOR "NE1"
ACTIVE BEFORE INSERT POSITION 0
AS begin
NEW."a1"= GEN_ID(g1,1);
End
Проверяем работу генератора.
insert into ne1( "a2", "a3") values ('aa','фф') или по всем полям
insert into
ne1 values (1,'aa','фф')
6.18 Предустановленные значения.
Ведение архива изменений БД, предусматривает задание пользователя, сделавшего изменения и времени, когда совершалось изменение.
Для определения этих параметров на сервере определены специальные переменные:
"NOW"
и USER
Для фиксирования значений таблицы архива должны содержать соответствующие поля:
DAT_IZM TIMESTAMP,
USER_NAME
CHAR(15),
Значение
текущей даты имеет универсальный
формат для любого типа поля, например
DATE или TIME.
6.19 Вопросы по 3 лабораторной.
Объяснить
необходимость обязательного
В чем заключается смысл ссылочной целостности данных в реляционной модели.
Операторы определения ссылочной целостности данных, каскадного обновления и удаления.
SQL - оператор создания триггеров, алгоритмический язык проектирования триггеров.
Формат заголовка триггера, определение очередности срабатывания.
Формат определения старых и новых значений полей ассоциированной таблицы.
Определение тела триггера для заполнения автоинкрементного поля значением генератора.
Организация
каскадных воздействий в
Использование
механизма триггеров для
6.20 Задания СРСП.
1. Защита выбора механизма каскадного ведения данных.
2. Выбор
и защита сложного бизнес –
правила, реализуемого
3. Ответить
на контрольные вопросы
4. Провести отладку SQL – кода спроектированных триггеров;
5. Защитить отчет по третьей лабораторной работе;
6. Защитить отчет по разделу 3.3 курсовой работы [2];
7. Тест первого рубежного контроля.
8. Разработать
пример вопроса тестового
6.21 Задания СРС.
1. Изучить
методические указания к
2. Ответить на примеры тестовых заданий к третьему модулю [1];
3. Изучить SQL - код триггеров, используемых в учебной БД (FONEBOOK.GDB);
4. Проектирование и использование генераторов;
5. Изучение системы помощи (HELP), утилиты InteractivSQL, операторы: CREATE TRIGGER, ALTER TRIGGER, DROP TRIGGER, CREATE GENERATOR, SET GENERATOR, INSERT, UPDATA, DELETE;
6. Изучить конспект 5,6 лекций [3];
7. Среда
управления SQL – сервера - IBExpress.
6.22 Демонстрация.
Создание триггера в среде IB Console.
Создание триггера заполнения автоинкрементного поля.
Оператор INSERT в таблицу с автоинкрементным полем.
Демонстрация изменения триггера.
Примеры реализации сложных бизнес правил.
Пробное
тестирование.
6.23 Правила электронного тестирования.
1. Можно
пропустить (не заполнять ячейку)
несколько (2-3) вопроса для обсуждения
на апелляции, нельзя
2. Если Вы не успели ответить на вопрос, но у Вас осталось время, можно в присутствии преподавателя вернуться к пропущенному вопросу, для проставления ответа.
3. При
тестировании нельзя
4. Для
перехода вперед, не дожидаясь
срабатывания таймера
5. Ответы
проставляются сразу в лист
ответов без промежуточной
6.24
Тренировочный тест, 10 вопросов.
Ответы
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
7.1 Механизм хранимых процедур (Stored Procedures).
Определение и назначение.
Формат оператора создания объекта.
Преимущества использования.
Алгоритмический язык.
Проектирование в среде IBExpert.
Примеры реализации.
Вызов хранимых процедур в приложении.
Компоненты Delphi для работы с хранимыми процедурами.
IBStoredProc – вызов ХП действия.
IBQuery – вызов ХП выбора.
Совместимость переменных SQL – сервера и среды разработки Delphi.
Тренировочный
тест к рубежному контролю.
7.2 Определение.
Хранимая процедура (Stored procedures) - это модуль, написанный на процедурном языке и хранящийся в базе данных как метаданные.
Хранимые
процедуры, в отличие от триггеров,
вызываются из приложений клиента, могут
получать значения входных параметров
и передавать данные в приложение.
7.3 Типы процедур.
Процедуры выбора могут возвращать более одного значения. В приложении имя хранимой процедуры выбора подставляется в оператор SELECT вместо имени таблицы или просмотра.
Процедуры действия возвращают одно значение или вообще могут не возвращать данных и используются для реализации каких-либо действий.
Хранимым
процедурам можно передавать данные
и получать обратно значения параметров,
измененные в соответствии с алгоритмами
работы хранимых процедур.
7.4 Преимущества.
Преимущества использования хранимых процедур: