Группа Items to Reverse Engineer позволяет задать объекты БД, на основе которых будет создана модель. При помощи списка выбора Option Set, a также кнопок New, Update и Delete можно создавать и редактировать именованные конфигурации объектов БД, которые могут быть использованы многократно при других сеансах обратного проектирования.
Группа Reverse Engineer (доступна только при обратном проектировании из БД) позволяет включить в модель системные объекты (окно выбора System Objects) и установить фильтр на извлекаемые таблицы по их владельцу.
Установка опции Primary Keys в группе Infer означает, что ERwin будет генерировать первичные ключи на основе анализа индексов. Если включена опция Relations, ERwin будет устанавливать связи на основе имен колонок первичного ключа или индексов. Эти опции имеют смысл, только если связи не прописаны явно.
Группа Case Conversion позволяет задать опции конвертации регистра при создании логических и физических имен модели.
Рис. 2.106. Диалог Reverse Engineer - Set Options
Опция Import View Base Tables указывает, что ERwin будет устанавливать связи между представлениями и таблицами. Если опция выключена или SQL-команда создания представления содержит сложные конструкции (например, агрегативные функции), колонки представления импортируются как определяемые пользователем.
После установки необходимых опций можно щелкнуть по кнопке Next, после чего появляется диалог связи с БД (см. рис. 2.103), устанавливается сеанс связи с сервером и начинается процесс обратного проектирования, во время которого показывается статус процесса в диалоге Reverse Engineer-Status. В результате процесса создается новая модель данных.
В процессе работы модель может изменяться и дополняться. С другой стороны, системный каталог БД может редактироваться другими проектировщиками. В результате спустя некоторое время после последнего сеанса обратного проектирования могут возникнуть расхождения между реальным состоянием системного каталога и моделью данных.
Для синхронизации системного каталога БД и текущей модели следует выбрать пункт меню Tasks/Complete Compare или нажать кнопку на панели инструментов. Возникает диалог Complete Compare - Set Options, который во многом похож на описанный выше диалог Reverse Engineer - Set Options. Разница заключается в том, что в отличие от обратного проектирования сравнивать текущую модель можно не только с БД или SQL-скриптом, но и с другой моделью ERwin, хранящейся в файле или репози-тории ModelMart.
После нажатия на кнопку Next диалога Complete Compare - Set Options возникает диалог связи с БД (см. рис. 2.103), устанавливается сеанс связи с сервером и в диалоге Complete Compare - Resolve Differences показывается текущее состояние модели (слева) и системного каталога СУБД (справа) (рис. 2.107).
Рис. 2.107. Диалог Complete Compare - Resolve Differences
В правой части диалога находятся кнопки, позволяющие задать режим синхронизации для каждого объекта модели или БД:
– экспорт объекта из модели в БД;
– импорт объекта из БД в модель;
– игнорирование различия между моделью и БД (по умолчанию принимается для всех объектов);
– удаление объекта из БД.
Кнопки Match и UnMatch позволяют связать объекты модели и БД, имеющие разные имена. Например, в модели ERwin таблице CUSTOMER соответствует таблица CUST в БД. По умолчанию ERwin определяет, что это разные объекты, хотя по смыслу это одно и то же. Для того чтобы ERwin правильно провел синхронизацию, необходимо вручную связать эти две таблицы. Для связывания таблиц необходимо щелкнуть по кнопке Match, затем по таблице модели (левый список) и, наконец, по таблице БД (правый список). Кнопка UnMatch служит для отмены связывания таблиц.
Линейка индикаторов между списками показывает установленную опцию синхронизации объектов.
Кнопка Report, позволяет сгенерировать отчет о синхронизации, кнопка Preview вызывает диалог Preview SQL Commands, в котором показывается SQL-скрипт, выполняемый для проведения синхронизации.
После щелчка по кнопке Next возникает диалог Complete Compare -Import Changes, в котором можно задать дополнительные опции синхронизации, касающиеся модификации модели (рис. 2.108).
Группа Case Conversion of Logical Names позволяет задать регистр имен создаваемых в модели объектов.
Группа If Table to Import Exists in Model позволяет задать опции генерации схемы в случае, если таблица уже существует в модели. Может быть использована существующая таблица (Use Existing Table) либо создана дублирующая (Create Duplicate Table).
Опции Primary Keys, Relations и Import Base Tables имеют то же назначение, что и соответствующие опции диалога Reverse Engineer - Set Options (см. выше).
Рис. 2.108. Диалог Complete Compare - Import Changes
Кнопка Start Import служит для запуска процесса импорта объектов в модель из БД, SQL(DDL)-скрипт, диаграммы из репозитория ModelMart или файла ER1/ERX. В процессе импорта ERwin показывает сообщения об успешном или неуспешном завершении выполнения импорта для каждого объекта.
2.4. Генерация кода клиентской части с помощью ERwin
2.4.1. Расширенные атрибуты
ERwin поддерживает не только проектирование сервера БД, но и автоматическую генерацию клиентского приложения в средах разработки MS Visual Basic и Power Builder. Технология генерации состоит в том, что на этапе разработки физической модели данных каждой колонке присваиваются расширенные атрибуты, содержащие информацию о свойствах объектов клиентского приложения (в том числе визуальных), которые будут отображать информацию, хранящуюся в соответствующей колонке. Эта информация записывается в файле модели. На основе информации, содержащейся в расширенных атрибутах, генерируются экранные формы. Полученный код может быть немедленно откомпилирован и выполнен без дополнительного ручного кодирования.
Каждой колонке в модели ERwin можно задать предварительно описанные и именованные свойства:
правила валидации (проверки значений);
начальные значения, устанавливаемые по умолчанию;
стиль визуального объекта (например, поле ввода, радиокнопка и т.д.);
формат изображения.
Для описания каждого свойства ERwin содержит соответствующие редакторы. Редакторы Validation Rule Editor для задания правил валидации и редактор Default/Initial Editor для задания начальных значений были описаны в 2.3.4.
Для описания стиля визуального объекта служит диалог Edit Style Editor. Этот диалог различается в зависимости от выбранного клиента. На рис. 2.109 показан вид диалога в случае Power Builder. В левой части диалога располагается группа радиокнопок, соответствующая визуальным объектам, например полю ввода (Edit), окну выбора (Check Box) и др. При щелчке по одной из кнопок в центральной части диалога появляются поля для задания свойств соответствующего объекта.
Радиокнопка Edit mask позволяет задать маску ввода данных, например (@@@) [email protected]@@ [email protected]@@@ для номера телефона.
Кнопки New, Rename и Delete служат для создания, переименования и удаления стиля. В верхней части диалога отображается список предварительно описанных стилей.
Для редактирования форматов служит диалог Display Format Editor (рис. 2.110).
В окне Format Name отображается список всех предварительно созданных форматов. Поле PowerBuilder/Visual Basic Display Format служит для описания маски ввода данных. С помощью комбинированного списка Type можно выбрать тип данных (string, number, date, time или datetime).
Кнопки New, Rename и Delete служат для создания, переименования и удаления формата.
С помощью кнопки РВ Sync (только для PowerBuilder) можно синхронизировать форматы модели ERwin со словарем PowerBuilder.
Рис. 2.110. Диалог Display Format Editor
2.4.2. Генерация кода в Visual Basic
ERwin поддерживает генерацию кода для MS Visual Basic версий 4.0 и 5.0. В качестве источника информации при генерации форм служит модель ERwin. Использование ERwin позволяет одновременно описывать как клиентскую часть (объекты, отображающие данные на экране), так и сервер БД (процедуры и триггеры), тем самым оптимально распределяя функциональность ИС между клиентской и серверной частью. Компонент ERwin Form Wizard автоматически проектирует формы с дочерними объектами -кнопками, списками, полями, радиокнопками и т. д., используя расширенные атрибуты.
Совместное использование ERwin и Visual Basic может значительно сократить жизненный цикл разработки ИС, поскольку для каждой задачи используется наиболее эффективный инструмент. Visual Basic может быть использован для проектирования визуального интерфейса, а ERwin - для разработки логической и физической модели данных с последующей генерацией системного каталога сервера. Если БД уже существует, то с помощью ERwin можно провести обратное проектирование (reverse engineering),
полученную модель дополнить расширенными атрибутами и сгенерировать клиентское приложение.
Для генерации клиентской части в диалоге Target Client (меню Client/ Target Client) необходимо выбрать среду программирования - Visual Basic либо Power Builder (рис. 2.111).