Создание базы данных средствами ERwin

Создание логической модели данных. Назначение кнопок Erwin Toolbox. Создание БД в СУБД InterBase. Использование утилиты WISQL. Создание Script-файла. Перенос структуры данных с одного сервера на другой. Синхронизация каталога БД и текущей модели.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 26.11.2011
Размер файла 4,6 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

12

Размещено на http://www.allbest.ru/

Введение

C целью построения модели данных и генерации кода серверной и клиентской части используется продукт ERwin фирмы PLATINUM technology. ERwin имеет два уровня представления модели - логический и физический. На логическом уровне данные не связаны с конкретной СУБД, поэтому могут удобно отобрать структура представления данных в базе. Физический уровень фактически отображает системный каталог, который зависит от конкретной СУБД. По корректной физической модели ERwin может генерировать физическую схему (системный каталог или SQL -скрипт) для заданной СУБД. Процесс генерации физической схемы БД из логической модели данных называется прямым проектированием (Forward Engineering). При генерации физической схемы ERwin включает триггеры ссылочной целостности, хранимые процедуры, индексы, ограничения и другие возможности, доступные при определении таблиц в выбранной СУБД.

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

Erwin интегрируется с такими средствами разработки клиентской части, как PowerBuilder, Visual Basic, Delpfi, что позволяет автоматически генерировать код приложения полностью готовый к компиляции и выполнению.

Рассмотрим процедуру создания модели в среде Erwin и генерации модели данных для СУБД InterBase Windows InterActive SQL (WISQL).

Глава 1. Создание логической модели данных

Логический уровень представления модели данных - это уровень абстрактного, понятийного отображения информационных массивов, при котором подчеркивается предметная сторона рассматриваемой реальности. Данные в логической модели могут называться так, как они называются в реальном мире: «Клиент», «Студенты», «Адрес сотрудника».

Объекты модели, представляемой на логическом уровне, называются сущностями и связями. Каждая сущность имеет некоторые характеристики, называемые атрибутами. Например, сущность «Преподаватель» может иметь атрибуты: фамилия, ученая степень, ученое звание, год рождения, стаж работы, адрес и т.п. В свою очередь связи между сущностями могут иметь различные свойства, которые также должны быть быть определены в модели.

Различают три уровня логической модели, которые отличаются по глубине представления информации в ней.

· Диграмма сущность-связь (Entity Relationship Diagram, ERD);

· Модель данных, основанная на ключах (Key Based model, KB);

· Полная атрибутивная модель (Fully Attributed model, FA).

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

Модель данных, основанная на ключах включает описание всех сущностей и первичных ключей в данной предметной области.

Полная атрибутивная модель - это детальное представление структуры данных в третьей нормальной форме и включает все сущности, ключи и атрибуты.

Формирование сущностей

Интерфейс Erwin выполнен в стиле Windows - приложений и достаточно прост и интуитивно понятен. Отметим только те кнопки панели инструментов, которые могут вызвать затруднения. Обозначения кнопок и их описание приведено в табл.1

Таблица 1

Кнопки

Назначение кнопок

Изменение уровня просмотра модели: уровень сущностей, уровень атрибутов, уровень определений

Генерация схемы БД, выравнивание схемы с моделью (Доступно при работе с физическим уровнем модели)

Диалог Report Browser при генерации отчетов

Вызов дополнительной панели инструментов для работы с Model Mart

Переключение между областями модели

Для формирования ER-диаграммы используется режим работы - ЛОГИЧЕСКИЙ и используется инструментарий Erwin Toolbox, который вызывается из пункта меню Windows. Назначение кнопок и их обозначение приведено на рис.1.

база данные erwin

Назначение кнопок Erwin Toolbox:

1. Верхний ряд, слева направо:

· Кнопка указателя мыши позволяет устанавливать курсор на требуемый объект;

· Кнопка внесение сущности. При ее активации щелчок на рабочем пространстве позволяет создавать новую сущность. При редактировании сущности переходят в режим указателя мыши;

· Кнопка категориальных связей. Вводит специальный вид связи между сущностями. Ее вводят активизировав кнопку категорий, щелкнув левой кнопкой сначала на родительской сущности, потом по сущности -потомку;

· Кнопка текстового блока предназначена для внесения комментариев в любую часть диаграммы логической модели.

2. Слева направо, нижний ряд:

· Кнопка перенесения атрибутов внутри и между сущностями методом drag&drop;

· Кнопки создания связей идентифицирующей («один-ко-многим», «многие-ко-многим») и неидентифицирующей.

При создании реальных моделей количество сущностей и атрибутов может измеряться сотнями. Для более удобной работы с большими моделями Erwin предлагает работу с подмножествами модели (Sabject Area), в которые включаются разработчиком тематически близкие сущности. Для этого вызывается диалог Sabject Area Editor, в котором указывается имя подмножества и входящие в него сущности. Все изменения в подмножестве автоматически отражаются во всей модели.

Каждый щелчок при активированной кнопке сущности приводит к созданию новой сущности на диаграмме. Каждую сущность может быть дополнительно определена с помощью текстового описания в закладке Definition. Для этого на редактируемой сущности следует щелкнуть правой кнопкой и выбрать из всплывающего меню пункт Entity Editor. В пункте Definition создается определение созданной сущности. В пункте Note добавляют дополнительные замечания о сущности, которые не были сделаны в пункте Definition. В закладке Note2 можно отметить некоторые возможные запросы, которые предположительно будут формироваться для создаваемой сущности. В пункте USD (User Defined Properties - свойства, определяемые пользователем) разработчик вносит дополнительные комментарии и определения к сущности. Закладка Note3 позволяет меры данных для сущности. Пример использования этого меню приведен на рис. 2.

В закладке Icon сущности можно поставить в соответствие некоторый рисунок, который будет отображаться в режиме просмотра модели на уровне иконок.

Разработчик базы данных в соответствии с правилами проектирования определяет какие свойства будут приданы данной сущности и какие атрибуты будут ее наполнять. Атрибут, или группа атрибутов, которые однозначно идентифицируют сущность, называется первичным ключом. Для описания атрибутов следует, «кликнув» правой кнопкой по сущности, выбрать в появившемся меню пункт Attribute Editor. Диалог пользователя с этим пунктом приведен на рис.3.

Рис.2. Диалог Entity Editor

Рис.3. Диалог формирования атрибутов сущности

Кнопка New позволят вводить новые атрибуты. Свойства этих атрибутов задаются в правой части раскрывшегося окна. В этом окне следует не только присвоить вводимым атрибутам имена, но и определить домены, на которых они строятся. Размерность (количество знаков) домена можно будет определить при работе с физическим уровнем программы Erwin.

Атрибут, являющийся первичным ключом должен быть указан в закладке General.

КЛЮЧИ

Каждый экземпляр сущности должен быть уникален и отличаться о других экземпляров. Для выделения экземпляров, поиска их в базе данных, связи с другими таблицами в практике организации информационных процессов используются атрибуты, однозначно определяющие тот или иной объект. Такие атрибуты называют ключами. Различают первичные ключи и внешние.

Первичный ключ (primary key) - это атрибут или группа атрибутов, однозначно идентифицирующая экземпляр сущности. Атрибуты первичного ключа на ER-диаграмме находятся в списке выше горизонтальной линии (см. ER-диаграмму в приложении). Для определения атрибута в качестве первичного ключа необходимо установить флажок Рrimary key в нижней части закладки General. Неключевой атрибут можно внести в состав ключевого и наооборот, используя режим переноса атрибутов (кнопка в панели инструментов).

Выбор первичного ключа в ряде случаев может оказаться непростой задачей. На его роль могут претендовать несколько атрибутов. Такие претенденты называются потенциальными ключами (candidate key).

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

· Уникальность. Два экземпляра сущности не должны иметь одинаковых значений возможного ключа.

· Компактность. Сложный первичный ключ не должен атрибутов, удаление которых не приводило бы к потере уникальности.

При выборе первичного ключа предпочтение должно отдаваться наиболее простым ключам. Атрибуты первичного ключа не должны содержать нулевых значений. Значения ключевых атрибутов не должны меняться в течение всего времени существования экземпляра сущности. Кроме этого, каждая сущность должна иметь по крайней мере один потенциальный ключ. Некоторые сущности могут иметь более одного возможного ключа. При выборе одного из них первичным остальные становятся альтернативными ключами (Alternate key).

При работе информационной системы нередко необходим доступ сразу к нескольким экземплярам сущностей.

1.1 Создание БД в СУБД InterBase

СУБД InterBase поддерживает как режим локальной машины, так и сервера. На практических занятиях будем использовать режим локальной машины.

Создание новой БД. Выберите в меню пункт File/Create Database. Появится диалог Create Database. Установите режим локальной машины (опция Local Engine). В поле Database укажите полное имя БД (с расширением .gdb), например, c:\ib\bd1.gdb. Для ввода имени пользователя (SYSDBA) и пароля (masterkey) используйте соответственно поля User Name и Password. Это пароль по умолчанию.

Замечание 1. Если возникает необходимость в создании на сервере нового пользователя, то необходимо выбрать пункт Task/User Security, в диалоговом окне Interbase Security, нажать кнопку Add User и выполнить конфигурация нового пользователя.

В поле Database Options введите следующую фразу:

DEFAULT CHARACTER SET WIN 1251.

Это необходимо для того, чтобы в нашей базе данных можно было сохранять строковые данные, содержащие символы кириллицы.

Нажмите кнопку ОК.

Мы создали БД под именем bd1. При этом программа ISQL сразу же подключилась к вновь созданной БД (в статусной строке окна программы появилось имя текущей активной БД).

В созданной БД пока отсутствует информация о структуре данных проектируемой информационной системы. Как ввести эту информацию в БД? Ниже рассматривается ряд способов решения этой задачи.

Глава 2. Создание объектов БД

2.1 Использование утилиты WISQL

Для создания объектов БД (доменов, таблиц, представлений, индексов и т.д.) можно использовать средства, предоставляемые утилитой WISQL.

Выполните соединение (если оно отсутствует) с вновь созданной БД (пункт File/Connect To Database), а затем с помощью операторов языка определения данных (CREATE, ALTER, DROP) создайте необходимые объекты БД.

Более подробно особенности работы с утилитой WISQL излагаются студентам на этапе изучения основ языка SQL [3].

В методических указаниях рассматриваются другие способы проектирования БД, основанные на получении основных результатов в ERwin и переносе их в среду InterBase.

2.2 Прямое проектирование

2.2.1 Создание драйвера БД

Для доступа к БД на основе спецификации Open Database Connectivity, разработанной компанией Microsoft, используются драйверы ODBC. ERwin может подключиться к БД используя 32-разрядные драйверы ODBC.

При создании ODBC-драйвера выполните следующие действия [4]:

- откройте окно Панель управления (каскадный выбор в Windows: Пуск/Настройка/Панель управления) и щелкните левой кнопкой мыши по кнопке ODBC [32 bit];

- в появившемся диалоге ODBC Data Source Administrator щелкните мышью по кнопке ADD (закладка User DSN);

- в диалоге Create New Data Source выделите строку InterBase 5.X Driver by Visigenic [*.gdb] и нажмите кнопку Готово;

- в поле Data Source Name диалога InterBase ODBC Configuration введите имя вновь создаваемого драйвера (например, dr1);

- при необходимости поясните назначение драйвера в поле Description;

- в окне NetWork Protocol выберите сетевой протокол <local>, соответствующий режиму локальной машины;

- в поле DataBase укажите полный путь к вновь созданной БД (например, c:\ib\bd1.gdb);

- введите в полях UserName и Password имя пользователя и пароль;

- завершите процесс конфигурации драйвера (кнопка ОК).

После создания драйвера вновь появляется диалог ODBC Data Source Administrator, в списке которого можно найти имя сконфигурированного драйвера. Для просмотра параметров конфигурации выделенного драйвера нажмите на клавишу Configure.

2.2.2 Генерация системного каталога

Генерация системного каталога выполняется после создания физической модели информационной системы [5].

Для генерации системного каталога БД следует выбрать в ERwin пункт меню Tasks/Forward Engineer/Schema Generation или нажать на кнопку

на панели инструментов.

Появляется диалог Schema Generation (рис. 2.1), позволяющий задать набор установок, определяющих, какие элементы должны войти в схему БД.

Для каждой логической схемы можно создать несколько таких наборов установок (опций). Текущий набор установок выбирается в списке Option Set, в верхней части диалогового окна.

Для создания нового набора установок нажмите клавишу New и введите имя создаваемого набора.

Закладки диалога Schema Generation.

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

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

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

Кнопки диалога Schema Generation.

12

Размещено на http://www.allbest.ru/

Filter. Вызывается фильтр таблиц. Здесь выбираются таблицы (сущности), которые должны войти в схему. Диалоговое окно фильтра состоит из двух списков, содержащих имена таблиц или сущностей, в зависимости от положения переключателя Display Names. В левом списке находятся имена таблиц, исключенные из схемы генерации, в правом - вошедшие в схему. Перемещение таблиц между списками осуществляется при помощи стандартных кнопок со строками. Относительное количество выбранных таблиц показано над правым списком в виде дроби, в знаменателе которой проставляется общее число таблиц в схеме. Эта же дробь выводится и в нижней части главного окна генератора схем.

Preview. Просмотр сгенерированного SQL-сценария БД. Диалог содержит стандартное текстовое окно и набор кнопок для редактирования, просмотра и печати текста сценария. В полученном сценарии присутствуют различные SQL-запросы:

CREATE TABLE - создание таблицы;

CREATE INDEX - создание индекса;

ALTER TABLE... ADD PRIMARI KEY - добавление первичного ключа;

ALTER TABLE... ADD FOREINGN KEY - добавление внешнего ключа и т.д.

Print. Вывод SQL-сценария на печать.

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

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

Замечание 2. Перед выполнением этапа генерации физической схемы необходимо быть уверенным в том, что БД создана и "пуста". Если полной уверенности в этом нет, то рекомендуется выполнить в WISQL следующие действия:

- соединиться с БД (Connect to Database);

- удалить БД (Drop Database);

- создать БД (Create Database);

- отсоединиться от БД (Disconnect from Database);

- перейти в ERwin.

Разумеется, эту последовательность шагов можно выполнять лишь на этапе изучения методики прямого проектирования, то есть, когда нет необходимости сохранять объекты старой БД. При создании новой БД важно сохранить неизменным ее имя. Это позволит работать с одним и тем же ODBC-драйвером.

Замечание 3. После завершения генерации физической схемы ERwin остается подключенным к БД через ODBC-драйвер. Эту связь необходимо разорвать для обеспечения возможности просмотра объектов БД в среде WISQL:

- выберите в меню пункт Server/InterBase Connection;

- в появившемся диалоге Interbase/ODBC Connection щелкните мышью по клавише Disconnect, а затем - по клавише Close.

Итак, в созданную БД введена информация, касающаяся всех объектов разработанной в среде ERwin модели информационной системы. Эту информацию можно просмотреть, используя меню Metadata диалога InterBase Interactive SQL.

2.3 Script-файлы

2.3.1 Создание и выполнение Script-файла

Текст сценария создания БД может быть оформлен в виде файла и затем выполнен в программе WISQL. Преимущество такого подхода очевидно в тех случаях, когда необходимо периодически выполнять повторяющиеся последовательности операторов.

Обычно средствами ERwin создается основа Script-файла, а затем она редактируется и дополняется с целью обеспечения возможности его запуска на выполнение.

Создание основы Script-файла:

- выберите в ERwin пункт Tasks/Forward Engineer и выделите в появившемся диалоге Schema Generation необходимые опции для генерации физической схемы;

- нажмите кнопку Report;

- сохраните файл на диске (имя сохраняемого файла имеет расширение .sql).

Дополнение основы Script-файла командами подключения к БД. Обычно редактирование Script-файла выполняется в текстовом редакторе. При редактировании в начале SQL-сценария необходимо написать команды подключения к БД (а иногда команды удаления старой версии БД и создания ее новой версии). Например:

CONNECT 'c:\ib\bd1.gdb' USER 'SYSDBA'

PASSWORD 'masterkey';

Смена вида разделителя SQL-операторов. Если в Script-файле присутствуют триггеры и хранимые процедуры, то необходимо включить в текст файла оператор SET TERM, предназначенный для смены вида разделителя.

Перед первым оператором CREATE TRIGGER или CREATE PROCEDURE устанавливают новый разделитель "!!", завершают им одно или несколько идущих подряд определений триггеров и хранимых процедур, а затем восстанавливают старый разделитель ";". Например,

...

SET TERM!!;

<триггер 1>

END!!

<триггер 2>

END!!

...

<триггер N>

END!!

SET TERM;!!

Запуск Script-файла на выполнение:

- запустите программу WISQL;

- создайте новую БД (File/Create Database);

- выберите пункт меню File/Ran an ISQL Script и укажите файл с текстом сценария.

Если все сделано правильно, после отработки скрипта программа выдает сообщение Script Completed Successfully (скрипт завершен успешно).

Подключитесь к созданной БД, а затем, используя команды меню Metadata, проведите анализ достигнутых результатов проектирования.

Обычно первый сценарий не является окончательным. Проектирование клиент-серверной системы является итерационным процессом. Поэтому, в ходе дальнейшей разработки системы требуется изменять и дополнять сценарий создания БД. При этом используются более сложные, но и, во многих случаях, более эффективные способы видоизменения SQL-сценария.

2.3.2 Использование свойств, определяемых пользователем, и шаблонов скриптов

2.3.2.1 Создание пользовательских свойств и шаблонов для диаграммы

Рассмотрим другой вариант решения задачи дополнения основы Script-файла командами подключения к БД.

Создание пользовательских свойств. Сначала свяжем со схемой БД три пользовательских свойства, значения которых должны соответствовать имени файла БД, имени пользователя и пароля. Для этого воспользуемся реализованным в ERwin механизмом пользовательских свойств [6].

Выберите пункт меню Edit/Diagram и перейдите на страницу UDP (рис.2.2).

12

Размещено на http://www.allbest.ru/

Нажмите на кнопку, находящуюся в правом верхнем углу страницы и перейдите в редактор пользовательских свойств (рис. 2.3).

В верхней части окна находится поле Class, в котором указано, для какого объекта диаграммы задаются пользовательские свойства. В данном случае этим объектом является сама диаграмма, поэтому в поле стоит Diagram.

Таблица пользовательских свойств содержит следующие поименованные колонки:

12

Размещено на http://www.allbest.ru/

Name - имя пользовательского свойства;

Type - тип пользовательского свойства;

Default - значение свойства по умолчанию;

Description - описание свойства, которое вводится для обеспечения читаемости диаграммы.

Для пользовательского свойства определены следующие типы данных:

Command - выполняемая строка. В качестве значения свойства этого типа можно задать команду, которая будет вызываться при нажатии на имя свойства (кнопка

в строке таблицы UDP);

Date - дата. Используется формат ММ/ДД/ГГ;

Int - целое число;

Real - действительное число;

Text - символьная строка;

List - список.

При обращении к свойству этого типа значение можно будет выбрать из стандартного выпадающего списка. Значения для этого списка следует задавать в колонке Default, перечислив их через запятую. Значение по умолчанию необходимо начать с символа "~".

Добавление нового свойства производится при помощи нажатия кнопки

, находящейся в первой колонке таблицы свойств.

Введите в эту таблицу три свойства текстового типа: IB_DBName, IB_UserName, IB_Password, а затем задайте значения этих свойств: c:\ib\bd1.gdb; SYSDBA; masterkey.

Создание шаблона для генерации команд подключения к БД. Воспользуемся тем, что ERwin позволяет назначить каждому объекту (в рассматриваемом случае - диаграмме) диаграммы специальные шаблоны, написанные на встроенном макроязыке.

Выберите пункт меню Server/Interbase Schema Property. Диалоговое окно InterBase Schema Property Editor (редактор свойств схемы) содержит две страницы (рис. 2.4):

12

Размещено на http://www.allbest.ru/

Stored Procedure (хранимая процедура). Здесь схема связывается с шаблонами хранимых процедур, которые создаются при генерации схемы.

Pre & Post Script (сценарии "до" и "после генерации"). На этой странице создаются SQL-скрипты, которые ERwin выполняет перед или сразу же после генерации таблиц или схемы в целом.

Перейдите на страницу Pre & Post Script и нажмите на кнопку Schema Script Template (шаблон скрипта схемы). Чтобы добавить шаблон следует нажать кнопку New. Введите в диалоге имя шаблона "Подключение к БД".

Введенное имя шаблона появится в таблице, в колонке Script Template Name (рис. 2.5).

Задайте тип скрипта (Pre_Schema Generation). В колонке Type указывается тип скрипта, а в колонке Code первая строка кода шаблона.

Текст шаблона вводится в окне Schema Script Template, которое представляет обычный текстовый редактор.

Перейдите в это окно и наберите следующий текст шаблона:

CONNECT '%DiagramProp (IB_DBName)'

USER '%DiagramProp (IB_DBName)'

PASSWORD '%DiagramProp (IB_Password)'

Встроенный макроязык, использующийся в ERwin, содержит около двухсот макрокоманд. В приведенном тексте шаблона мы воспользовались макросом %DiagramProp (UDP Name)', извлекающим значение пользовательского свойства по имени этого свойства диаграммы.

12

Размещено на http://www.allbest.ru/

12

Размещено на http://www.allbest.ru/

Процесс ввода текста шаблона можно упростить, если вызвать на экран вспомогательное окно Template Toolbox (кнопка Toolbox) (рис. 2.6).

Использование макросов. В левой части этого окна находятся списки, содержащие имена макросов, относящихся к сущностям (Entity Macro), связям (Relationship Macro), атрибутам (Attribute Macro), ограничениям (Constrain Macro), а также макросы общего назначения (Miscellaneous Macro).

В центральной части, в окне Description выводится синтаксис выделенного макроса и пример его использования для фрагмента схемы, приведенного в правой части диалога.

Если щелкнуть дважды по выбранному имени макроса, то оно будет вставлено в то место редактируемого текста шаблона, где была оставлена отметка курсора.

Нажмите кнопку Close и вернитесь в редактор Schema Script Template Editor. В окне Schema Script Template будет виден фрагмент текста создаваемого шаблона, содержащей введенный макрос.

После окончания редактирования шаблона нажмите кнопку ОК и вернитесь в редактор свойств схемы (рис. 2.7).

12

Размещено на http://www.allbest.ru/

Подключение шаблона к схеме. В верхней части диалогового окна имеется два списка - подключенных скриптов (Attached Script), и неподключенных скриптов (Unattached Script). Написанный нами шаблон появился в правом списке - неподключенных скриптов. Для того, чтобы он сработал при генерации, его необходимо подключить к схеме.

Выделите шаблон в правом списке и нажмите кнопку Attach (подключить).

Имя шаблона переместится в левый список, а в окне Script Template появится текст шаблона, который мы создали ранее (рис.2.8).

В окне, находящемся справа и озаглавленном Script Expansion выводится результат работы шаблона:

CONNECT 'c:\ib\bd1.gdb'

USER 'SYSDBA' PASSWORD 'masterkey';

В этом шаблоне извлекаются и раскрываются пользовательские свойства. В частности, %DiagramProp (IB_DBName) раскрывается в c:\ib\bd1.gdb, %DiagramProp (IB_UserName) - в SYSDBA, %DiagramProp (IB_Password) - в masterkey.

Нажмите на кнопку ОК.

12

Размещено на http://www.allbest.ru/

Проверка работоспособности скрипта. Сгенерируйте схему БД (Tasks/Forward Engineer/Schema Generation) и в окне предварительного просмотра (Preview) убедитесь в том, что в начале сценария добавились строки подключения к БД.

Замечание 4. Скрипт будет изменять содержание сценария только в том случае, когда на странице Options диалога Schema Generation будет установлен флажок для объекта Schema.

2.3.2.2 Создание пользовательских свойств для обслуживания автоинкрементных полей таблиц

Генераторы и триггеры. Для реализации механизма обслуживания автоинкрементного поля необходимы два компонента: генератор уникального значения и триггер, который должен присваивать это значение при вставке новой записи в таблицу с автоинкрементным ключом.

Генераторы и триггеры создаются специальными запросами (CREATE GENERATOR и CREATE TRIGGER), которые должны быть расположены в сценарии создания БД после SQL-запросов создания таблиц (CREATE TABLE) для каждой таблицы, имеющей автоинкрементный ключ.

Запросы CREATE GENERATOR и CREATE TRIGGER могут быть созданы обычным способом в процессе редактирования текста сценария. Мы рассмотрим способ, основанный на использовании механизмов пользовательских свойств и шаблонов. Этот способ особенно эффективен при большом числе таблиц, содержащих автоинкрементные поля [6].

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

Перейдите в режим логической схемы и выберите пункт Edit/UDPs. В диалоге свойств установите в списке Class объект Attribute. Создайте свойство, например, с именем generate_id типа List и назначьте ему значения по умолчанию "yes, ~no" (рис.2.9).

Перейдите в редактор атрибутов модели (Edit/Attribute). Теперь значение "no" пользовательского свойства generate_id видно у всех атрибутов модели. Поменяйте это значение на "yes" у генерируемых автоинкрементных ключевых атрибутов (рис. 2.10).

12

Размещено на http://www.allbest.ru/

После того, как автоинкрементные атрибуты помечены, необходимо создать шаблон и подключить его к указанным таблицам.

SQL-запросы для создания генераторов и триггеров. Договоримся, что генераторы мы будем называть по имени поля с прибавлением строки "_gen". Например, если таблица PART_TYPE содержит поле equip_type_id, значение которого должен давать генератор, то имя этого генератора будет equip_type_id_gen. SQL-запрос на создание генератора для этого поля будет иметь вид: CREATE GENERATOR equip_type_id_gen;

Пусть также имена триггеров образуются от имен триггера для таблиц с добавлением "_GEN_ID". Тогда имя триггера для таблицы PART_TYPE будет PART_TYPE_GEN_ID, а запрос на создание триггера:

SET TERM!!

CREATE TRIGGER PART_TYPE_GEN_ID FOR PART_TYPE

BEFOR INSERT AS

BEGIN

new.equip_type_id = gen_id (equip_type_id_gen,1);

END!!

SET TERM;!!

12

Размещено на http://www.allbest.ru/

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

Перейдите в режим физической модели, выберите пункт Edit/Table и щелкните по закладке Pre & Post Script. Эта страница практически совпадает с одноименной страницей редактора, рассмотренного ранее (рис. 2.7).

Щелкните по кнопке "Script Template" и перейдите в редактор шаблонов уже рассмотренный нами выше.

Создайте новый скрипт, назвав его "Создание генератора". В окне Table Script Template наберите следующий текст шаблона:

%For EachAtt (%TableName)

{

% if (% = = (%AttProp (generate_id), yes))

{CREATE GENERATOR % AttFiledName_gen;

SET TERM %DBMS TriggerDelim;

CREATE TRIGGER %TableName_GEN_ID FOR %TableName

BEFORE INSERT AS

BEGIN

new.%AttFiledName = gen_id (%AttFiledName_gen,1);

END %DBMS TriggerDelim

SET TERM; %DBMS TriggerDelim

}

}

Замечание. Нажмите кнопку ОК. Имя созданного шаблона должно появиться в правом списке - списке неподключенных скриптов.

Анализ текста шаблона. Как и в обычном языке программирования в макроязыке ERwin имеются макросы - операторы цикла, условные операторы и операторы сравнения. Например, для организации цикла-перебора всех атрибутов таблицы служит макрос

%ForEachAtt (%TableName)

{...}

Все находящееся в фигурных скобках, будет выполняться для каждого атрибута таблицы %TableName. Макрос %TableName при "раскрытии" шаблона разворачивается в имя таблицы, то есть таблицы (из списка таблиц), к которой данный шаблон подключен.

Условный макрос

% if (% = = (%AttProp (generate_id), yes))

{...}

является аналогом условного оператора if языков высокого уровня. В качестве логического выражения в данном случае используется макрооператор сравнения % = =. Принцип работы приведенного фрагмента шаблона заключается в следующем: проверяется, равно ли у атрибута значение свойства generate_id = yes, и если равно, то выполняется все, что находится в фигурных скобках, то есть создается генератор и триггер.

Макрос %AttProp (generate_id) извлекает значение свойства "generate_id", подключенное к атрибуту, а %AttFiledName разворачивается в имя колонки таблицы, соответствующей атрибуту сущности.

И, наконец, в шаблоне имеется макроопределение %DBMS TriggerDelim, заменяющееся при обработке шаблона в разделитель триггера "!!". Эта последовательность символов была выбрана в диалоге TargetServer в поле Trigger Delimiter.

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

Однако, это можно сделать быстрее и удобнее, воспользовавшись просмотрщиком - браузером скриптов (рис. 2.11). Для его вызова нажмите кнопку Script Browser.

12

Размещено на http://www.allbest.ru/

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

Выйдите из редактора таблиц Interbase Table Editor и выполните генерацию схемы базы данных. Убедитесь, что после SQL-запросов создания таблиц CREATE TABLE появились строки создания генераторов и триггеров.

2.3.2.3 Создание шаблонов для вставки, изменения и удаления записей

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

Для большинства таблиц модели, запрос на создание процедуры вставки записи имеет такой вид []:

SET TERM!!;

CREATE PROCEDURE <имя процедуры> (<параметр тип>,<параметр тип>...) AS

BEGIN

INSERT INTO <имя таблицы> (<имя поля>,<имя поля>...)

VALUES (<: параметр>, <: параметр>...);

END!!

SET TERM;!!

SQL-выражение SET TERM устанавливает в качестве разделителя последовательность символов !!, точно также, как мы сделали это и для триггера, а по окончании процедуры возвращается старое значение разделителя - ";".

Имя процедуры удобно образовать из имени таблицы, добавив перед ним префикс "ins_". Параметрами процедуры будут все поля таблицы, кроме автоинкрементного поля, значение которого генерируется триггером.

К примеру, для таблицы PART_TYPE (тип оборудования) имеющей поле equip_name (наименование типа) процедура вставки создается следующим запросом:

SET TERM!!;

CREATE PROCEDURE ins_part_type (equip_name CHAR (30))

AS

BEGIN

INSERT INTO PART_TYPE (equip_name)

VALUES (:equip_name);

END!!

SET TERM;!!

Точно также процедура изменения записи таблицы должна иметь вид:

SET TERM!!;

CREATE PROCEDURE <имя процедуры> (<параметр тип>, <параметр тип>...)

AS

BEGIN

UPDATE <имя таблицы> SET

<имя поля>=<: параметр>,

<имя поля>=<: параметр>...

WHERE <ключ>=<параметр>AND<ключ>=<параметр>...;

END!!

SET TERM;!!

Имя процедуры мы также создадим из имени таблицы, добавив к нему префикс "upd_".

В отличие от предыдущей процедуры параметры здесь должны содержать и ключевое поле, по которому ставится условие в запросе UPDATE. Для той же таблицы PART_TYPE (с ключевым полем equip_type_id) процедура выглядит так:

SET TERM!!;

CREATE PROCEDURE upd_part_type (equip_type_id SMALLINT, equip_name CHAR (30))

AS

BEGIN

UPDATE PART_TYPE SET

equip_name = : equip_name

WHERE equip_type_id = : equip_type_id;

END!!

SET TERM;!!

Шаблоны хранимых процедур.

Вставка записи

SET TERM %DBMSTriggerDelim ;

CREATE PROCEDURE ins_%Lower(%TableName)

( %ForEachAtt(%TableName,',') {

%If (%Not(%AttIsPK)) {%AttFieldName %AttDataType }}

) AS BEGIN

INSERT INTO %TableName (%ForEachAtt( ) {

%ForEachAtt (%TableName,',') { %If (%Not(%AttIsPK)) {%AttFieldName }})

VALUES (%ForEachAtt(%TableName,',') {

%If (%Not(%AttIsPK)) {:%AttFieldName}});

} END%DBMSTriggerDelim

SET TERM ; % DBMSTriggerDelim

Изменение записи

SET TERM %DBMSTriggerDelim ;

CREATE PROCEDURE upd_%Lower(%TableName)

( %ForEachAtt(%TableName,',') {%AttFieldName %AttDataType})

AS BEGIN

UPDATE %TableName SET

%ForEachAtt (%TableName,',')

{%If(%Not(%AttIsPK)) {%AttFieldName=:%AttFieldName}}

WHERE

%ForEachAtt(%TableName,'and')

{If (%AttIsPK) {%AttFieldName=:%AttFieldName}};

END%DBMSTriggerDelim

SET TERM ; %DBMSTriggerDelim

Удаление записи

SET TERM %DBMSTriggerDelim ;

CREATE PROCEDURE del_%Lower(%TableName) (%ForEachAtt(%Tablename,',')

{%If(%AttIsPK){%AttFieldName %AttDataType}})

AS BEGIN

DELETE FROM %TableName

WHERE

%ForEachAtt(%Tablename,'and')

{%If(%AttIsPK) {%AttFieldName=:%AttFieldName}} ;

END%DBMSTriggerDelim

SET TERM ; %DBMSTriggerDelim

Создание и подключение шаблонов к таблицам. ERwin не имеет встроенных шаблонов хранимых процедур, которые можно было бы использовать как основу при создании новой хранимой процедуры.

12

Размещено на http://www.allbest.ru/

Создание шаблонов и привязка их к таблицам выполняется в редакторе таблиц Table Editor. Вызовите редактор таблиц и перейдите на страницу Stored Procedure. Появится закладка Stored Procedure диалога Table Editor (рис. 2.12).

Список Attached SP Template содержит имена процедур, связанных с проектируемой таблицей. Список Unattached SP Template содержит имена процедур, которые могут быть связаны с таблицей. Кнопки <Attach и Detach> служат для связывания и открепления процедуры от таблицы.

Перейдите в редактор шаблонов, нажав кнопку SP Template. Создайте три новых шаблона, назвав их "Вставка записи", "Изменение записи" и "Удаление записи". Введите тексты шаблонов, приведенных выше. Вернитесь в окно редактора таблиц и подключите вновь созданные шаблоны к соответствующим таблицам модели. Код шаблона показывается в окне SP Template, код процедуры - в окне SP Expansion.

Глава 3. Перенос структуры данных с одного сервера на другой

3.1 Обратное проектирование

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

12

Размещено на http://www.allbest.ru/

Для выполнения обратного проектирования следует выбрать пункт меню Tasks/Reverse Engineer. При этом возникает диалог ERwin Template Selection (рис. 3.1), в котором нужно выбрать шаблон диаграммы, затем диалог выбора СУБД и, наконец, диалог задания опций обратного проектирования Reverse Engineering-Set Options (рис. 3.2). В этом диалоге можно задать следующие опции:

12

Размещено на http://www.allbest.ru/

Группа Reverse Engineer From позволяет задать источник обратного проектирования - БД или SQL-скрипт. При помощи кнопки Browse можно выбрать текстовый файл, содержащий SQL-скрипт.

Группа Items to Reverse Engineer позволяет задать объекты, на основе которых будет создана модель. При помощи списка выбора Option Set, а также кнопок New, Update и Delete можно создавать и редактировать именованные конфигурации объектов БД, которые могут быть использованы многократно при других сеансах обратного проектирования. Этот механизм особенно удобно использовать в процессе изучения влияния выбора различных опций на результаты обратного проектирования.

Группа Reverse Engineer позволяет включить в модель системные объекты (окно выбора System Objects) и установить фильтр на извлекаемые таблицы по их владельцу.

Установка опции Primary Key в группе Infer означает, что ERwin будет генерировать первичные ключи на основе анализа индексов. Если включена опция Relations, ERwin будет устанавливать связи на основе имен колонок первичного ключа или индексов. Эти опции имеют смысл, только если связи не прописаны явно.

Группа Case Conversion позволяет задать опции конвертизации регистра при создании логических и физических моделей.

12

Размещено на http://www.allbest.ru/

Опция Import View Base Tables указывает, что ERwin будет устанавливать связи между представлениями и таблицами. Если опция включена или SQL-команда создания представления содержит сложные конструкции (например, агрегативные функции), колонки представления импортируются как определяемые пользователем.

После установки необходимых опций необходимо щелкнуть по кнопке Next, после чего появляется диалог связи с БД, устанавливается процесс обратного проектирования, во время которого появляется статус процесса в диалоге Reverse Engineer-Status. В результате процесса создается новая модель данных.

3.2 Синхронизация системного каталога БД и текущей модели

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

Для синхронизации системного каталога БД и текущей модели следует выбрать пункт меню Tasks/Complete Compare или нажать кнопку

на панели инструментов. Возникает диалог Complete Compare Set Options, который во многом похож на описанный выше диалог Reverse Engineer Set Options. Разница заключается в том, что в отличие от обратного проектирования сравнивать текущую модель можно не только с БД или SQL-скриптом, но и с другой моделью ERwin, хранящейся в файле.

После нажатия на кнопку Next диалога Complete Compare Set Options возникает диалог связи с БД, устанавливается сеанс связи с сервером и в диалоге Complete Compare Resolve Differences показывается текущее состояние модели (слева) и системного каталога СУБД (справа) (рис. 3.3).

Линейка индикаторов, расположенная между двумя списками, в начале процесса синхронизации показывает наличие (изображены два квадрата разного цвета) или отсутствие (изображен прямоугольник) разницы между объектами сравниваемых структур.

Если выделить одну их строк состояния модели или системного каталога, та в правой части диалога активизируются кнопки, позволяющие задать один из режимов синхронизации:

EXPORT - экспорт объекта из модели в БД;

IMPORT - импорт объекта из БД в модель;

IGNORE - игнорирование различия между моделью и БД;

DELETE - удаление объекта из БД.

Разработчик должен выделить строку несоответствия сравниваемых структур и нажать одну из кнопок, которая, по его мнению, позволяет ликвидировать это несоответствие.

12

Размещено на http://www.allbest.ru/

Кнопки Match и UnMatch предназначены для связывания объектов модели и БД, имеющих разные имена. Например, в модели ERwin таблице CUSTOMER соответствует таблица CUST в БД. По умолчанию ERwin определяет, что это разные объекты, хотя по смыслу это одно и то же. Для того чтобы ERwin правильно провел синхронизацию, необходимо вручную связать эти две таблицы. Для связывания таблиц необходимо щелкнуть по кнопке Match, затем по таблице модели (левый список) и, наконец, по таблице БД (правый список). Кнопка UnMatch служит для отмены связывания таблиц.

Кнопка Report позволяет сгенерировать отчет о синхронизации, кнопка Preview вызывает диалог Preview SQL Commands, в котором показывается SQL-скрипт, выполняемый для проведения синхронизации.

После щелчка по кнопке Next возникает диалог Complete Compare Import Changes, в котором можно задать дополнительные опции синхронизации. касающиеся модификации модели (рис. 3.4).

Группа Case Conversion of Logical Names позволяет задать регистр имен создаваемых в модели объектов.

Группа If Table to Import Exist in Model позволяет задать опции генерации схемы в случае, если таблица уже существует в модели. Может быть использована существующая таблица (Use Existing Table) либо создана дублирующая (Create Duplicate Table).

Опции Primary Keys, Relation и Import Base Tables имеют то же назначение, что и соответствующие опции диалога Reverse Engineer Set Options (см. выше).

Кнопка Start Import служит для запуска процесса импорта в модель.

Заключение

Объектно-ориентированное программирование нацелено на разработку крупных программных комплексов, разрабатываемых командой программистов (возможно, достаточно большой). Проектирование системы в целом, создание отдельных компонент и их объединение в конечный продукт при этом часто выполняется разными людьми, и нет ни одного специалиста, который знал бы о проекте всё.

Объектно-ориентированное проектирование состоит в описании структуры и поведения проектируемой системы, то есть, фактически, в ответе на два основных вопроса: 1. Из каких частей состоит система. 2. В чём состоит ответственность каждой из частей.

Выделение частей производится таким образом, чтобы каждая имела минимальный по объёму и точно определённый набор выполняемых функций (обязанностей), и при этом взаимодействовала с другими частями как можно меньше.

Дальнейшее уточнение приводит к выделению более мелких фрагментов описания. По мере детализации описания и определения ответственности выявляются данные, которые необходимо хранить, наличие близких по поведению агентов, которые становятся кандидатами на реализацию в виде классов с общими предками. После выделения компонентов и определения интерфейсов между ними реализация каждого компонента может проводиться практически независимо от остальных (разумеется, при соблюдении соответствующей технологической дисциплины).

Большое значение имеет правильное построение иерархии классов. Одна из известных проблем больших систем, построенных по ООП - технологии - так называемая проблема хрупкости базового класса. Она состоит в том, что на поздних этапах разработки, когда иерархия классов построена и на её основе разработано большое количество кода, оказывается трудно или даже невозможно внести какие-либо изменения в код базовых классов иерархии (от которых порождены все или многие работающие в системе классы). Даже если вносимые изменения не затронут интерфейс базового класса, изменение его поведения может непредсказуемым образом отразиться на классах-потомках. В случае крупной системы разработчик базового класса не просто не в состоянии предугадать последствия изменений, он даже не знает о том, как именно базовый класс используется и от каких особенностей его поведения зависит корректность работы классов-потомков.

Список литературы

1. Уэнди Боггс, Майкл Боггс: UML и Rational Rose, 2008 г.

2. Материалы сайта www.interface.ru

3. Материалы сайта www.sql.ru

Размещено на Allbest.ru


Подобные документы

  • Прямое проектирование баз данных: создание драйвера, генерация каталога, выполнение Script-файла. Использование свойств, определяемых пользователем, шаблонов скриптов. Перенос структуры данных с одного сервера на другой, синхронизация системного каталога.

    курсовая работа [1,5 M], добавлен 26.11.2011

  • ERwin как средство разработки структуры базы данных. Внешний вид диалогового окна Entity Edition. Общий вид модели после создания сущностей. Вид логической модели после создания связей. Диалоговое окно New Key Group, окончательный вид логической модели.

    лабораторная работа [559,0 K], добавлен 16.07.2013

  • Характеристика программных продуктов ERwin, Microsoft Excel и Access. Создание сущностей и связей, преобразование логической модели в физическую в среде ERWin. Создание таблиц в MS Access, работа с запросами и отчетами. Построение диаграмм в MS Excel.

    курсовая работа [2,5 M], добавлен 09.12.2013

  • Построение инфологической концептуальной модели предметной области. Структура базы данных Microsoft Office Access. Формы, запросы и отчеты. Создание форм, запросов и отчетов в базах данных. Схема данных физической и логической сущности в Erwin 4.0.

    курсовая работа [5,1 M], добавлен 13.12.2011

  • Сущность базы данных. Процесс построения концептуальной модели. Построение реляционной модели, создание ключевого поля. Процесс нормализации. Проектирование базы данных в ACCESS. Порядок создание базы данных. Создание SQL запросов и работа в базе данных.

    курсовая работа [185,6 K], добавлен 08.11.2008

  • Проектирование модели базы данных с помощью Erwin: выделение сущностей предметной области и их атрибутов. Разработка SQL-скрипта, предназначенного для генерации базы данных в формате MS SQL Server 2005. Создание процедур и написание проверочных кодов.

    контрольная работа [1,1 M], добавлен 31.03.2012

  • Описание предметной области разрабатываемой базы данных для теннисного клуба. Обоснование выбора CASE-средства Erwin 8 и MS Access для проектирования базы данных. Построение инфологической модели и логической структуры базы данных, разработка интерфейса.

    курсовая работа [3,8 M], добавлен 02.02.2014

  • Построение модели вариантов использования для актантов с использованием конструкций языка UML. Перенос логической модели данных в среду СУБД Access. Тестирование базы данных. Создание форм для просмотра и редактирования, отчетов, запросов, макросов.

    курсовая работа [568,7 K], добавлен 15.03.2015

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

    курсовая работа [2,1 M], добавлен 17.06.2013

  • Базы данных с двумерными файлами и реляционные системы управления базами данных (СУБД). Создание базы данных и обработка запросов к ним с помощью СУБД. Основные типы баз данных. Базовые понятия реляционных баз данных. Фундаментальные свойства отношений.

    реферат [57,1 K], добавлен 20.12.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.