Informix magazine №3’98
Моделирование данных в ERwin 3.5 для СУБД INFORMIX
Сергей Маклаков
Анатолий Корегин
Современная технология разработки информационных систем подразумевает
наличие стадии проектирования данных. Реализация такой технологии
требует среды проектирования и разработки, которая бы позволяла постоянно
улучшать модель приложения и сокращать усилия, необходимые для получения
готового решения из модели. Одним из наиболее эффективных инструментов,
которые дают возможность документировать проект и генерировать
схему базы без необходимости глубокого знания DDL (языка определения данных)
и SQL (структурного языка запросов) является ERwin 3.5 фирмы Logic Works.
ERwin интегрируется с ведущими средствами разработки клиентской части и
генерирует схему БД для всех ведущих СУБД, в том числе для INFORMIX версий
5.x, 6.x, 7.x, 9.x.
Рассмотрим основную функциональность ERwin 3.5.
Создание модели
Для создания моделей данных в ERwin можно использовать две нотации: IDEF1X
и IE (Information Engineering). Первым этапом проектирования данных является
создания независимой от конкретной СУБД логической модели. Палитра
инструментов облегчает создание сущностей и атрибутов, и позволяет
определять различные типы связей. Создание модели сводится просто к выбору
соответствующих символов на палитре и добавлению их на рабочее пространство.
Дополнительная информация по каждому объекту вводится посредством семейства
редакторов. Как только две сущности связываются между собой связью, первичный
ключ (ПК) автоматически перемещается из родительской сущности в дочернюю.
При этом учитывается тип связи: по идентифицирующей связи ПК попадает в
число ключевых атрибутов, а по неидентифицирующей связи - в число неключевых
атрибутов дочерней сущности. Полное описание сущностей, атрибутов и связей
(ER- диаграмма) можно дополнить описанием альтернативных и инверсионных
ключей.
После создания логической модели данных ERwin конвертирует ее в зависящую
от конкретной, предварительно выбранной СУБД физическую. При этом автоматически
определяются типы данных, преобразуются связи «многие ко многим» и иерархии
наследования (категории).
Другой способ создания модели - процесс обратного проектирования
существующей базы данных. Модифицированная модель может быть затем загружена
обратно в БД. Эта способность связи с БД в двух направлениях - важная особенность
ERwin. Аналогичная процедура возможна и в отношении тех данных, которые
переносятся в среду разработки. Могут быть выявлены отличия реальных данных
и первоначальной модели, а затем и устранены в ходе проведения синхронизации.
При этом проектировщик сам определяет направление синхронизации.
Помимо большинства ведущих наиболее популярных реляционных СУБД,
ERwin поддерживает настольные системы: Access, FoxPro, dBase, Clipper,
Paradox. Такая функциональность является мощным инструментом для облегчения
перевода информационной системы от файл-серверной к клиент-серверной архитектуре.
Разработчик может выполнить процесс обратного проектирования
файл-серверной или настольной базы данных, автоматически преобразовать
ее, например, в модель для INFORMIX, отредактировать ее, если это
необходимо вручную и, наконец, сгенерировать системный каталог реляционной
СУБД. Переключение на другой сервер в ERwin – это просто выбор
«радио-кнопки», после чего автоматически производится настройка на
новую платформу.
Средства отображения
ERwin обладает весьма мощными средствами представления и отображения модели
данных с разной степенью детализации показываемой информации.
Модель данных может быть представлена в нескольких вариантах:
-
на уровне пиктограмм двух типов – больших и малых
-
на уровне имен сущностей
-
на уровне описаний сущностей
-
на уровне первичных ключей
-
на уровне всех атрибутов.
Все характеристики отображения модели могут подвергаться воздействию со
стороны пользователя: цвет, шрифт, размер сущностей. Есть возможности масштабирования
изображения и сохранения одновременно нескольких вариантов отображения
(Stored Display - сохраняемые отображения) для повышения степени наглядности
и удобства работы. Изменения, сделанные в модели, автоматически отображаются
на каждом сохраняемом отображении.
ER-модели могут быть очень большими, с их ростом проблемой становится
навигация - доступ к нужному фрагменту. Для работы с громоздкими моделями
ERwin содержит инструмент «предметных областей» (subject area).
Предметная область представляет собой часть общей модели, подсхему,
с которой можно производить такие же операции, что и со всей моделью. Все
изменения, сделанные в предметной области, автоматически отображаются на
общей модели.
Генерация схемы БД
После завершения проектирования модели и наполнения ее «физической» информацией,
модель может быть либо перенесена в среду целевой СУБД-сервера, либо может
быть сгенерирован соответствующий скрипт на DDL.
При генерации схемы БД проектировщик может принять решение о том, что
именно должно быть учтено в ходе этого процесса. Помимо стандартных объектов
БД, таких как таблицы, индексы, процедуры и триггеры могут быть сгенерированы
специфические для INFORMIX физические объекты (INFORMIX DBSPASE)
Индексы
Кроме первичных и внешних ключей ERwin поддерживает альтернативные и инверсные
ключи. Альтернативные ключи - уникальные, они определяются для повышения
эффективности работы приложения с данными. Инверсные ключи служат для доступа
к группе записей. ERwin позволяет автоматически получить индексы в среде
целевой СУБД: на основе первичных, внешних, альтернативных ключей и инверсных
ключей. Разработчик может управлять этим процессом и определить, какие
именно индексы ему нужны. ERWin в диалоге INFORMIX Index Editor позволяет
описать специфические для INFORMIX свойства индексов.
Ссылочная целостность, триггеры, хранимые процедуры
При выборе INFORMIX в качестве целевого сервера можно установить правила
обеспечения ссылочной целостности, которые будут обеспечиваться по умолчанию.
Затем эти установки могут быть изменены.
Для поддержки целостности БД могут быть также созданы триггеры и хранимые
процедуры. ERwin обеспечивает разнообразный инструментарий для создания
триггеров: шаблоны, специальную библиотеку макросов. Макросы могут существенно
ускорить создание триггеров, т.к. содержат наиболее часто используемые
данные и конструкции. По умолчанию ERwin генерирует по стандартному
шаблону триггеры, дублирующие ссылочную целостность сервера. Разработчик
может вручную отредактировать шаблон и установить более сложные бизнес-правила
обработки данных.
Ниже приведен стандартный код триггера, дублирующий правило ссылочной
целостности PARENT DELETE RESTRICT:
create trigger tD_EMPLOYEE DELETE on EMPLOYEE
referencing OLD as deleted
for each row
-- ERwin Builtin Sun Jul 05 15:07:26 1998
-- DELETE trigger on EMPLOYEE
-- ERwin Builtin Sun Jul 05 15:07:26 1998
-- EMPLOYEE EMPLOYEE ON PARENT DELETE
RESTRICT
when (exists (
select * from EMPLOYEE
where
-- %JoinFKPK(EMPLOYEE,deleted,"
= "," and")
EMPLOYEE.MANAGER_ID
= deleted.EMPLOYEE_ID
))
(execute procedure erwin_raise_except(
-746,
'Cannot DELETE
"EMPLOYEE" because "EMPLOYEE" exists.'
)),
-- ERwin Builtin Sun Jul 05 15:07:26 1998
-- EMPLOYEE CUSTOMER ON PARENT DELETE
RESTRICT
when (exists (
select * from CUSTOMER
where
-- %JoinFKPK(CUSTOMER,deleted,"
= "," and")
CUSTOMER.SALESPERSON_ID
= deleted.EMPLOYEE_ID
))
(execute procedure erwin_raise_except(
-746,
'Cannot DELETE
"EMPLOYEE" because "CUSTOMER" exists.'
))
При программировании хранимых процедур тоже может использоваться библиотека
макросов. ERwin позволяет также описать специальные пред- и пост- условия,
содержащие действия, которые будут выполняться до и после любых изменений
любых частей схемы БД.
Расчет физического размера базы данных
ERwin позволяет проанализировать и вычислить размер будущей базы данных.
Введя несколько дополнительных параметров при создании таблицы или колонки
(опция Volumetrics) можно получить расчет начального размера базы
данных и его ежемесячного прироста.
Для таблицы вводятся всего три параметра: начальное количество строк,
максимальное количество строк или приращение строк за месяц. Параметров
для колонок всего два: средний размер колонки (для типов varchar и number)
и процент нулевых значений (строки, содержащие значение NULL в данной колонке).
Можно также установить опции для групп индексов для включения их в итоговый
результат. Отчет можно сформировать по трем группам: физические объекты,
объекты базы данных, таблицы. Имеется возможность определить начальный
размер базы данных или ее размер через несколько месяцев.
Генерация кода клиентского приложения
Помимо описания объектов БД, учета ограничений ссылочной целостности, хранимых
процедуры, триггеров, индексов, ERwin предоставляет возможность определить
расширенные атрибуты (стиль, форматы отображения, правила проверки, начальные
значения), используемые при разработке клиентской части приложения. В качестве
средств разработки клиентской части поддерживаются PowerBuilder и Visual
Basic. Автоматически сгенерированный ERwin»ом код приложения самодостаточен,
то есть его сразу же можно откомпилировать в соответствующей среде и выполненить.
Поддержка работы с Model Mart
Программный продукт Model Mart фирмы Logic Works является средством коллективной
работы при моделировании крупных информационных систем. Его можно рассматривать
как специализированное хранилище моделей для ERWin»а, которое позволяет
решать следующие задачи:
-
Совместное моделирование. Каждый участник проекта имеет инструмент поиска
и доступа к интересующей его модели в любое время. Реализован режим работы
с общими моделями в реальном масштабе времени. Возникающие при этом конфликты
разрешаются при помощи специального модуля - Intelligent Conflict Resolution
(ICR). В дополнение к стандартным средствам организации совместной работы
Model Mart позволяет сохранять множество версий, снабженных аннотациями,
с последующим сравнением предыдущих и новых версий.
-
Создание библиотек решений. Model Mart позволяет формировать библиотеки
стандартных решений включающие наиболее удачные фрагменты реализованных
проектов, накапливать и использовать типовые модели, объединяя их при необходимости
«сборки» больших систем. На основе существующих баз данных с помощью ERwin
возможно восстановление моделей (обратное проектирование), которые в процессе
анализа пригодности их для новой системы могут объединяться с типовыми
моделями из библиотек моделей.
-
Управление доступом. Права доступа могут быть определены как для групп,
так и для отдельных участников проекта для модели в целом, или для ее отдельных
фрагментов.
Использование ERwin в проектах с СУБД Informix
Один из удачных примеров применения ERwin – информационно-платежная система
управления денежными потоками корпорации ProFIX\Telebank.Фирма-разработчик
– компания ProFIX (Киев). Назначение системы – обеспечение головного офиса
корпорации информацией о движении денежных средств подразделении с возможностью
формирования собственной внутрикорпоративной платежной системы. Система
разработана для использования в крупных и средних банках, на крупных государственных
и коммерческих предприятиях (администрация железнодорожного транспорта
Украины, УкрТатнафт и т.п.). При разработке этой сложной системы (более
120 таблиц) был эффективно применен ERwin, который также используется и
при сопровождении модели данных.
Другим примером является весьма интересный проект ЦИТ Новосибирского
Государственного Технического Университета, находящийся в стадии разработки,
по организации БД для Web-сервера НГТУ. База данных содержит информацию
по факультетам, кафедрам, специальностям, сотрудникам, а также научным
разработкам (около 20 таблиц). Применение ERwin облегчает и ускоряет процесс
разработки и гарантирует внедрение системы в начале учебного 1998/99 года.
Координаты авторов:
Учебно-консалтинговый центр Interface Ltd., тел. (095)135-55-00, 135-25-19,
mail@interface.ru
Interface Ltd.