<< Вернуться у выбору материала

5.3. Генерация базы данных физического уровня в среде СУБД Access

Введите ваш запрос для начала поиска.

Подготовка к генерации базы данных физического уровня начинается с создания пустой БД в среде той СУБД, куда планируется генерировать ER-диаграмму. Для этого надо запустить СУБД Access, выполнить команду на создание новой БД, присвоить ей имя и сохранить (рис. 29).

Пустая БД с именем test_db в СУБД Access

Рис. 29. Пустая БД с именем test_db в СУБД Access

Физическая модель БД в ERwin

Рис. 30. Физическая модель БД в ERwin

Затем открываем ER-диаграмму в среде ERwin и с помощью списка выбора в стандартной панели инструментов производим переключение между логической и физической моделью (рис.30). При переключении, если физической модели еще не существует, она будет создана автоматически. Теперь надо выбрать СУБД, в которой будем производить генерацию БД физического уровня. Для этого следует выполнить команду DATABASE / Choose database, в появившемся диалоговом окне (рис. 31) выбрать интересующую СУБД Access и щелкнуть по кнопке <ОК>.

Диалог выбора СУБД (сервера)

Рис. 31. Диалог выбора СУБД (сервера)

Диалог присоединения к СУБД Access

Рис. 32. Диалог присоединения к СУБД Access

Для установления соединения БД из ERwin c целевой СУБД Access необходимо выполнить команду DATABASE/Database connection. В появившемся диалоговом окне (рис.32) необходимо указать путь к БД в СУБД Access, вписать имя admin и нажать кнопку Connect. Для генерации БД физического уровня в среде СУБД Access необходимо выполнить команду TOOLS/Forward Engineering/Schema Generation. В результате получаем диалог генерации схемы БД (рис. 33), который имеет 3 закладки:

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

Во вкладке Summary отображаются все опции, заданные во вкладке Options. Список опций в Summary можно редактировать так же, как и в Options.

Comment. Позволяет внести комментарий для каждого набора опций.

Каждый набор опций может быть именован (окно Option Set, кнопки New, Rename и Delete) и использован многократно.

Кнопка Preview вызывает диалог Schema Generation Preview, в котором отображается SQL-скрипт, создаваемый ERwin для генерации системного каталога СУБД (рис. 34).

Диалог генерации схемы БД

Рис. 33. Диалог генерации схемы БД


CREATE TABLE "prodavec"

Set ERwinTableDef = ERwinDatabase.CreateTableDef("prodavec")
Set ERwinField = ERwinTableDef.CreateField("IDprod", DB_LONG)
ERwinTableDef.Fields.Append ERwinField
Set ERwinField = ERwinTableDef.CreateField("fio", DB_TEXT, 20)
ERwinTableDef.Fields.Append ERwinField
Set ERwinField = ERwinTableDef.CreateField("vozrast", DB_TEXT, 20)
ERwinTableDef.Fields.Append ERwinField
Set ERwinField = ERwinTableDef.CreateField("adress", DB_TEXT, 20)
ERwinTableDef.Fields.Append ERwinField
Set ERwinField = ERwinTableDef.CreateField("dolghnost", DB_TEXT, 20)
ERwinTableDef.Fields.Append ERwinField
Set ERwinField = ERwinTableDef.CreateField("oklad", DB_LONG)
ERwinTableDef.Fields.Append ERwinField
ERwinDatabase.TableDefs.Append ERwinTableDef

CREATE TABLE "tovar"

Set ERwinTableDef = ERwinDatabase.CreateTableDef("tovar")
Set ERwinField = ERwinTableDef.CreateField("IDtov", DB_LONG)
ERwinTableDef.Fields.Append
ERwinField
Set ERwinField = ERwinTableDef.CreateField("naimenovanie", DB_LONG)
ERwinTableDef.Fields.Append
ERwinField
Set ERwinField = ERwinTableDef.CreateField("cena", DB_LONG)
ERwinTableDef.Fields.Append
ERwinField
Set ERwinField = ERwinTableDef.CreateField("proizvoditel", DB_TEXT, 20)
ERwinTableDef.Fields.Append
ERwinField
Set ERwinField = ERwinTableDef.CreateField("postavshik", DB_TEXT, 20)
ERwinTableDef.Fields.Append
ERwinField
Set ERwinField = ERwinTableDef.CreateField("kolichestvo", DB_LONG)
ERwinTableDef.Fields.Append
ERwinField
ERwinDatabase.TableDefs.Append
ERwinTableDef

Рис. 34. Программа генерации таблиц БД (SQL-скрипты)

Кнопка Print диалога предназначена для вывода на печать создаваемого ERwin SQL-скрипта.

Кнопка Report сохраняет тот же скрипт в ERS- или SQL-текстовом файле. Эти команды можно в дальнейшем редактировать любым текстовым редактором и выполнять при помощи соответствующей утилиты сервера

Нажатие на кнопку Generate приведет к запуску процесса генерации схемы. Возникает диалог связи с базой данных, устанавливается сеанс связи с сервером-базы данных (СУБД Access), и начинает выполняться SQL-скрипт. При этом возникает диалог Generate Database Schema (рис. 35).

Диалог Generate Database Schema

Рис. 35. Диалог Generate Database Schema

По умолчанию в диалоге Generate Database Schema включена опция Stop If Failure. Это означает, что при первой же ошибке выполнение скрипта прекращается. Щелкнув по кнопке Continue, можно продолжить выполнение. Кнопка Abort прерывает выполнение. При выключенной опции Stop If Failure скрипт будет выполняться, несмотря на встречающиеся ошибки.

Для выполнения обратного проектирования следует выбрать пункт меню Tools/Reverse Engineer.

После выполнения скриптов (рис. 34) в среде СУБД Access создается БД физического уровня (рис. 36).

Структура БД физического уровня в СУБД Access

Рис. 36. Структура БД физического уровня в СУБД Access

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

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

Рейтинг@Mail.ru