На стадии реализации создаются физическая модель. Существует два уровня физических моделей: трансформационная модель (Transformation Model) и модель СУБД.
Трансформационная модель содержит всю информацию для реализации проекта, который может быть частью общей информационной системы и описывать предметную область. Трансформационная модель позволяет проектировщикам и администраторам БД представлять, какие объекты БД хранятся в словаре данных, и проверить, насколько физическая модель данных удовлетворяет требованиям информационной системы. Фактически из трансформационной модели автоматически можно получить модель СУБД, которая является точным отображением системного каталога СУБД.
Целью трансформационной модели является предоставление информации администратору БД для создания эффективной структуры хранения, включающей в себя записи, формирующие БД. Трансформационная модель должна помочь разработчикам выбрать структуру хранения данных и реализовать систему доступа к ним.
Перед началом проектирования БД необходимо убедиться в обеспечении следующих требований:
· физическая модель данных должна соответствовать требованиям, предъявляемым к проектируемой системе;
· выбор определенной физической модели должен быть аргументирован;
· должны быть определены возможности наращивания существующей структуры хранения, а также выявлены ее ограничения.
Модель СУБД напрямую транслируется из трансформационной модели, являясь отображением системного каталога. ERWin напрямую поддерживает эту модель через функцию генерации схемы БД. При составлении схемы БД в качестве индексов могут использоваться как ключевой атрибут, так и остальные поля БД.
Физический уровень модели зависит от выбранного сервера. Для выбора СУБД служит редактор Target Server (меню Server/ Target Server доступно только на физическом уровне).
Рис. 4.1. Панель выбора сервера СУБД
ERwin поддерживает практически все распространенные СУБД, всего более 20 реляционных и нереляционных баз данных. Для выбора СУБД нужно щелкнуть по соответствующей кнопке рядом с именем СУБД.
Диалог Target Server позволяет задать тип данных и опцию NULL для новых колонок, а также правила ссылочной целостности, принимаемые по умолчанию. Тип данных можно выбрать в раскрывающемся списке Default Access Datatype, который автоматически заполняется типами данных, поддерживаемых выбранным сервером.
Группа кнопок Default Non-Key Null Option позволяет разрешить или запретить значения NULL для неключевых колонок.
При смене СУБД ERwin предлагает автоматически преобразовать тип данных каждой колонки на доступный тип новой СУБД. Правила соответствия типов могут быть заданы предварительно (см. 4.1). Для автоматического преобразования следует в ответ на запрос нажать Yes.
Таблицы, колонки и представления (view)
ERwin автоматически создает имена таблиц и колонок на основе имен соответствующих сущностей и атрибутов, учитывая максимальную длину имени и другие синтаксические ограничения, накладываемые СУБД. При генерации имени таблицы или колонки по умолчанию все пробелы автоматически преобразуются в символы подчеркивания, а длина имени обрезается до максимальной длины, допустимой для выбранной СУБД. Все изменения, сделанные в редакторах Tables или Columns, не отражаются на именах сущностей и атрибутов, поскольку информация на логическом и физическом уровнях в ERwin хранится отдельно.
Редактор Tables позволяет задать свойства любой таблицы модели, в том числе имя таблицы, синонимы, правила валидации, процедуры и т. д. Переключиться на другую таблицу можно при помощи раскрывающегося списка выбора в верхней части диалога (рис. 4.2).
Рис.4.2. Диалог Tables
Окно Name служит для задания имени текущей таблицы. Окно Owner позволяет внести имя владельца таблицы, отличное от имени пользователя, производящего генерацию схемы базы данных. Окно выбора Physical Only служит для создания объектов только на физическом уровне. Если выбрана опция Generate, при генерации схемы базы данных будет выполняться команда CREATE TABLE. Кнопка DB Sync служит для немедленной синхронизации модели с системным каталогом базы данных. Диалог Tables содержит следующие закладки:
· Comment. Внесение комментария к таблице.
· Volumetrics. Служит для оценки размера базы данных.
· UDP. Задание свойств, определяемых пользователем.
· Validation. Задание правил валидации.
Для задания свойств колонок, отличных от значения по умолчанию, служит редактор Columns (рис. 4.3). Чтобы вызвать его, нужно щелкнуть правой кнопкой мыши по таблице и выбрать во всплывающем меню пункт Columns.
По умолчанию ERwin присваивает режимы нулевых значений всем неключевым колонкам, исходя из значений по умолчанию, устанавливаемых редакторе Target Server. Для колонок первичного ключа и альтернативных ключей устанавливается режим NOT NULL. Режим NOT NULL не присваивается автоматически инверсионным входам (Inversion Entry).
Рис. 4.3. Диалог Columns
Внешне диалог Columns напоминает диалог Attributes. В правой части диалога находятся закладки:
· General. Позволяет поставить в соответствие колонке определенный домен, создать колонку только на физическом уровне и включить ее в состав первичного ключа.
· Закладка, соответствующая выбранной СУБД. Имя закладки устанавливается автоматически соответствующей выбранной СУБД. Позволяет задать тип данных, опцию NULL, правила валидации и значение по умолчанию. Правила валидации и значение по умолчанию должны быть описаны и именованы предварительно соответственно в диалогах Valid и Default.
· Comment. Служит для внесения комментария к каждой колонке.
· UDP. Задание свойств, определяемых пользователем.
· Index. Служит для включения колонки в состав индексов.
В левой части диалога содержится упорядоченный список колонок таблицы. Навигационные кнопки предназначены для перемещения колонки в списке на позицию вверх и вниз. Кнопки New, Rename и Delete служат соответственно для создания, переименования и удаления колонки. При помощи кнопки Reset можно переустановить свойства колонки, заданные вручную, на значения по умолчанию. Кнопка PB Sync позволяет запустить процесс синхронизации модели с системным каталогом базы данных.
Прямое и обратное проектирование
Процесс генерации схемы базы данных из модели данных называетеся прямым проектированием (Forward Engineering). При генерации схемы ERwin включает триггеры ссылочной целостности, хранимые процедуры индексы, ограничения и другие возможности, доступные при определении таблиц в выбранной СУБД. Процесс генерации модели из схемы базы данных называется обратным проектированием (Reverse Engineering). ERwin позволяет создать модель данных путем обратного проектирования имеющейся базы данных. После того как модель создана, можно переключиться на другой сервер (модель будет конвертирована) и произвести прямое проектирование структуры базы данных для другой СУБД. Кроме режима прямого и обратного проектирования ERwin поддерживает синхронизацию между моделью и системным каталогом СУБД на протяжении всего жизненного цикла создания ИС.
Для генерации системного каталога базы данных следует выбрать пункт меню Tools/Forward Engineer/Schema Generation или нажать кнопку на панели инструментов. Появляется диалог Schema Generation (рис. 4.4). Диалог Schema Generation имеет 3 закладки:
· Options. Служит для задания опций генерации объектов базы данных – триггеров, таблиц, представлений, колонок, индексов и т. д. Для задания опций генерации какого-либо объекта следует выбрать объект в левом списке закладки, после чего включить соответствующую опцию в правом списке.
· Summary. Служит для отображения всех опций, заданных во вкладке Options. Список опций в Summary можно редактировать так же, как и в Options.
· Comment. Позволяет внести комментарий для каждого набора опций.
Каждый набор опций может быть именован (окно Option Set, New, Rename и Delete) и использован многократно.
Кнопка Preview вызывает диалог Schema Generation Preview (рис. 4.4) в котором отображается SQL-скрипт, создаваемый ERwin для генерации системного каталога СУБД. Нажатие на кнопку Generate приведет к запуску процесса генерации схемы.
Кнопка Print диалога Schema Generation предназначена для вывода на печать создаваемого ERwin SQL-скрипта.
Кнопка Report сохраняет тот же скрипт в ERS- или SQL-текстовом файле. Эти команды можно в дальнейшем редактировать любым текстовым редактором и выполнять при помощи соответствующей утилиты сервера.
Кнопка Generate запускает процесс генерации схемы. Возникает диалог связи с базой данных, устанавливается сеанс связи с сервером-базы данных, и начинает выполняться SQL-скрипт. При этом возникает диалог Generate Database Schema.
Рис. 4.4. Диалог Schema Generation Preview
По умолчанию в диалоге Generate Database Schema включена опция Stop If Failure. Это означает, что при первой же ошибке выполнение скрипта прекращается. Щелкнув по кнопке Continue, можно продолжить выполнение. Кнопка Abort прерывает выполнение. При выключенной опции Stop If Failure скрипт будет выполняться, несмотря на встречающиеся ошибки.
Для выполнения обратного проектирования следует выбрать пункт меню Tools/Reverse Engineer.
Возникает диалог Reverse Engineer – Select Template, в котором нужно выбрать шаблон диаграммы, затем диалог выбора СУБД и, наконец, диалог задания опций обратного проектирования Reverse Engineer – Set Options.