Руководство по программному пакету ERwin

         

Использование хранимых процедур


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

Например, для фирмы проката видеопродукции Вы можете создать хранимую процедуру, которая будет автоматически выбирать все фильмы, срок аренды которых истек какого-то числа. Это число будет параметром, который передается процедуре в режиме run-time. Затем эта хранимая процедура может вызывать другую хранимую процедуру, вычисляющая пени за каждый задержанный фильм, исходя из типа фильма и правил (business rules).

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

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


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



Создание хранимой процедуры



Для того чтобы приступить к созданию хранимой процедуры, дайте команду '<DB> Table Property', а затем- команду каскадного меню 'Stored Procedure'. Вы войдете в редактор Table Property.

Редактор Table Property позволяет Вам просматривать все хранимые процедуры, физические характеристики и правила валидации, связанные с таблицей базы данных. Если Ваша СУБД поддерживает хранимые процедуры, то внизу редактора появляется закладка Stored Procedure, а также появляется лист связей хранимых процедур Stored Procedure Attachment Sheet. Если Ваша СУБД не поддерживает хранимые процедуры, то закладка Stored Procedure не появляется. См. документацию по Вашей СУБД о том, поддерживает ли она хранимые процедуры. Лист связей хранимых процедур - Stored Procedure Attachment Sheet редактора Table Property содержит информацию о том, какая таблица связана с каждой из сущностей ERwin и какие хранимые процедуры в настоящий момент связаны с каждой из сущностей и таблиц. В этом редакторе Вы можете просмотреть код шаблона каждой из хранимых процедур, а также связать хранимую процедуру с определенной сущностью или отсоединить ее от сущности.

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

Для того чтобы создать шаблон для новой процедуры, нажмите кнопку 'SP Template...' для входа в редактор Stored Procedure Template.





Работа в редакторе Stored Procedure Template



Редактор Stored Procedure Template позволяет Вам создавать, изменять или удалять хранимую процедуру.

Список 'Template Name', расположенный в верхней части редактора, содержит имена всех хранимых процедур, связанных с выбранной Вами сущностью.

Для того чтобы изменить существующую хранимую процедуру, щелкните по имени шаблона, который Вы хотите изменить, в списке 'Template Name'. Когда ERwin поккажет на экране код, щелкните по окну Template Code и измените коды, пользуясь встроенными макрокомандами и стандартными клавишами редактирования. Нажмите кнопку 'Update' для сохранения изменений.

Для того чтобы удалить ранее определенную процедуру, щелкните по имени удаляемого шаблона в списке 'Template Name', а затем нажмите кнопку 'Delete'.

Для того чтобы создать новую хранимую процедуру, нажмите кнопку 'New' и введите 'говорящее' имя, например 'sp_overdue' для хранимой процедуры, выбирающей все просроченные фильмы на сегодняшнее число. После этого установите курсор в окно Template Code и создайте код шаблона, пользуясь встроенными макрокомандами и клавишами редактирования. Заккончив создание кода шаблона, нажмите 'ОК' для выхода из текущего редактора в редактор Table Property, в котором Вы можете связать новый шаблон с одной или несколькими сущностями.




Содержание раздела