Процедура генерации модели данных для СУБД InterBase Windows InterActive SQL

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



в была выбрана в диалоге TargetServer в поле Trigger Delimiter.

Подключение шаблона к таблицам. Вы можете выбрать шаблон и нажать на кнопку Attach, затем выбрать в выпадающем списке следующую таблицу и т.д.

Рис.

Однако, это можно сделать быстрее и удобнее, воспользовавшись просмотрщиком - браузером скриптов (рис. 2.11). Для его вызова нажмите кнопку Script Browser.

Помимо списка шаблонов и двух окон - с текстом шаблона и результатом его развертывания - здесь имеются два списка таблиц модели. В новом списке находятся таблицы, к которым подключен выбранный шаблон, остальные таблицы находятся в правом списке. Перемещение таблиц между списками выполняется при помощи кнопок Attach и Detach. Выберите и переместите в левый список таблицы модели, к которым должен быть подключен шаблон.

Выйдите из редактора таблиц Interbase Table Editor и выполните генерацию схемы базы данных. Убедитесь, что после SQL-запросов создания таблиц CREATE TABLE появились строки создания генераторов и триггеров.

2.3.2.3 Создание шаблонов для вставки, изменения и удаления записей

Хранимые процедуры. Для операций вставки, изменения и удаления записей можно использовать механизмы хранимых процедур. В отличие от триггера хранимая процедура не выполняется на какое-то событие, а вызывается из другой программы, которая передает на сервер имя хранимой процедуры. Хранимая процедура более гибка, чем триггер, поскольку может вызывать другие хранимые процедуры. Ей можно передавать параметры и она может возвращать параметры, значения и сообщения.

Для большинства таблиц модели, запрос на создание процедуры вставки записи имеет такой вид []:

SET TERM!!;

CREATE PROCEDURE ...);!!TERM;!!-выражение SET TERM устанавливает в качестве разделителя последовательность символов !!, точно также, как мы сделали это и для триггера, а по окончании процедуры возвращается старое значение разделителя - ";".

Имя процедуры удобно образовать из имени таблицы, добавив перед ним префикс "ins_". Параметрами процедуры будут все поля таблицы, кроме автоинкрементного поля, значение которого генерируется триггером.

К примеру, для таблицы PART_TYPE (тип оборудования) имеющей поле equip_name (наименование типа) процедура вставки создается следующим запросом:

SET TERM!!;PROCEDURE ins_part_type (equip_name CHAR (30))INTO PART_TYPE (equip_name)(:equip_name);!!TERM;!!

Точно также процедура изменения записи таблицы должна иметь вид:

SET TERM!!;

CREATE PROCEDURE ...)

AS SET

,

...

WHERE ...;

END!!

SET TERM;!!

Имя процедуры мы также создадим из имени таблицы, добавив к нему префикс "upd_".

В отличие от предыдущей процедуры параметры здесь должны содержать и ключевое поле, по которому ставится условие в запросе UPDATE. Для той же таблицы PART_TYPE (с ключевым полем equip_type_id) процедура выглядит так:

SET TERM!!;PROCEDURE upd_part_type (equip_type_id SMALLINT, equip_name CHAR (30))PART_TYPE SET_name = : equip_nameequip_type_id = : equip_type_id;!!

SET TERM;!!

Шаблоны хранимых процедур

Вставка записи

SET TERM MSTriggerDelim ;PROCEDURE ins_%Lower(%TableName)

( %ForEachAtt(%TableName,',') {

%If (%Not(%AttIsPK)) {%AttFieldName %AttDataType }}

) AS BEGININTO %TableName (%ForEachAtt( ) {

%ForEachAtt (%TableName,',') { %If (%Not(%AttIsPK)) {%AttFieldName (%ForEachAtt(%TableName,',') {

%If (%Not(%AttIsPK)) {:%AttFieldName}});

} ENDMSTriggerDelimTERM ; % DBMSTriggerDelim

Изменение записи

SET TERM MSTriggerDelim ;PROCEDURE upd_%Lower(%TableName)

( %ForEachAtt(%TableName,',') {%AttFieldName %AttDataType})BEGIN%TableName SET

%ForEachAtt (%TableName,',')

{%If(%Not(%AttIsPK)) {%AttFieldName=:%AttFieldName}}

%ForEachAtt(%TableName,'and')

{If (%AttIsPK) {%AttFieldName=:%AttFieldName}};MSTriggerDelimTERM ; MSTriggerDelim

Удаление записи

SET TERM MSTriggerDelim ;PROCEDURE del_%Lower(%TableName) (%ForEachAtt(%Tablename,',')

{%If(%AttIsPK){%AttFieldName %AttDataType}})BEGINFROM %TableName

%ForEachAtt(%Tablename,'and')

{%If(%AttIsPK) {%AttFieldName=:%AttFieldName}} ;MSTriggerDelim TERM ; MSTriggerDelim

Создание и подключение шаблонов к таблицам. ERwin не имеет встроенных шаблонов хранимых процедур, которые можно было бы использовать как основу при создании новой хранимой процедуры.

Рис.

Создание шаблонов и привязка их к таблицам выполняется в редакторе таблиц Table Editor. Вызовите редактор таблиц и перейдите на страницу Stored Procedure. Появится закладка Stored Procedure диалога Table Editor (рис. 2.12).

Список Attached SP Template содержит имена процедур, связанных с проектируемой таблицей. Список Unattached SP Template содержит имена процедур, которые могут быть связаны с таблицей. Кнопки служат для связывания и открепления процедуры от таблицы.

Перейдите в редактор шаблонов, нажав кнопку SP Template. Создайте три новых шаблона, назвав их "Вставка записи", "Изменение записи" и "Удаление записи". Введите тексты шаблонов, приведенных выше. Вернитесь в окно редактора таблиц и подключите вновь созданные шаблоны к соответствующим таблицам модели. Код шаблона показывается в окне SP Template, код процедуры - в окне SP Expansion.

3. Перенос структуры данных с одного сервера на другой

.1 Обратное проектирование

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

Рис.

Для выполнения обратного проектирования следует вы