Автор работы: Пользователь скрыл имя, 20 Октября 2009 в 15:59, Не определен
Загайнов И.А. Проектирование информационных систем: Конспект мультимедиа лекций для студентов специальностей 050704 – Вычислительная техника и программное обеспечение, 050703 – Информационные системы.
5.16 Формат оператора.
Добавление
внешнего ключа производится оператором
ALTER TABLE Имя_Таблицы
ADD
FOREIGN KEY (<список столбцов внешнего ключа>)
REFERENCES <имя родительской таблицы>
[<список
столбцов родительской таблицы>
[ON DELETE (NO ACTION | CASCADE | SET DEFAULT | SET NULL}]
[ON UPDATE
{NO ACTION | CASCADE I SET DEFAULT | SET NULL}]
Параметры:
ON DELETE:
ON UPDATE
определяют
способы изменения подчиненных
записей дочерней таблицы при
удалении или изменении поля связи
в записи родительской таблицы.
Сколько внешних ключей необходимо для организации связи один к одному между двумя таблицами?
1. Один в дочерней таблице.
2. По
одному в дочерней и в
3. Два ключа в дочерней таблице.
4. Такая связь не допустима.
5. Для
организации такой связи
5.18 Реляционная диаграмма.
Отображение связей на реляционных диаграммах
Надписи на связях определяются именами оператора
[CONSTRAINT
<имя ссылочной целостности>]
5.19 Проверка зависимости.
Проверка
реляционной зависимости
INSERT,
UPDATE, DELETE
над родительской или дочерней таблицей.
Подготавливать
набор данных для операторов можно
с использованием окна свойств таблиц
со встроенным навигатором:
5.20 Генератор.
Механизм
генераторов предназначен для формирования
автоинкрементных значений целочисленных
полей.
CREATE GENERATOR G_EMP;
SET GENERATOR
G_EMP TO 100;
Такой генератор будет выдавать значения, начиная со 101 до максимально возможного целого числа, определяемого типом данных, заполняемого поля таблицы.
Функция
обращения к значению генератора
GEN_ID(Имя_Генератора,
Шаг_приращения);
Может
использоваться с операторами присвоения
значений
INSERT,
SET, UPDATE.
5.21 Вопрос.
Поле первичного ключа таблицы SQL – сервера, определенное типом данных INTEGER и заполняемое генератором БД, стартующим с 0, может обеспечить запись следующего количества уникальных значений:
A) 2 15.
B) 2 16.
C) 2 32.
D) 1024.
E) 32000.
5.22 Вопросы по 3 лабораторной.
Объяснить
необходимость обязательного
В чем заключается смысл ссылочной целостности данных в реляционной модели?
Операторы
определения ссылочной
SQL - оператор создания триггеров, алгоритмический язык проектирования триггеров.
Формат заголовка триггера, определение очередности срабатывания.
Формат определения старых и новых значений полей ассоциированной таблицы.
Определение тела триггера для заполнения автоинкрементного поля значением генератора.
Организация
каскадных воздействий в
Использование
механизма триггеров для
5.23 Задания СРСП.
1. Защита выбора механизма каскадного ведения данных.
2. Выбор
и защита сложного бизнес –
правила, реализуемого
3. Ответить
на контрольные вопросы
4. Провести отладку SQL – кода спроектированных триггеров;
5. Защитить отчет по третьей лабораторной работе;
6. Защитить отчет по разделу 3.3 курсовой работы [2];
7. Тест первого рубежного контроля.
8. Разработать
пример вопроса тестового
5.24 Задания СРС.
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.
5.25 Демонстрация.
Инсталляция среды IB Expert.
Задание параметров.
Создание и регистрация БД.
Создание объектов метаданных.
Просмотр свойств объектов.
Редактирование свойств объектов БД.
Создание
и использование генераторов.
6.1 Механизм триггеров.
Определение и назначение.
Формат оператора создания триггера.
Основные свойства конструкции.
Создание триггера в среде IB Expert.
Особенности создания триггеров в IB Console.
Примеры
использования.
6.2 Определение.
Триггер
- это процедура базы данных, написанная
на специальном алгоритмическом языке
и автоматически вызываемая SQL-сервером
при обновлении, удалении или добавлении
новой записи в таблицу БД. Триггеры всегда
ассоциируется с действием по отношению
к таблице. Запуск триггера связан с выполнением
одного из операторов управления данными
(INSERT, UPDATE, DELETE) к определенной записи таблицы. Любой
пользователь, имеющий определенные привилегии
на таблицу, автоматически имеет права
выполнять связанные с ней триггеры. Непосредственно
из программы к триггерам обратиться нельзя.
Нельзя и передавать им входные параметры
и получать от них значения выходных параметров.
6.3 Назначение.
Обычно триггера используются для:
6.4 Формат.
Формат оператора создания триггеров:
CREATE TRIGGER name FOR table
[ACTIVE | INACTIVE]
{BEFORE | AFTER}
{DELETE | INSERT | UPDATE}
[POSITION number]
AS
DECLARE VARIABLE variable <datatype>;
[DECLARE VARIABLE variable <datatype>; ...]
BEGIN
<тело_триггера>
END
6.5 Параметры.
Оператор [ACTIVE | INACTIVE] определяет активность триггера.
По отношению к событию {BEFORE | AFTER}, влекущему их вызов, триггеры различаются на: выполняемые до наступления события, и выполняемые после наступления события.
По событию изменения таблицы БД {DELETE | INSERT | UPDATE} триггеры различаются на вызываемые при: удалении записи, добавлении новой записи, изменении существующей записи.
Очередность выполнения [POSITION номер], в случае нескольких триггеров не одно действие и отношение к нему.
В предложении AS записывается тело в операторном блоке
BEGIN
<тело_триггера> END
6.6 Вопрос.
Сколько триггеров можно определить к одной таблице?
1. Один в дочерней таблице.
2. По
одному в дочерней и в
3. По
количеству действий над
4. Определяется спецификацией языка.
5. Определено
в конкретной реализации СУБД.
6.7 Тело триггера.
Программный код триггера (тело триггера) состоит из операторов процедурного языка, заключенного в блок
BEGIN
<compound_statement> [<compound_statement> ...]
END
Программный код состоит из команд специального процедурного языка, реализуемого в той или иной интерпретации конкретного SQL – сервера.
Часть
операторов будут рассмотрены в
следующих лекциях, посвященных
хранимым процедурам.
6.8 Операторы языка.
Алгоритмический язык триггеров и хранимых процедур
Объявление локальных переменных
DECLARE VARIABLE <имя переменной> <тип данных>;
Операторные скобки BEGIN ... END
Оператор присваивания
Имя переменной = выражение;
Оператор условного перехода IF... THEN ... ELSE
IF (<условие>) THEN
< оператор 1>
[ELSE <
оператор 2>]
6.9 Операторы языка.
Оператор выбора SELECT, отличие в предложении INTO
SELECT AVG(KOLVO), SUM(KOLVO) FROM RASHOD
WHERE TOVAR = :INTOVAR
INTO :AVG_KOLVO, :SUM_KOLVO;
Оператор FOR SELECT ... DO
FOR
<оператор SELECT>