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

6.2. Триггеры

Для каждой таблицы может быть назначена хранимая процедура без параметров, которая вызывается при выполнении оператора модификации этой таблицы (INSERT, UPDATE, DELETE). Такие хранимые процедуры получили название триггеров. Триггеры выполняются автоматически, независимо от того, что именно является причиной модификации данных - действия человека оператора или прикладной программы. "Усредненный" синтаксис оператора создания триггера:

CREATE TRIGGER <имя_триггера>

ON <имя_таблицы>

FOR { INSERT | UPDATE | DELETE }

[, INSERT | UPDATE | DELETE ] ...

AS <SQL_оператор>

Ключевое слово ON задает имя таблицы, для которой определяется триггер, ключевое слово FOR указывает, какая команда (команды) модификации данных активирует триггер. Операторы SQL после ключевого слова AS описывают действия, которые выполняет триггер, и условия выполнения этих действий. Здесь может быть перечислено любое число операторов SQL, вызовов хранимых процедур и т.д. Использование триггеров очень удобно для выполнения операций контроля ограничений целостности.

Упражнение 6.1. Хранимые процедуры и триггеры.

  1. Откройте файл 17-tutor.er1.

  2. Добавьте новую сущность Security (UpdateDate, OldName, UserUpdate) – все атрибуты ключевые. Эта сущность заполняется только в случае внесения изменений в сущность Customer.

  3. Перейдите на физический уровень. Измените сервер БД на InterBase (Server / Target Server). Вызовите редактор триггеров для таблицы Customer.

  4. Создайте новый триггер с именем SecurWrite на обработку события До внесения Изменений.

  5. Внесите SQL-скрипт в процедуру, описывающую триггер:

Insert into Security (OldName, UserUpdate, UpdateDate)

values(:Customer.CustomerName,User,SysDate); Проверьте, что при повторном вызове редактора триггеров отображается код созданного триггера.

  1. Создайте с помощью редактора хранимых процедур новую процедуру CountRecord для подсчета количества записей в таблице Customer.

  2. Введите в поле SP Template текст SQL следующего содержания:

Create procedure %TemplateName%TableName

(CNT out integer) is

begin

Select Count (*) into CNT from %TableName;

end %TemplateName%TableName;

8. Проверьте, что текст SQL составляется автоматически в окне SP Expansion.

Лабораторная работа №7.

Цель работы: Прямое проектирование (Forward engineering).

Процесс генерации физической схемы БД из логической модели данных называется прямым проектированием. При генерации физической схемы ERwin включает таблицы, колонки, первичные и внешние ключи, связи, представления, триггеры ссылочной целостности, хранимые процедуры, индексы, ограничения и другие возможности, доступные при определении таблиц в выбранной СУБД.

Физический уровень представления модели зависит от выбранного сервера СУБД. ERwin поддерживает практически все распространенные СУБД, всего более 20 реляционных и нереляционных СУБД. При смене СУБД ERwin предлагает автоматически преобразовать тип данных, связанный с каждым атрибутом, на ближайший, доступный для новой СУБД.

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

ERwin поддерживает правила валидации для колонок, а также значение, присваиваемое колонкам по умолчанию. Правило валидации задает список допустимых значений для конкретной колонки и/или правила проверки допустимых значений. Значение по умолчанию – значение, которое нужно ввести в колонку, если никакое другое значение не задано явным образом во время ввода данных. С каждой колонкой или доменом можно связать значение по умолчанию (если выбранная СУБД поддерживает домены).

Упражнение 7.1. Генерация схемы базы данных

методом прямого проектирования.

  1. Откройте файл 17-tutor.er1.

  2. Создайте файл базы данных с помощью СУБД Access. Закройте его.

  3. В ERwin выберите физический уровень представления. Выберите задачу Forward Engineer/Schema Generation… Проверьте настройки схемы по умолчанию. Выберите Generate…

  4. В окне Access Connection наберите admin в качестве имени пользователя, пароль не надо, файл с БД настройте на только что созданный. Если появилось окно не Access Connection, а другое, необходимо настроить сервер базы данных (Server / Target Server).

  5. После соединения (Connect) выполнится генерация схемы данных в БД.

  6. Откройте файл с БД. Проверьте наличие схемы данных, таблиц и запросов.

Лабораторная работа №8.

Цель работы: Обратное проектирование (Reverse engineering).

Обратное проектирование, то есть восстановление информационной модели по существующей базе данных, используется при выборе оптимальной платформы (rightsizing) для существующей настольной (desktop) базы данных или базы данных на mainframe, а также при расширении (или модификации) существующей структуры, которая была построена без необходимой сопроводительной документации. После завершения процесса восстановления модели ERwin автоматически "раскладывает" таблицы на диаграмме. Теперь можно выполнять модификации уже с использованием логической схемы - добавлять сущности, атрибуты, комментарии, связи и т.д. По завершении изменений одна команда - синхронизировать модель с базой данных - актуализирует все проведенные изменения. Построение модели может быть выполнено как на основании данных каталога базы данных, так и на основании пакета операторов SQL, с помощью которого была создана база данных.

Упражнение 8.1. Reverse Engineering – построение модели данных

на основе существующей базы данных.

  1. Создайте новую модель. Перейдите на физический уровень.

  2. Выберите из пункта меню Tasks подпункт Reverse Engineer. Сервер данных – Access 97. Настройте установки для преобразования объектов базы данных.

  3. В качестве источника данных выберите reverse.mdb из каталога Tutorial. UserName – Admin, пароль не требуется.

  4. Увеличьте полученную схему. Проверьте, что вместе с сущностями в схему данных вошли и запросы (представления).

Лабораторная работа №9.

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