Руководство по программному пакету ERwin

         

База данных


Определение: Базой данных называется зарезервированный объем пространства на одном или нескольких устройствах хранения, используемые для хранения данных и определений объектов базы данных, таких как таблицы и индексы. Чтобы создать базу данных в Oracle, Вы должны иметь привилегию DBA для работы с базой данных.

Имя параметра

Что определяет параметр

Значе-ние по умол-чанию

Диа-пазон

ARCHIVE LOG

Cостояние автоматического архивирования. Поставьте метку в этом окне, чтобы включить автоматическое архивирование информации log, используемой при восстановлении. Оставьте окно пустым, если Вы не хотите использовать автоматическое архивирование.

Off

On

Off

CHARACTER SET

Набор символов, используемый базой данных. Все данные в колонках типов CHAR, VARCHAR2, LONG хранятся в заданном наборе символов. После того как база данных создана, набор символов не может быть изменен. В США обычно используется набор символов US7ASCII.

   

CONTROL FILE REUSE

Статус повторного использования управляющего файла. Поставьте метку в этом окне, чтобы позволить Oracle переписать информацию в управляющих файлах, определенных в параметре INIT. ORA CONTROL_FILES. Оставьте окно пустым, если Вы не хотите, чтобы Oracle повторно использовал управляющие файлы.

Off

On

Off

DATAFILE

Имена всех файлов данных в БД. Просмотрите список, чтобы увидеть, какие файлы данных есть в базе.

   

EXCLUSIVE

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

Off

On

Off

LOGFILE Имена всех log файлов в базе данных.    
MAXLOGFILES Максимальное число log групп, которые можно создать для базы данных.   2-56
MACLOGMEMBERS Максимальное число членов в каждой log группе (поддерживается Oracle7 и более поздними версиями).    
MAXLOGHISTORY Объем памяти, который должен быть зарезервирован в управляющем файле для имен групп архивных log файлов транзакций (поддерживается Oracle7 и более поздними версиями).    
MAXDATAFILES Максимальное число полей данных, которое можно назначить для базы данных. зависит от конкретной ОС 1-верхний предел зави-сит от ОС
MAXINSTANCES Максимальное число экземпляров, для которых одновременно может быть установлена база данных. 3 1-255



Что такое хранимые процедуры?


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

Например, в конце каждого месяца фирма по прокату видеопродукции может захотеть получить список всех фильмов, которые никто не брал в последние 30 дней, и выставить их на распродажу. Чтобы ускорить выполнение этого рутинного запроса, Вам нужно создать хранимую процедуру под названием 'sp_norental', выдающую список всех фильмов, которые никто не брал за последний месяц. В последний день каждого месяца, когда Вы выбираете эту процедуру из меню клиентского приложения, клиент пересылает по сети на сервер только имя хранимой процедуры, и сервер автоматически выполняет все коды, связанные с этим именем. Поскольку весь код процедуры хранится на сервере, Вам не нужно писать все команды SQL, нужные для выполнения запроса, и пересылать их по сети каждый раз, когда Вы хотите найти фильмы, на которые нет спроса, и убрать их со склада.

Поскольку триггеры и хранимые процедуры имеют большое значение для ускорения работы и поддержания целостности, ERwin располагает специальными редакторами Trigger и Stored Procedure со встроенными шаблонами и мощными макрокомандами, которые могут существенно ускорить процесс создания этих процедур SQL.

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



Что такое индекс?


В таблице реляционной базы данных данные обычно хранятся в том же порядке, в котором их ввели в таблицу. Хотя такой способ хранения и позволяет Вам быстро вводить новые данные, но поиск нужной строки в таблице представляется трудным. Например, в таблице MOVIE могут храниться тысячи названий фильмов в том порядкке, в котором эти фильмы закупались фирмой проката видеопродукции. Если Вам нужно найти какой-то определенный фильм, например 'Танцы с волками', он может храниться в любом месте таблицы MOVIE в зависимости от того, когда его приобрели и ввели в базу данных. Представьте себе, сколько времени может занять поиск 'Танцев с волками', если просматривать по порядку все строки в таблице.

Чтобы решить эту проблему поиска данных, СУБД использует особый тип файла, называемый индексом. Точно так же, как содержание (Index) книги помогает Вам быстро найти информацию, поскольку содержит все номера страниц книги, посвященных конкретной теме, так и в базе данных, если информация, хранящаяся в колонке, индексирована, то индекс указывает на все строки, в которых хранится конкретное значение колонки.

Например, если фирма проката видеопродукции нуждается в быстром поиске фильмов по их названию, то Вы можете создать индекс по колонке movie_name таблицы MOVIE. В индексе movie-name названия фильмов отсортированы в алфавитном порядке. Для каждого названия фильма индекс ссодержит ссылку, указывающую, в каком месте таблицы хранится этот фильм.

Когда Вам нужно найти какой-то фильм, Вы вводите соответствующий критерий поиска (movie-name='Танцы с волками'), как выражение в запросе. При выполнении запроса СУБД просматривает индекс, чтобы найти, где хранится нужный фильм, вместо того чтобы просматривать по порядку все строки таблицы MOVIE. Поскольку значения в индесе хранятся в определенном порядке и нужно просматривать значительно меньший объем данных, использование индекса для поиска нужной информации гораздо быстрее, чем просмотр требуемых таблиц базы данных.

Вы можете создать свой индекс для каждой колонки в таблице, если Вам часто бывает нужно найти какие-то значения, хранящиеся в этой колонке.
Например, Вы можете захотеть искать фильмы по признаку movie-rating (например, 'PG') или по размеру арендной платы (например, менее $3.50 в день). Вы также можете создать единый индекс на основе нескольких колонок для поиска определенного набора значений. Например, если Вы создадите единый индекс по всем колонкам первичного ключа таблицы MOVIE-RENTAL-RECORD (renting-customer, master-number, movie-copy-number, rental-record-date), и отсортируете этот индекс по убыванию по rental-record-date, то сможете быстро найти, кто последним брал какую-то определеннуую копию 'Крестного отца'.

Когда Вы генерируете схему физической базы данных, ERwin автоматически создает отдельный индекс на основе первичного ключа каждой таблицы, а также на основе всех альтернативных ключей, внешних ключей и Inversion Entry, поскольку эти колонки наиболее часто используются для поиска данных. Используя любой из автоматически сгенерированных индексов в качестве точки отсчета, ERwin позволяет Вам легко создавать новые индексы по мере того, как изменяются Ваши потребности. Когда Вы создаете новый индекс, Вы можете присвоить ему разные колонки и изменить порядок, в котором отсортированы значения в индексе, так чтобы были удовлетворены требования поиска Ваших конкретных приложений, работающих с базами данных.




Что такое триггеры?


Триггером называется именованный набор прекомпилированных команд SQL, хранящийся на сервере, который автоматически выполняется, когда происходит заданное событие. Например, триггер может выполняться при вставке, изменении или удалении строки в существующей таблице. Триггер сообщает СУБД, как нужно выполнять команды SQL INSERT, UPDATE или DELETE, чтобы выполнялись нормальные правила (business rules) организации.

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

Предположим, например, что в фирме проката видеопродукции существует правило, согласно которому фильм нельзя удалять из списка, если какие-то копии этого фильма в данный момент находятся на руках. Что произойдет, если Вы попытаетесь удалить название фильма, в то время как копия этого фильма находится на руках? Если Ваша СУБД поддерживает RI-триггеры, то команда DELETE языка SQL может быть обработана одним из следующих способов:

· Запрещается удаление фильма из таблицы MOVIE. Правило ссылочной целостности, запрещающее вставку, изменение или удаление строки, называется RESTRICT.

· Фильм удаляется из таблицы MOVIE и все строки в таблицах MOVIE-COPY и MOVIE-RENTAL-RECORD с тем же номером фильма, что и у удаленной строки, также автоматически удаляются. Правило ссылочной целостности, передающее изменение от одной таблицы к другой, называется CASCADE. Обратите внимание, что если Вы примените это правило ссылочной целостности к данной ситуации с фильмом, у Вас не будет возможности проследить за той копией удаленного фильма, которая находится на руках. Для таких ситуаций Вы можете переопределить триггер ссылочной целостности, устанавливаемый по умолчанию, так что информация о копии фильма и о том, у кого она находится, не стиралась бы случайно.




· Фильм удаляется из таблицы MOVIE, но номеру фильма для той копии, которая находится на руках, в таблице MOVIE-RENTAL-RECORD автоматически присваивается нулевое значение (пустое поле), что говорит о том, что Вы больше не планируете работать с этим фильмом. После того как последняя копия фильма будет возвращена, ее можно выставить для окончательной продажи, а не возвращать на нормальный склад для последующейсдачи в прокат. Правило ссылочной целостности, изменяющее текущее значение данных на нулевое, называется SET NULL.

· Хотя Вы и не можете использовать триггеры для усиления ссылочной целостности, если у Вас установлена РС-ориентированная СУБД, ERwin все-таки предоставляет альтернативный способ усиления ссылочной целостности в случае СУБД Fox Pro. См. руководство по ERwin для РС-ориентированных СУБД, ERwin Desktop Database Guide, разд. 'Усиление ссылочной целостности для таблиц Fox Pro'.





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


Cловарь сущностей ERwin


В этой таблице содержатся имена и определения всех сущностей в метамодели словаря ERwin.

Сущности метамодели ERwin

Имя сущности

Определение сущности

DEFAULT Значение по умолчанию. Может быть присвоено колонке или домену.
DOMAIN (Глобальный) домен для атрибута или атрибутов, в котором заданы правило валидации, значение по умолчанию, тип данных и т.д. Его нееобходимо связать с атрибутом.
DOMAIN PV Значение характеристики домена. Строка в этой таблице может быть физическим типом данных, правилом валидации и т.д.
VALID VALUE Допустимые значения. Запись в этой таблице - один элемент из списка допустимых значений для конкретной колонки.
VALIDATION RULE Правило валидации. Его можно связать с домном или непосредственно с колонкой. Содержит выражение или список допустимых значений для конкретной колонки.
ENTITY INDEX Индексы по первичному, альтернативному ключу и Inversion Entry.
ENTITY PHYSICAL PV Физические параметры и значения, определяемые конкретной СУБД и связанные с таблицей, в которой хранятся данные, относящиеся к сущности.
ENTITY STORED PROCEDURE TEMPLATE Связывание фрагмента кода с сущностью для генерации хранимой процедуры.
ENTITY TRIGGER Код триггера, связанный с определенной сущностью.
ERWIN COLOR Таблица цветов, использумых в диаграмме.
ERWIN DIAGRAM Список текущих диаграмм ERwin. В ERX 1.1 есть только одна диаграмма. [не хранимая сущность]
ERWIN DIAGRAM OPTION Список состояний и значений всех режимов ERwin для сохраненной диаграммы.
ERWIN DIAGRAM VIEW OBJECT Объект ERwin с графическими координатами, расположенный в представлении (view). эта сущность используется, чтобы обеспечить множество разных представлений Вашей диаграммы, ккаждое из них - со своими графическими координатами.
ERWIN ENTITY Объект, информацию о котором Вы должны хранить. Этот объект должен идентифицироваться по ключу.
ERWIN ENTITY-ATTRIBUTE USAGE Использование атрибута ERwin в сущности (EAU). Хотя мы не показываем подтип в этой модели ERX, все атрибуты являются собственными или внешними. Имена собственных атрибутов являются уникальными в данной сущности (но не обязательно в диаграмме).
ERWIN FONT Таблица шрифтов, используемых в диаграмме.
ERWIN RELATIONSHIP Связывает родительскую и дочернюю сущности и может быть путем миграции внешних ключей.
ERWIN REPORT Именованный формат отчета для генерации схемы или других отчетов, поддерживаемых ERwin.
ERWIN REPORT OPTION Режим в именованном отчете; соответствует метке Х в одном из отчетов ERwin. Пример: CREATE TABLE для Schema Generation Report.
ERWIN SUBTYPE RELATIONSHIP Эта сущность ERX, называемая также ПОДКАТЕГОРИЕЙ, служит для представления логической связи между дочерней 'подкатегорной' сущностью (подтипом) и родительским 'обобщением' (надтипом).
GLOBAL TEMPLATE Связывание шаблона с глобальным правилом ссылоччной целостности для связи или сегментом header/footer триггера.
INDEX MEMBER Колонки индекса.
INDEX MEMBER PHYSICAL PV Физические характеристики колонок индекса, которые определяются вв зависимости от используемой СУБД.
INDEX PHYSICAL PV Физические характеристики индекса.
PHYSICAL OBJECT Физический объект базы данных, например ORACLE: TABLESPACE, ROLLBACK SEGMENT и т.д.
PHYSICAL OBJECT PV Характеристики физического объекта базы данных, например ORACLE: PCTFREE, PCTUSSED и т.д.
REL PHYSICAL PROPERTY Служит для представления характеристик сввязи, определяемых в зависимости от используемой СУБД.
RELATIONSHIP TEMPLATE Адаптированный фрагмент кода триггера, основанный на ссылочной целостности связи. Фрагмеент кода пишется на макроязыке триггера ERwin (Trigger Macro Language).
STORED DISPLAY Графическое представление области, содержащее координаты сущностей и связей и графические режимы демонстрации изображения.
SUBJECT AREA Подмножество сущностей модели. Сущности в этом подмножестве могут иметь несколько независимых способов графического расположения.
TABLE CONSTRAINT Правило валидации, связанное с таблицей и задающее условие для допустимой записи.
TEMPLATE Фрагмент кода на языке ERwin Trigger Macro Language, используемый в триггерах, хранимых процедурах, пре- и пост-скриптах.
TEXT BLOCK Любой блок текста, связанный с view диаграммы ERwin.
TRIGCOLS Колонки UPDATE триггера сущности.
[ERWIN ATTRIBUTE] 'Логическая' сущность, атрибуты - характеристики сущностей. Не обязательно, чтобы они действительно использовались в сущности. Когда они используются в сущности, они связаны с колонками описания физической таблицы (не распространяется на случай хранимой сущности).
[ERWIN DIAGRAM OBJECT] Любой объект, определенный в диаграмме (не распространяется на случай хранимой сущности).
[ERWIN OBJECT] Объект ERwin независим от диаграммы и совместно используется пользователями и диаграммами. Это - описание объекта, при помощи которого описывается объект ERwin. Один и тот же объект может присутствовать в различных представлениях (view) одной и той же диаграммы. Он также может встречаться в различных диаграммах (не распространяется на случай хранимой сущности).



Cодержание главы


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

В этой главе Вы узнаете, как:

· Форсировать использование уникальных имен сущностей и атрибутов.

· Классифицировать и редактировать кардинальность связи.

· Демонстрировать и читать конструкции 'сущность-связь' как бизнес-утверждения.

· Задавать правила ссылочной целостности для связи.


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

В этой главе Вы узнаете, как:

· Показать или убрать меню Editor.

· Перенести на другое место отдельную сущность в ERwin.

· Выбирать и переносить несколько сущностей.

· Обращаться к меню сокращений, ориентированному на сущность.

· Создать новую сущность.

· Открыть редактор Entity-Attribute для сущности.

· Открыть редактор Entity Definition.

· Открыть редактор Attribute Definition.

· Открыть редактор Attribute Note.



ERwin Toolbar


ERwin Toolbar находится в верхней части окна ERwin. Он содержит кнопки, позволяющие быстро вызвать часто используемые функции ERwin. Вы можете вызывать эти функции также и из меню. При нажатии на кнопку Toolbar ERwin выполняет связанную с ней функцию.

Если Вам нравится пользоваться Toolbar, то его нужно включить. Если же Вы предпочитаете работать с меню, то Toolbar можно выключить. Это делается с помощью переключателя 'Toolbar' в меню Window.

Как включить или выключить Toolbar

1. Для того, чтобы включить Toolbar, поставьте метку рядом с режимом 'Toolbar' в меню Window.

Для того, чтобы выключить Toolbar, щелкните кнопкой мыши и уберите метку.

Когда Вы касаетесь пиктограммы Toolbar Инструментом Выбора (т.е. указателем), то ERwin демонстрирует краткое описание его назначения в текстовом окне 'моментальной подсказки', которое появляется под пиктограммой.

Кнопки ERwin Toolbar

dd

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


Кнопка используется для:

Новая диаграмма

Открыть новую диаграмму в новом окне. См. выше в этой главе 'Как открыть диаграмму ERwin'.

 

Открыть иаграмму

Открыть имеющуюся диаграмму в новом окне. См. выше в этой главе 'Как открыть диаграмму ERwin'.

 

Сохранить диаграмму

Сохранить диаграмму, находящуюся в активном окне. См. далее в этой главе 'Как сохранить диаграмму ERwin'.

 

Печать диаграммы

Распечатать всю диаграмму или часть диаграммы, находящейся в активном окне. См. далее в этой главе 'Как распечатать диаграмму ERwin'.

 

Уровень сущности

Показать только имя сущности. См. гл.2, Уровни демонстрации в ERwin, разд. 'Уровень демонстрации сущности'.

 

Уровень атрибута

Показать имя и атрибуты сущности. См. гл.2, Уровни демонстрации в ERwin, разд. 'Уровень демонстрации атрибутов'.

 

Уровень определения сущности

Показать имя и определение сущности. См. гл.2, Уровни демонстрации в ERwin, разд. 'Уровень демонстрации определения сущности'.

 

Уровень физической
схемы

Показать физические имена в базе данных для объектов, показанных на текущем уровне демонстрации. См. гл.13, Задание информации, ориентированной на СУБД, разд. 'Задание режимов просмотра изображения на уровне физической схемы'.

Уменьшить в 2 раза Уменьшить активную диаграмму в 2 раза. Щелкните еще раз для того, чтобы вернуться к прежнему размеру. См. гл. 2, Уровни демонстрации в ERwin.
  Уменьшить в 4 раза Уменьшить активную диаграмму в 4 раза. Щелкните еще раз для того, чтобы вернуться к прежнему размеру. См. гл. 2, Уровни демонстрации в ERwin.
  Прямое проектирование (генерация
схемы БД)
Задать режимы генерации физической схемы базы данных. См. гл.18, Прямое и обратное проектирование, разд. 'Генерация схемы базы данных'.
  Синхронизация БД Синхронизировать физическую базу данных с логической моделью данных. См. гл. 13, Задание информации, ориентированной на СУБД, разд. 'Синхронизация изменений, вносимых в базу данных'.
  Подсоединиться к базе данных Подсоединиться к серверу для генерации схемы физической базы данных. См. гл. 13, Задание информации, ориентированной на СУБД, разд. 'Подсоединение к серверу БД'.
  Выбрать сервер Выбрать СУБД, которая будет использоваться для хранения физической базы данных. См. гл. 13, Задание информации, ориентированной на СУБД, разд. 'Выбор СУБД'.
  Редактор Subject Area Открыть редактор области (Subject Area) для текущей диаграммы. См. гл. 6, Области и хранимые изображения, разд. 'Использование областей для управления большими диаграммами'.



ERwin Toolbox


ERwin Toolbox - это специальное окно, содержащее инструменты типа указатель и объект, которыми Вы пользуетесь при определении модели данных. Два инструмента-указателя, расположенные в верхнем и нижнем левых углах toolbox, используются для задания режима меню или для выбора, перемещения и копирования объектов на диаграмме. Оставшиеся инструменты-объекты используются для добавления к диаграмме сущностей, связей и текстовых блоков.

Переключатель 'ERwin Toolbox', находящийся в меню Window, позволяет Вам показать или спрятать toolbox. Для того, чтобы переместить toolbox, щелкните по строке выбора (той, в которой написано 'ERwin Toolbox') и перенесите его на новое место.

Когда Вы выбираете инструмент из ERwin Toolbox, то вид указателя мыши сразу же изменяется и начинает соответствовать выбранному инструменту.

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

Как включить или выключить Toolbox

1. Для того, чтобы включить toolbox, поставьте с помощью мыши метку рядом с режимом 'ERwin Toolbox' в меню Window.

Для того, чтобы выключить toolbox, уберите с помощью мыши метку 'ERwin Toolbox' в меню Window.

Можно нажать кнопку переключателя CTRL-t. Для того, чтобы выключить toolbox, можно также щелкнуть по его управляющему окну.

Как перенести toolbox на другое место

1. Щелкните по строке выбора (она расположена над первой строкой инструментов).

2. Не отпуская левой кнопки мыши, передвиньте toolbox на другое место.

3. Отпустив левую кнопку мыши, зафиксируйте toolbox на новом месте.

Кнопки ERwin Toolbox

Кнопка

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

Для чего она используется:

  Инструмент выбора Выбрать объекты для копирования, удаления или дальнейшего редактирования. См. гл. 10, Управление диаграммами: уровень повышенной сложности, разд. 'Использование возможностей множественного выбора'.
  Инструмент управления атрибутами Копировать или переносить один или несколько выбранных атрибутов из одной сущности в другую или внутри выбранной сущности. См. гл.5, Редактирование графических объектов, разд. 'Использование инструмента управления атрибутами'.
  Независимая сущность Создать новую независимую сущность. См. гл. 3, Сущности и атрибуты ERwin, разд. 'Поддержка сущностей в toolbox'.
  Зависимая сущность Создать новую зависимую сущность. См. гл. 3, Сущности и атрибуты ERwin, разд. 'Поддержка сущностей в toolbox'.
  Полная связь подтипов Создать полную связь подтипов между родительской и дочерней сущностями. См. гл. 9, Связи: функции повышенной сложности, разд. 'Создание связей подтипов'.
  Неполная связь подтипов Создать неполную связь подтипов между родительской и дочерней сущностями. См. гл. 9, Связи: функции повышенной сложности, разд. 'Создание связей подтипов'.
  Идентифицирующая связь Создать идентифицирующую связь между двумя сущностями. См. гл.4, Связи ERwin и соответствующие редакторы, разд. 'Поддержка связей в toolbox'.
  Неидентифицирую-щая связь Создать неидентифицирующую связь между двумя сущностями. См. гл.4, Связи ERwin и соответствующие редакторы, разд. 'Поддержка связей в toolbox'.
  Неопределенная связь Создать неопределенную связь (многие-ко-многим) между двумя сущностями. См. гл. 9, Связи: функции повышенной сложности, разд. 'Создание связей многие-ко-многим'.
  Текстовый блок Создать новый блок текста. См. гл.12, Дополнительные функции демонстрации изображения, разд. 'Дополнение диаграммы текстовыми блоками'.



Генерация схемы базы данных


ERwin предоставляет Вам две возможности при генерации схемы базы данных.

· Подсоединение ERwin непосредственно к системному каталогу базы данных и генерация схемы за один шаг.

· Генерация скрипта ASCII DDL (на языке определения данных). Скрипт DDL должен быть выполнен на сервере для генерации схемы, и это должно быть отдельное действие. См. далее в этой главе разд. 'Сохранение отчета о генерации схемы'.

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

Чтобы сгенерировать схему, Вы должны сначала определить и затем выполнить специальный тип отчета ERwin, который называется schema generation report. Определение этого отчета создается в редакторе Schema Generation Report. Хотя этот редактор работает так же, как другие редакторы, которыми Вы пользовались при создании отчетов Entity, Attribute и Relationship, вход в него происходит через команду '<DB> Schema Generation...' меню Server. В этот редактор отчетов нельзя войти из меню Report.

Редактор Schema Generation Report позволяет Вам выбрать те определения физических объектов ERwin, то есть таблицы, индекксы, триггеры, хранимые процедуры и т.д., которые Вы хотите включить в генерируемую схему.

Возможности, доступные в редакторе Schema Generation Report, различаются в зависимости от того, какие возможности поддерживаются Вашей СУБД. Тем не менее для всех СУБД Вы можете определить отчет Schema Generation в интерактивном режиме, сохранить его в файле отчета в формате ASCII, просмотреть отчет на экране и распечатать его непосредственно из диалогового окна.

Для того тобы создать отчет о генерации схемы, войдите в редактор Schema Generation Report. ERwin выводит на экран отчет Schema Generation, установленный для Вашей СУБД по умолчанию. Удалите имя отчета, присвоенное по умолчанию, с помощью клаиши BACKSPACE. Пользуясь кнопками и окнами check box, укажите, ккакие физические объекты Вы хотите включить в схему. Например, для того чтобы включить в схему все объекты ORACLE Tablespace, которые Вы задали в ERwin, поставьте метку Х в окне 'TABLESPACE', которое расположеено в групповом окне 'Schema Option'.


Когда Вы нажимаете кнопку 'Close' в нижней части редактора, ERwin сохраняет определение отчета. Если после того, как Вы сохранили отчет, Вы изменяете имя или какой-то из заданных режимов в определении отчета, то нажмите кнопку 'Update' для сохранения изменений. Чтобы удалить отчет, выберите удаляемый отчет из списка 'Report' в верхней части редактора и нажмите кнопку 'Delete'. Отвечайте 'Yes', когда ERwin попросит Вас подтвердить удаление.

Как и другие типы отчетов ERwin, отчет Schema Generation по умолчанию включает в себя все сущности текущей области. Если Вы хотите использовать только часть сущностей текущей области для генерации схемы, то выберите нужные Вам сущности, пользуясь для этого кнопкой 'Filter...' в редакторе Schema Generation Report.

Кнопки 'Preview...', 'Print...' и 'Report...' в нижней части реедактора позволяют Вам просматривать отчет на экране, распечатывать его или сохранять на диске в текстовом файле.

Кнопка 'Generate...' в редакторе Schema Generation Report служит для запуска процесса генерации схемы. Когда Вы нажимаете кнопку 'Generate...', ERwin выводит на экран диалог <DB> Connection, который позволяет Вам подсоединиться к базе данных и связать ERwin с системным каталогом базы данных.

Введите Ваше имя пользователя, пароль и другую информацию, которая требуется для установления связи с Вашей СУБД. Нажмите кнопку 'Connect', чтобы подсоединиться к базе данных и начать генерацию схемы. После того как ERwin закончит генерацию схемы, он вернется в редактор Schema Generation Report. Нажмите кнопку 'Close' для выхода из редактора в окно диаграммы ERwin.



Как сгенерировать схему из окна Preview



1. Нажмите кнопку 'Preview...', расположенную в нижней части редактора, для входа в окно Schema Generation Report Preview.

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


Отпустите кнопку мыши, когда Вы дойдете до конца генерируемой части.

3. Нажмите кнопку 'Generate...', расположенную в нижней части окна Preview. ERwin генерирует схему.

4. Если при генерации схемы возникнет ошибка, ERwin выдает сообщение об ошибке.

· Чтобы игнорировать ошибку и продолжить работу по генерации схемы, нажмите кнопку 'Continue...'.

· Чтобы остановить процесс генерации схемы, нажмите кнопку 'Abort...'. ERwin возвращается в редактор Schema Generation Report.

5. После того как ERwin завершит процесс генерации схемы, он возвращается в окно Preview.

· Для выхода из окна Preview в редактор Schema Generation Report нажмите кнопку 'Close'.

· Чтобы распечатать отчет по схеме в том виде, в котором он демонстрируется в окне Preview, нажмите кнопку 'Print...'. ERwin закрывает редактор Schema Generation Report и рспечатывает отчет. Если Вы редактировали отчет в окне Preview, то ERwin распечатывает отчет с изменениями.

· Для того чтобы сохранить файл отчета по схеме, нажмите кнопку 'Report...'. ERwin открывает окно-диалог Generate <DB> Schema Report. См. далее в этой главе разд. 'Сохранение отчета о генерации схемы'.



Как сгенерировать схему непосредственно на сервере базы данных



1. Дайте команду меню Server '<DB> Schema Generation...' для входа в редактор Schema Generation Report.

2. Нажмите кнопки, соответствующие тем режимам, которые Вы хотите установить для Вашей схемы. См. далее в этой главе разд. 'Режимы генерации схемы'.

3. Нажмите кнопку 'Generate...'.

Если Вы не подсоединены к базе данных, ERwin просит Вас подсоединиться. Выполните все действия, необходимые для подсоединения к базе данных. См. Гл.13, Задание информации, ориентированной на СУБД, разд. 'Подсоединение ERwin к базе данных'.

В процессе генерации схемы ERwin выводит на экран, в окно, команды языка определения данных SQL, так что Вы можете проследить за ходом процесса.

4. Если в процессе генерации схемы возникает ошибка, ERwin выдает сообщение об ошибке.

· Чтобы продолжить генерацию схемы, нажмите кнопку 'Continue...'.



· Чтобы прекратить генерацию схемы, нажмите кнопку 'Abort...' ERwin возвращается в редактор Schema Generation Report.

5. После того как процесс генерации схемы завершится, ERwin возвращается в редактор Schema Generation Report.

6. Для того чтобы сохранить файл отчета по схеме, нажмите кнопку 'Report...'. Вы войдете в диалог Generate <DB> Schema Report. Введите имя отчета и нажмите кнопку 'OK', чтобы сохранить файл и вернуться в редактор Schema Generation Report. См. далее в этой главе разд. 'Сохранение отчета о генерации схемы'.

7. Нажмите кнопку 'Close' для выхода из редактора Schema Generation Report и возвращения в диаграмму.





Если Вы не поставите метку в окне 'Stop If Failure', ERwin будет игнорировать ошибки и продолжит генерацию оставшейся части схемы. Если Вы поставите метку в окне 'Stop If Failure', ERwin приостановит работу в случае ошибки. Нажмите кнопку 'Continue', чтобы продолжить генерацию схемы. Нажмите кнопку 'Abort', чтобы отменить генерацию схемы. Если ERwin выдает сообщение об ошибке, просмотрите команды SQL, используя для этого окно Preview. Вы можете отредактировать коды в окне Preview, а затем нажать кнопку 'Generate', чтобы сгенерировать отредактированную версию.


Генерация триггеров и хранимых процедур


Когда Вы создаете физическую схему базы данных, ERwin автоматически создает все триггеры и хранимые процедуры, определенные в Вашей модели данных, с соблюдением синтаксиса SQL для Вашей СУБД. Вы можете создавать RI-тригеры и хранимые процедуры, когда Вы впервые генерируете схему физической базы данных, или же Вы можете сгенерировать их отдельно, когда таблицы базы данных уже существуют.

Для генерации триггеров и хранимых процедур дайте команду меню Server '<DB> Schema Generation...'. ERwin открывает редактор Schema Generation Report.

Использование режимов генерации схемы применительно к триггерам и хранимым процедурам

Редактор Schema Generation Report позволяет Вам выбирать объекты, которые Вы хотите влючить в физическую схему, включая RI-триггеры, хранимые процедуры, связанные со всей схемой, хранимые процедуры, связанные с сущностями и скрипты, выполняемые до (пре-скрипты) или после (пост-скрипты) того, как будет сгенерирована оставшаяся часть схемы.

Для генерации группы объектов, таких как триггеры, щелкните по check box для соответствующей группы объектов, а затем включите любой из связанных с ней режимов генерации, по Вашему желанию, например User Override Trigger Template.

Как генерировать RI-триггеры

1. Дайте команду меню Server '<DB> Schema Generation...' для входа в редактор Schema Generation Report.

2. Поставьте метку в check box 'Trigger' в групповом окне Trigger для того, чтобы задать генерацию всех триггеров, определенных в модели данных, используя встроенные шаблоны RI-триггеров.

3. Если Вы хотите, чтобы ERwin использовал переопределенные (User Override) шаблоны триггеров, а не встроенные триггеры, поставьте метку в одном или нескольких окнах User Override для включения режимов генерации триггеров: 'RI Type Override', 'Relationship Override' и (или) 'Entity Override'. Эти три режима переопределения можно использовать по отдельности или любую их комбинацию для достижения необходимых результатов при генерации триггеров.

4. Нажмите кнопку 'Preview...' , чтобы просмотреть код SQL до того, как Вы начнете создавать триггеры.

Глоссарий


Глоссарий

альтернативный ключ

1) Атрибут (атрибуты), который(е) уникальным образом идентифицируют экземпляр сущности.

2) Если правилу 1 удовлетворяет более, чем один атрибут (группа атрибутов), то альтернативным ключом называются те атрибуты или группы атрибутов, которые не были выбраны в качестве первичного ключа.

ERwin генерирует уникальный индекс для каждого альтернативного ключа.

атрибут

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

базовое имя

Исходное имя внешнего ключа, которому присвоено имя роли.

бинарная связь

Связь, в которой ровно один экземпляр родительской сущности сответствует 0,1 или более экземплярам дочерней. В IDEF1X идентифицирующие, неидентифицирующие связи и связи подтипа являются бинарными связями.

кардинальность

Отношение числа экземпляров родительской сущности к числу экземпляров дочерней. В IDEF1X кардинальность бинарных связей равна 1:n, где n может равняться:

· 0,1 или более - обозначается пробелами

· 1 или более - обозначается буквой 'p'

· 0 или 1 - обозначается буквой 'z'

· ровно n - где n - некоторое число

полный кластер подтипа

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

база данных

Базой данных называется зарезервированный объем памяти на одном или более устройствах хранения информации, используемый для хранения данных и определений объектов базы данных, например, таблиц и индексов.

зависимая сущность

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

дискриминатор

Значение атрибута в экземпляре общего родителя определяет, к какому из возможных подтипов принадлежит этот экземпляр.
Этот атрибут принято называть дискриминатором. Например, значение атрибута 'пол' в экземпляре сущности 'служащий' определяет, к какому из возможных подтипов (мужчина-служащий или женщина-служащий) принадлежит этот экземпляр.



сущность



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



словарь ERwin



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



формат ERX



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



расширенные атрибуты



Они называются также 'расширенная информация, относящаяся к определениям колонок'. Представляют собой информацию, которую Вы определяете с целью контроля за изображением на экране и валидацией данных, хранящихся в колонке.



внешний ключ



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



миграция внешнего ключа



Ситуация, при которой ключ родительской сущности автоматически появляется в ключе дочерней сущности со значком (FK), обозначающим внешний ключ.



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



Процесс генерации физической схемы базы данных из логической модели данных.



глоссарий



Определения стандартных терминов, которые использованы в этой системе HELP.



идентифицирующая связь



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



неполный кластер подтипа



Если кластер подтипа не включает в себя все возможные подтипы (каждый экземпляр общего родителя не связан с одним подтипом), тогда кластер подтипа называется неполным.


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



независимая сущность



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



inversion entry



Атрибут (атрибуты), который(е) не определяют уникальным образом экземпляр сущности, но часто используются для обращения к экземплярам сущностей. ERwin генерирует неуникальные индексы для всех inversion entry.



логический уровень



Представление и моделирование предметов непосредственно из реального мира.



метамодель



Определяет структуры данных, необходимые для хранения всей необходимой информации о Вашей диаграмме, включающей в себя определения, адреса, шрифты, цвета и т.д.



формат MPD ModelPro



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



неключевой атрибут



Любой атрибут, не являющийся частью первичного ключа сущности. Неключевые атрибуты могут входить в inversion entry и (или) альтернативный ключ, а также могут быть внешними ключами.



неидентифицирующая связь



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



неопределенная связь



Связи 'родительская-дочерняя сущность' и связи подтипа считаются определенными связями, поскольку они точно определяют, каким образом экземпляры одной сущности связаны с экземплярами другой. Однако на начальных этапах разработки модели часто бывает полезно задание 'неопределенных' связей между двумя сущностями. Неопределенная связь, которую называют также связью 'многие-ко-многим', - отношение между двумя сущностями, при котором каждый экземпляр первой сущности связан с 0,1 или более экземплярами второй сущности и каждый экземпляр второй сущности связан с 0,1 или более экземплярами первой сущности.



null



Отсутствие значения, 'пустое поле' или отсутствие колонки.



с


Глоссарий атрибутов ERwin


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

Атрибуты



Графические характеристики диаграммы в ERwin


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

Далее следует описание текстовых и графических характеристик для каждого типа объектов.

Текстовые характеристики

Текстовые характеристики определяют внешний вид имени сущности, определения сущности или другого текстового объекта. Они включают в себя:

· Шрифт - позволяет Вам выбрать тип печатного текста, например Arial, Courier, Times Roman.

· Стиль шрифта - позволяет выбрать стиль печатного текста: Normal, Bold, Italic.

· Размер - позволяет Вам выбрать размер шрифта.

· Цвет - позволяет Вам выбрать цвет текста.

Нетекстовые характеристики

Кроме изменения цвета текста в диаграмме ERwin, Вы можете модифицировать цвет определенных параметров нетекстовых объектов:

· Линия сущности - позволяет Вам выбирать цвет контура сущности.

· Линия связи - позволяет Вам выбирать цвет линии, соединяющей две взаимосвязанные сущности.

· Заполнение сущности - позволяет Вам выбирать цвет внутренности окна сущности.

· Заполнение подтипа - позволяет Вам выбирать цвет внутренности символа подтипа, соединяющего родительскую сущность с дочерней.

· Фон - позволяет Вам изменить фон всей диаграммы. По умолчанию фон белый.
Фон также можно задать из меню Display командой 'Background Color'.

· Тень - позволяет Вам придать сущности 'эффект трехмерности'. Вы можете добавить теневой эффект как дополнение к изменениям шрифтов и цветов при помощи команды 'Shadow' меню Display. См. Гл.2, Уровни демонстрации изображения в ERwin, разд. 'Теневой эффект'.



Хранение модели ERwin в базе данных на Вашем сервере


Закончив генерацию схемы словаря ERwin в базе данных на Вашем сервере, Вы можете начать хранить в этой базе данных модели ERwin. Для того чтобы сохранить модель и поместить ее в базу данных, пользуйтесь командой меню File 'Export Dictionary', вместо команд 'Save' и 'Save As'. Команда Export Dictionary транслирует информацию, содержащуюся в модели данных, в команды SQL INSERT, UPDATE и DELETE (или в эквивалентные команды Xbase) и добавляет новую информацию в таблицы cловаря ERwin, хранящиеся в базе данных.

Когда Вы сохраняете модели в базе данных, ERwin использует систему check-in/check-out, чтобы не разрешить нескольким пользователям одновременно изменять модель. Эта система обеспечивает контроль версий, обрабатывая ситуацию экспорта модели в базу данных таким образом, как если бы ее заносили в библиотеку. Когда Вы экспортируете модель ('Check-in'), Вы можете сохранить ее под новым именем и записать ее на место копии, которая уже хранится на сервере. При импорте модели из базы данных ('Check-out') ERwin запоминает состояние модели при check-out и заносит Вас в список в качестве постоянного пользователя ('current user').

Для того чтобы произвести check-in или check-out модели, хранящейся в базе данных SQL, Вам необходимо иметь разрешение на произведение UPDATE в таблице диаграммы ERwin, ERW_DIAG, и на произведение SELECT во всех таблицах ERwin Dictionary.

Как записать модель данных в базу данных

1. Откройте диаграмму модели данных, которую Вы хотите экспортировать, а затем дайте команду меню File 'Export Dictionary'. ERwin открывает диалог Target Server.

2. Нажмите кнопку Target DBMS, соответствующую той СУБД, в которой Вы хотите хранить Ваши данные ERwin, и затем нажмите кнопку 'ОК'. База данных, которую Вы выберете, должна содержать структуры данных ERwin Dictionary, которые используются для хранения информации, относящейся к модели ERwin. ERwin открывает диалог Dictionary Export Viewer. Этот диалог используется для того, чтобы запустить экспорт данных и выводить на экран сообщения о состоянии этого процесса, пока он будет идти.


3. В диалоге Export Viewer нажмите кнопку 'Export Dictionary', чтобы начать экспорт модели данных на сервер. В любой момент Вы можете нажать кнопку 'Cancel', чтобы прервать экспорт и вернуться в диаграмму.

Чтобы упростить организацию запросов к словарю ERwin (для создания отчетов или обработки специальных ситуаций), ERwin при экспорте модели в базу данных SQL демонстрирует в Export Dictionary Viewer еще одно окно 'Flatten Inheritance'. Этот режим служит для того, чтобы упростить способ связывания доменов с физическими колонками. Когда режим 'Flatten Inheritance' включен (по умолчанию), ERwin сохраняет унаследованные значения доменов вместе с соответствующими определениями колонок, вместо того чтобы использовать ссылки для прослеживания унаследованной информации, относящейся к доменам, из объектов-предков.

Когда Вы нажимаете кнопку 'Export Dictionary', ERwin открывает диалог <DB> Connection. Каждый раз, когда Вы делаете попытку импорта или экспорта модели данных из словаря или в словарь, ERwin требует, чтобы Вы заново подсоединились кк базе данных. Вам необходимо подсоединиться к Вашей базе данных, даже в том случае, если Вы делали это раньше. Для этого введите допустимое имя, пароль, имя базы данных, имя сервера и (или) другую информацию, которая требуется в случае Вашей СУБД.

4. После того как Вы нажали кнопку 'Export Dictionary' и подсоединились к базе данных, ERwin открывает окно-диалог Export Dictionary, которое содержит список всех моделей данных ERwin, хранящихся в Вашей базе данных, имя пользователя, под которым подсоединился текущий пользователь (current user) каждой модели (если такой пользователь есть), дату последнего изменения модели (check-in) и число сущностей в модели на момент последнего check-in.

Диалог Export Dictionary ввклюает вв себя систему check-in/check-out, которая не дает пользователям одновременно изменять разные копии одной и той же модели.

· Если Вы хотите сохранить экспортированную модель под новым именем, просто введите имя модели в текстовое окно 'Diagram Name' и нажмите кнопку 'Check-In', чтобы начать экспорт.


Если Вы передумаете, то в любой момент можете нажать кнопку 'Cancel', чтобы отменить экспорт.

· Если Вы проверяете измененную версию модели, для которой Вы раньше производили check-out (с помощью команды Import Dictionary), Ваше имя, под которым Вы подсоединились к базе данных, появляется в колонке 'Current User' в списке, расположенном наверху диалога Export Dictionary. Щелкните по имени модели в списке, после чего нажмите кнопку 'Check-In'. ERwin записывает экспортированную Вами модель в базу данных на место файла модели.



Если Вы ранее производили check-out для модели и не видите своего имени в списке 'Current User', то возможно, что кто-то еще переписывал Вашу модель после того, как Вы делали check-out, с помощью команды OvERide Check-Out. См. следующее примечание.



· Если Вы хотите сохранить экспортированную модель, используя для этого существующее имя и если в данный момент больше никто не делает check-out этой модели, щелкните по имени модели в списке, после чего нажмите кнопку 'Check-In'. ERwin выводит на экран сообщение, что с моделью никто не делает check-out, и просит Вас подтвердить, что Вы хотите записать новую информацию на ее место. (См. следующее примечание).

Нажмите кнопку 'Yes' для сохранения диаграммы под выбранным Вами именем.

· Если Вы пытаетесь сохранить модель, используя существующее имя диаграммы, и если с этой моделью в настоящий момент кто-то другой делает check-out, то когда Вы нажимаете кнопку 'Check- In', ERwin выводит на экран сообщение, что с выбранной Вами моделью в настоящий момент другой пользователь делает check-out.
` · Нажмите кнопку 'ОК', чтобы убрать сообщение. В окне-диалоге Export Dictionary Вы можете: 1) нажать кнопку 'Cancel', чтобы отменить экспорт и подождать, пока текущий пользователь сделает check-in выбранной Вами модели; 2) нажать кнопку 'OvERide Check-Out', чтобы сохранить Вашу модель и переписать имеющуюся копию в базе данных. Если Вы переопределяете систему check-out, ERwin изменяет модель, хранящуюся в базе данных.


Это означает, что ERwin больше не считает, что с моделью делается check-out.



Если Вы используете функцию 'OvERide Check-Out', чтобы обойти защиту при check-in, Вам необходимо немедленно информировать об этом человека, который до этого делал check-out модели. Когда этот человек попытается сделать check-in своей версии диаграммы, ERwin выведет на экран предупреждение 'Diagram Export Warning', показанное выше; если этот человек решит переписать хранимую версию, то все Ваши изменения пропадут. Когда двое или более человек вносят изменения в модель,с которой делали check-out, эти изменения необходимо согласовать между собой, создав единую версию модели.



5. В процессе экспорта информации, содержащейся в модели данных, ERwin выводит на экран последовательные сообщения о состоянии процесса, в которых указана каждая таблица словаря ERwin, в которую он вставляет данные. После того как ERwin завершит экспорт модели, он выводит на экран сообщение, в котором указывается, успешно ли завершился экспорт словаря. Нажмите кнопку 'ОК', чтобы закрыть окно сообщения и вернуться в диаграмму.




Импорт файлов ModelPro


Продукт ModelPro был представлен несколько лет назад в специальной версии ERwin, которую выставила на рынок фирма Dan Appleton Co. Сегодня свойства ModelPro (версия 3.5) включены в ERwin.

Последняя версия ERwin может открывать файлы формата ModelPro, но не может сохранять их.

Как открыть файл формата ModelPro

1. Дайте команду меню File 'Open' для входа в диалог ERwin Open File.

2. Измените спецификацию имени файла (File Name) на *.MPD и, если это необходимо, перейдите в директорию, где хранится нужный Вам файл.

3. Дважды щелкните по имени файла, который Вы хотиет открыть, или введите имя файла в окно 'File Name'.

4. Нажмите кнопку 'ОК', чтобы открыть файл.



Информация о сущностях


Существует некоторый объем базовой информации, которую Вам нужно знать, прежде чем Вы начнете рисовать сущности:

· Что такое сущность

· Как входить в нужные редакторы

· Какие инструменты из toolbox Вам потребуются

Анатомия сущности

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

Как показать на экране меню Editor

ERwin поставляется со строкой меню, в которой отсутствует меню Editor. Вы всегда можете обратиться к меню Display и Editor с помощью правой кнопки мыши. Помещение стрелки курсора в пространство диаграммы приводит к выводу на экран команд меню Display, а помещение курсора в пространство, занимаемое объектом модели, приводит к выводу на экран редакторов, связанных с этим объектом. Вместе с тем Вы можете по Вашему желанию показать или убрать меню Editor в строке меню.



Использование доменов в ERwin


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

Если Вы используете стандартную версию ERwin (ERwin/ERX), то домен может включать в себя одну или более характеристик колонки, ориентированных на СУБД, таких как тип данных, режим нулевых значений, значение по умолчанию и правило валидации. Если у Вас версия ERwin, ориентированная на конкретный инструмент разработки клиентских систем, типа ERwin/ERX for PowerBuilder или ERwin/ERX for SQLWindows, то домен модет также включать характеристики колонки, ориентированные на среду клиента, например форматы изображения и стили редактирования PowerBuilder.

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

Например, если Ваша модель данных содержит несколько разных атрибутов с номерами телефонов (например, home-phone, business-phone и т.д.), Вы можете создать домен под именем 'AREA CODE', в котором имя колонки будет определено как area_code, а тип и длина данных - как CHAR(3). Кроме того, Вы можете связать с доменом список допустимых AREA CODE в правиле валидации (201, 202, 203, 204, и т.д.), и присвоить местный код в качестве значения по умолчанию (609). Наконец, Вы можете задать формат изображения, при котором код местности заключается в апострофы. Когда Вы связываете домен 'AREA CODE' с колонкой Вашей базы данных, которая содержит информацию о телефонных кодах, она автоматически наследует весь набор характеристик колонки, который задан в домене.


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



Как войти в редактор Domain



1. Дайте команду 'Domain...' в меню Server для входа в редактор Domain
ИЛИ

установите курсор на сущность и нажмите правую кнопку мыши для входа в pop-up меню Editor. Дайте команду меню 'Diagram-wide' для входа в каскадное меню и в нем дайте команду 'Domain' для входа в редактор Domain.



Работа в редакторе Domain



Редактор Domain подобен редактору Column Property, описанному ранее в этой главе, за тем исключением, что он позволяет Вам просматривать и изменять характеристики домена, а не колонки. У домена может быть одна или более характеристик из следующего списка: Имя колонки, Тип данных, Режим нулевых значений, Правило валидации. Значение по умолчанию и Родительский домен.

В редакторе Domain на экран выводятся имя домена, тип даннх и определение для всех доменов из списка, который находится в верхней части окна-диалога. Когда Вы выделяете домен в этом списке, ERwin сразу же показывает в остальных окнах редактора все значения характеристик колонки, связанные с выбранным доменом. Чтобы просмотреть характеристики колонки, связанные с другим доменом, просто выделите имя домена в верхнем списке, щелкнув по нему.

Чтобы создать домен, выберите домен в списке 'Domain Name' и выберите родительский домен в списке 'Inheritance Hierarchy'. Установите курсор в окно 'Name' и введите имя домена. По желанию можете ввести определение домена в текстовое окно 'Domain Definition'. После этого нажмите кнопку 'New' для создания домена.

Для изменения характеристик колонки, связанной с выделенным доменом, щелкните по нужным значениям в текстовом окне или нажмите нужные кнопки, а затем нажмите кнопку 'Update'.


Например, чтобы изменить режим нулевых значений, присвоенный домену '<default>', с 'NULL' на 'NOT NULL', нажмите кнопку 'NOT NULL' в групповом окне '<DB> Null Option' и нажмите кнопку 'Update'.

Для удаления домена выделите удаляемый домен в верхнем списке и нажмите кнопку 'Delete'.

Кнопки 'Default...' и 'Validation...' в редакторе Domain служат для входа в редакторы Default и Validation Rule, так что Вы можете перейти в определенный редактор, задать новую характеристику колонки, например значение по умолчанию, а затем вернуться в редактор Domain и присвоить ее существующему домену, не обращаясь при этом к главному меню.

Если Вы вошли в один из этих редакторов, а в check box 'Attach' в нижней части редактора Domain стоит метка, то ERwin автоматически связывает новую характеристику, которую Вы задаете в этом редакторе, с текущим доменом. Например, если Вы нажмете кнопку 'Validation...' в редакторе Domain, а в окне 'Attach' стоит метка, то при входе в редактор Validation Rule имя текущего домена появляется в окне 'Name' и правило валидации, ккоторое Вы задаете, автоматически присваивается выделенному домену.

Кнопка 'Reset...' открывает окно-диалог, в котором Вы можете восстановить значения домена по умолчанию для одной или более характеристик колонки. Например, если Вы изменили режим нулевых значений для домена '<default>' с 'NULL' на 'NOT NULL', то Вы можете использовать кнопку 'Reset' для восстановления начального значения 'NULL'.

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

Закончив изменение характеристик колонок, нажмите 'ОК' для сохранения изменений и выхода в окно диаграммы. Для отмены изменений и выхода в окно диаграммы нажмите 'Cancel'.



Если Вы выбрали одну из следующих СУБД: Rdb, SYBASE или SQL Server, то в редакторе Domain появляется дополнительное окно check box 'User-Datatype'.


Если Вы поставите метку в этом окне, то присваиваемые домену характеристики будут созданы, как тип данных, определяемый пользователем (User Defined Datatype' при генерации схемы. Если в окне не будет метки, то ERwin использует синтаксис полного типа данных для создания присвоенных ограничений в операторе CREATE TABLE. Более подробную информацию о типах данных, определяемых пользователем, см. в документации по Вашей СУБД.

Домен 'Default'



ERwin поставляется с предопределенным доменом, имя которого '<default>', который автоматически задает характеристики для новых колонок. Эти характеристики, присваиваемые новой колонке доменом default, изначально основываются на значениях типов данных и режима нулевых значений, присваиваемых по умолчанию, которые задаются в редакторе Target Server. См. ранее в этой главе разд. 'Задание значений по умолчанию'.

Кроме таких характеристик, как тип данных по умолчанию и режим нулевых значений, получаемых из редактора Target Server, домен default использует макрокоманду %AttName для присваивания колонке имени логического атрибута в качестве имени колонки.

Как и в случае любого другого домена, Вы можете изменить в редакторе Domain любые характеристики, присвоенные домену default, за исключением его имени.



Наследование домена



Новый домен можно создать только из уже существующего домена. Когда Вы создаете новый домен, то он автоматически наследует все характеристики, присвоенные его родительскому домену.

Чтобы создать новый домен в ERwin, выберите родительский домен, на котором будет основан новый домен, из списка 'Inheritance Hierarchy' с правой стороны диалога. Это означает, что домен '<default>' должен быть использован в качестве родителя первого домена, который Вы создадите в Erwin.

Когда Вы нажимаете кнопку 'New' для создания нового домена, то ERwin добавляет имя домена в список Inheritance Hierarchy и вставляет его после родительского домена с более глубоким уровнем вложенности, чтобы показать иерархию доменов. Например, домены 'ADDRESS' и 'PERSON-NAME' порождены из домена '<default>'.


Если Вы создадите новый домен 'BUSINESS-ADDRESS', взяв домен 'ADDRESS' в качестве родительского, то список Inheritance Hierarchy будет выглядеть так (см. иллюстрацию).



Как создать домен



1. Дайте команду 'Domain...' в меню Server для входа в редактор Domain.

2. Выберите домен в текстовом окне 'Domain Name' и родительский домен в списке 'Inheritance Hierarchy'.

3. Введите имя домена в текстовое окно 'Name'. По желанию, можете ввести определение домена в текстовое окно 'Domain Definition'.

4. Нажмите кнопку 'New' для создания домена. Новый домен автоматически унаследует все характеристики, присвоенные домену, который Вы выбрали в п.2. Если Вы хотите изменить какие-то из этих характеристик, Вы можете:

· Присвоить домену другой тип данных - для этого щелкните по строке в списке '<DB> Datatype' и, если нужно, задайте длину. Если Вы задали длину, снова щелкните по выделенному домену, чтобы длина (параметр рядом с типом данных) была вставлена в список, находящийся в верхней части редактора.

· Присвоить домену другой режим нулевых значений, щелкнув по соответствующей кнопке в групповом окне '<DB> Null Option'.

· Присвоить домену правило валидации, щелкнув по имени правила в списке 'Valid'.

· Присвоить домену значение по умолчанию, щелкнув по имени значения в списке 'Default'.

Если Вы изменили какие-то характеристики домена, нажмите кнопку 'Update' для изменения определения домена.

5. Закончив присваивать характеристики домену, нажмите 'ОК' для сохранения изменений и выхода из редактора Domain или 'Cancel' для отмены изменения имени и выхода в окно диаграммы ERwin.



Если Вы в п.2 выбрали домен 'Default', то Вам нужно нажать кнопку 'New', прежде чем Вы выберете родительский домен из списка Inheritance Hierarchy.

Как изменить имя домена



1. Дайте команду 'Domain...' в меню Server для входа в редактор Domain.

2. Выберите домен, имя которого Вы хотите изменить, в списке в верхней части редактора Domain.

3. Установите курсор в текстовое окно 'Name' и удалите старое имя с помощью DELETE или BACKSPACE.


Введите новое имя, максимальная длина которого определяется Вашей СУБД.

4. Нажмите 'ОК' для сохранения изменений и выхода из редактора Domain или 'Cancel' для отмены изменения имени и выхода в окно диаграммы ERwin.



Как изменить тип данных домена



1. Дайте команду 'Domain...' в меню Server для входа в редактор Domain.

2. Выберите домен, тип данных которого Вы хотите изменить, в списке в верхней части редактора Domain. ERwin покажет тип данных, который сейчас присвоен выбранному домену, в списке '<DB> Datatype' с левой стороны редактора.

3. Щелкните по новому типу данных, который Вы хотите присвоить выбранному домену, в списке '<DB> Datatype'. Если для задания выбранного типа требуется задать длину (например, для типа CHAR()), то введите в скобках нужное Вам число. снова щелкните по домену в верхнем списке, чтобы вставить параметр в заново присвоенный тип данных.

4. Нажмите 'ОК' для сохранения изменений и выхода из редактора Domain или 'Cancel' для отмены изменения имени и выхода в окно диаграммы ERwin.



Как изменить режим нулевых значений домена



1. Дайте команду 'Domain...' в меню Server для входа в редактор Domain.

2. Выберите домен, режим нулевых значений которого Вы хотите изменить, в списке в верхней части редактора Domain.

3. Нажмите одну из кнопок в групповом окне '<DB> Null Option' для изменения режима нулевых значений домена.

4. Нажмите 'ОК' для сохранения изменений и выхода из редактора Domain или 'Cancel' для отмены изменения имени и выхода в окно диаграммы ERwin.



Как присвоить домену значение по умолчанию



1. Дайте команду 'Domain...' в меню Server для входа в редактор Domain.

2. Выберите домен, которому Вы хотите присвоить значение по умолчанию, в списке в верхней части редактора Domain.

3. Щелкните по стрелке 'вниз' для открытия списка 'Default', а затем щелкните по значению Default Value, которое Вы хотите присвоить выбранному домену.

Если Вы хотите задать новое значение по умолчанию и присвоить его домену, то нажмите кнопку 'Default...' для входа в редактор Default.


См. ранее в этой главе 'Работа в редакторе <DB> Default'.

Если Вы хотите убедиться, что никакое значение по умолчанию не было присвоено домену, то выберите из списка верхнюю строку - пунктирную линию (----). См. ранее в этой главе 'Работа в редакторе Domain'.

4. Нажмите 'ОК' для сохранения изменений и выхода из редактора Domain или 'Cancel' для отмены изменения имени и выхода в окно диаграммы ERwin.



Как присвоить домену правило валидации



1. Дайте команду 'Domain...' в меню Server для входа в редактор Domain.

2. Выберите домен, которому Вы хотите присвоить правило валидации, в списке в верхней части редактора Domain.

3. Щелкните по стрелке 'вниз' для открытия списка 'Valid', а затем щелкните по правилу валидации, которое Вы хотите присвоить выбранному домену.

4. Если Вы хотите задать новое правило валидации и присвоить его домену, то нажмите кнопку 'Validation...' для входа в редактор Validation Rule. См. ранее в этой главе 'Работа в редакторе Validation Rule'.

5. Если Вы хотите убедиться, что никакое правило валидации не было присвоено домену, то выберите из списка верхнюю строку - пунктирную линию (----). См. ранее в этой главе 'Работа в редакторе Domain'.

6. Нажмите 'ОК' для сохранения изменений и выхода из редактора Domain или 'Cancel' для отмены изменения имени и выхода в окно диаграммы ERwin.



Как связать с доменом новые ограничения



1. Дайте команду 'Domain...' в меню Server для входа в редактор Domain, а затем выберите домен, с которым Вы хотите связать новое ограничение.

2. Нажмите кнопку 'Attach' и поставьте метку Х в check box.

3. Если после этого Вы нажмете кнопку 'Default...' или 'Validation...' для задания нового ограничения на колонку, ERwin автоматически использует имя выбранного домена в качестве имени ограничения и связывает новое ограничение с выделенным доменом.

Например, если Вы выделите домен due_date в таблице MOVIE в редакторе Domain, а затем нажмете кнопку 'Validation...', то ERwin автоматически вставит due_date в качестве имени нового правила валидации.


Когда Вы закончите задание правила валидаци и вернетесь в редактор Domain, то новое правило валидации будет автоматически связано с доменом due_date.



Как восстановить характеристики домена, присвоив им значения, задаваемые по умолчанию



1. Дайте команду 'Domain...' в меню Server для входа в редактор Domain, а затем выберите домен, характеристики которого Вы хотите восстановить.

2. Нажмите кнопку 'Reset...' для входа в диалог Reset Domain Properties.

3. Щелкните по одному или нескольким check box в диалоге Reset Domain Properties, чтобы показать, какие из характеристик Вы хотите восстановить, присвоив им значения по умолчанию.

Например, если Вы хотите восстановить тот тип данных, который был задан по умолчанию для домена, поставьте Х в окне 'Datatype'. См. ранее в этой главе 'Работа в редакторе Domain'.

4. Нажмите 'ОК' для восстановления помеченных характеристик или 'Cancel' - для выхода из диалога без изменения характеристик.



Как удалить домен



1. Дайте команду 'Domain...' в меню Server для входа в редактор Domain.

2. Выделите имя домена, который Вы хотите удалить, в списке, который находится в верхней части редактора Domain.

3. ажмите кнопку 'Delete' для удаления домена. ERwin удаляет выбранный домен, не спрашивая Вашего подтверждения на удаление.

Если удаляемый домен связан с колонкой, то ERwin выдает окно-диалог, в котором содержится имя домена и связанная с ним колонка (колонки) и спрашивается, подтверждаете ли Вы удаление. Нажмите 'Yes' для удаления домена. Для отмены запроса на удаление нажмите 'No'. Если Вы удалите домен, то все характеристики колонки, определенные этим доменом, восстанавливаются в соответствии с содержимым родительского домена.

4. Нажмите 'ОК' для сохранения изменений и выхода из редактора Domain или 'Cancel' для выхода в окно диаграммы без сохранения изменений.




Использование ERwin для расположения объектов на Вашей диаграмме


ERwin может автоматически расположить объекты на диаграмме, что поможет Вам поддерживать организацию модели данных в процессе работы. Например, при слиянии двух диаграмм с использованием Copy&Paste Model диаграмма, которая получится в результате, может оказаться неорганизованной. Если Вы дадите команду 'Layout...' в окне-диалоге Layout, то ERwin отрегулирует объекты, с минимальным числом перекрытий, и сделает диаграмму более организованной.

ERwin организует диаграмму по-разному на каждом уровне демонстрации изображения. Например, диаграмма на уровне Physical Schema позволяет видеть большее количество информации, чем та же диаграмма на уровне Entity Definition. Поэтому задавайте уровень просмотра диаграммы прежде, чем дать команду 'Layout...'.

Как расположить объекты на Вашей диаграмме в автоматическом режиме

1. Дайте команду 'Layout...' в меню Option.

2. Нажмите кнопку 'Layout...', расположенную внизу окна-диалога. ERwin предупредит Вас, что автоматическая организация диаграммы - необратимый процесс и даст Вам возможность отменить Ваш запрос.

3. Если Вы хотите, чтобы ERwin автоматически расположил объекты на Вашей диаграмме, нажмите 'Yes'.

Если Вы хотите отменить команду, нажмите 'No'.

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

После того, как Вы дали команду 'Layout...' и ERwin организовал диаграмму, эти изменения отменить уже нельзя. ERwin не запоминает предыдущее расположение объектов на диаграмме.



Использование формата SML (Structured Modeling Language - язык структурного моделирования)


Что такое SML?

Язык структурного моделирования (SML) - текстовый язык, который служит для определения моделей 'сущность-связь'. SML определяет модели 'сущность-связь' таким же образом, что и SQL DDL (язык определения данных SQL) определяет базы данных.

Использование SML позволяет легко переносить модели из одного CASE-средства в другое, при условии, что оба поддерживают этот формат. ERwin позволяет Вам производить импорт и экспорт файлов формата SML.



Использование хранимых изображений для фокусирования на отдельных сущностях


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

Например, Вы можете создать хранимое изображение для диаграммы Главной области 'Video Store' для изображения объектов, связанных с процессом просроченных договоров.



Использование хранимых процедур


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

Например, для фирмы проката видеопродукции Вы можете создать хранимую процедуру, которая будет автоматически выбирать все фильмы, срок аренды которых истек какого-то числа. Это число будет параметром, который передается процедуре в режиме run-time. Затем эта хранимая процедура может вызывать другую хранимую процедуру, вычисляющая пени за каждый задержанный фильм, исходя из типа фильма и правил (business rules).

Во многих отношениях создание хранимой процедуры в ERwin аналогично созданию триггера. При создании хранимой процедуры Вы можете использовать Trigger Toolbox и предопределенные макрокоманды ERwin, чтобы вставить нужный Вам код в окно Template Code. После того как код шаблона для хранимой процедуры написан, ее можно свящать с отдельной сущностью или со всей схемой. Когда Вы создаете в физической схеме бахы данных таблицу, связанную с сущностью, ERwin автоматически расширяет код шаблона и создает все связанные с ним хранимые процедуры с соблюдением синтаксиса SQL для Вашей СУБД точно так же, как он создает триггеры, связанные с сущностями и связями ERwin.

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


Если Вы знакомы с SQL и знаете синтаксис Вашей СУБД, Вы можете вводить выражения SQL непосредственно в окна редакторов шаблонов ERwin. Если Вы вводите код SQL для хранимых процедур в ERwin, то Вы можете использовать возможности просмотра и генерации отчетов в ERwin для того, чтобы просмотреть все процедуры, связанные со схемой, а также те, которые связаны с отдельными сущностями. Задавая хранимые процедуры в ERwin, Вы получаете возможность управлять этой информацией в одной среде, так что Вы легко можете изменять ссылки на схему в кодах шаблона процедуры.



Создание хранимой процедуры



Для того чтобы приступить к созданию хранимой процедуры, дайте команду '<DB> Table Property', а затем- команду каскадного меню 'Stored Procedure'. Вы войдете в редактор Table Property.

Редактор Table Property позволяет Вам просматривать все хранимые процедуры, физические характеристики и правила валидации, связанные с таблицей базы данных. Если Ваша СУБД поддерживает хранимые процедуры, то внизу редактора появляется закладка Stored Procedure, а также появляется лист связей хранимых процедур Stored Procedure Attachment Sheet. Если Ваша СУБД не поддерживает хранимые процедуры, то закладка Stored Procedure не появляется. См. документацию по Вашей СУБД о том, поддерживает ли она хранимые процедуры. Лист связей хранимых процедур - Stored Procedure Attachment Sheet редактора Table Property содержит информацию о том, какая таблица связана с каждой из сущностей ERwin и какие хранимые процедуры в настоящий момент связаны с каждой из сущностей и таблиц. В этом редакторе Вы можете просмотреть код шаблона каждой из хранимых процедур, а также связать хранимую процедуру с определенной сущностью или отсоединить ее от сущности.

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

Для того чтобы создать шаблон для новой процедуры, нажмите кнопку 'SP Template...' для входа в редактор Stored Procedure Template.





Работа в редакторе Stored Procedure Template



Редактор Stored Procedure Template позволяет Вам создавать, изменять или удалять хранимую процедуру.

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

Для того чтобы изменить существующую хранимую процедуру, щелкните по имени шаблона, который Вы хотите изменить, в списке 'Template Name'. Когда ERwin поккажет на экране код, щелкните по окну Template Code и измените коды, пользуясь встроенными макрокомандами и стандартными клавишами редактирования. Нажмите кнопку 'Update' для сохранения изменений.

Для того чтобы удалить ранее определенную процедуру, щелкните по имени удаляемого шаблона в списке 'Template Name', а затем нажмите кнопку 'Delete'.

Для того чтобы создать новую хранимую процедуру, нажмите кнопку 'New' и введите 'говорящее' имя, например 'sp_overdue' для хранимой процедуры, выбирающей все просроченные фильмы на сегодняшнее число. После этого установите курсор в окно Template Code и создайте код шаблона, пользуясь встроенными макрокомандами и клавишами редактирования. Заккончив создание кода шаблона, нажмите 'ОК' для выхода из текущего редактора в редактор Table Property, в котором Вы можете связать новый шаблон с одной или несколькими сущностями.




Использование имен ролей атрибутов


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

Например, в диаграмме Video Store первичный ключ сущности MOVIE - movie-numbER, уникальным образом определяет название каждого фильма таким образом, что даже если есть два фильма с одинаковыми названиями, каждый из них может быть идентифицирован как отдельный фильм. Когда атрибут movie-numbER мигрирует из сущности MOVIE в сущность MOVIE-COPY и становится в ней внешним ключом, то ему присваивается имя роли mastER-numbER, которое поясняет, что этот атрибут обозначает конкретную строку в master-таблице MOVIE, а не в child-таблице MOVIE-COPY. Атрибут movie-copy-numbER обозначает конкретную копию этого фильма в child- таблице MOVIE-COPY. Это означает, например, что если в прокате есть две копии фильма The Wizard of Oz, то mastER-numbER служит для определения названия фильма, а movie-copy-numbER - для определения каждой из двух имеющихся копий.

При рекурсивной связи, когда сущность связана сама с собой, один и тот же атрибут может быть и первичным, и внешним ключом, и имя роли помогает прояснить вторую роль атрибута. Например, если одна организация управляет другой, как это показано ниже, то атрибут organization-id, являющийся первичным ключом в сущности ORGANIZATION, может также служить и внешним ключом в рекурсивной связи. Для того, чтобы прояснить роль внешнего ключа, ему присваивается имя роли parent-org-id для того, чтобы обозначить управляющую организацию по отношению к конкретной дочерней организации. Например, если компания Logic Works будет управлять IBM, то атрибут parent-org-id будет обозначать Logic Works, а organization-id будет обозначать IBM.

Синтаксис имени роли

Имя роли состоит из трех частей: присваиваемое имя роли, точка-разграничитель и базовое имя. Имя роли присваивается атрибуту внешнего ключа в редакторе Relationship и Subtype Relationship. ERwin вставляет точку после имени роли, а затем ставит базовое имя атрибута. Базовое имя - это имя атрибута, которое мигрировало из родительской сщности в дочернюю. См. ниже в этой главе 'Присваивание имени роли'.

Изображение имен ролей на диаграмме

Когда Вы даете команду меню Display 'Rolename/Attribute', то ERwin показывает на экране и базовое имя и имя роли (см. рис.).



Использование инструмента управления атрибутом (Attribute Manupulation)


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

Если Toolbox отсутствует на экране, нажмите CTRL_t.

Как перенести или скопировать атрибут

1. Щелкните по инструменту управления атрибутами на toolbox.

2. Выберите один или несколько атрибутов исходной сущности. Вы можете щелкнуть мышью для выбора одной сущности или нажать SHIFT или CTRL одновременно с кнопкой мыши для выбора нескольких атрибутов.

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

ИЛИ

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

Когда Вы копируете или переносите атрибут, ERwin переносит информацию и определения исходного атрибута (например, значения доменов, определение, замечания и т.д.) на новое место.

Когда Вы копируете атрибут, ERwin не контролирует соблюдение уникальности имен (если оно у Вас задано).

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

Вы не можете продублировать атрибут в этой же сущности. Вы не можете удалить внешний ключ или перенести его из той сущности, в которой он находится. Вы не можете перенести внешний ключ, который мигрировал в результате задания идентифицирующей связи, из неключевой области, в которой он находится. Если внешний ключ мигрировал в неключевую область в результате задания неидентифицирующей связи, то его можно перенести в область первичного ключа этой же сущности, за исключением случаев, когда неидентифицирующая связь, в результате которой он мигрировал, была рекурсивной. Если Вы переносите альтернативный ключ (АК) или инверсионное вхождение (IE) в рамках одной сущности, то он сохраняет свое назначение (AK или IE). Если Вы переносите его в другую сущность, пометка AK или IE исчезает.



Использование кардинальности связи для выражения правил


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

Как прочитать связь в виде бизнес-утверждения

Конструкции моделей ERwin состоят из сущностей (существительных) и связей (глаголов). Поскольку все связи в ERwin бинарные (двусторонние), то Вы можете читать каждую конструкцию Parent-Child как предложение языка (см. пример).

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

· Использовать Relationship Browser для просмотра правил, сформулированных в терминах сущностей и связей.

· Использовать Entity Report для просмотра всех родительских и дочерних правил (Business Rules).

· Использовать Relationship Report для просмотра правил, задаваемых в обоих направлениях.

См. Гл.4, Связи ERwin и соответствующие редакторы, разд. 'Задание кардинальности связи', а также Гл. 17, Отчеты в ERwin, разд. 'Использование Relationship Report'.

Как показать связи в виде бизнес-утверждений

1. Дайте команду 'Relationship Browser...' в меню Report. В Browser показаны все связи для текущей области. По умолчанию формат данных в Browser - PARENT ENTITY > VERB PHRASE > CHILD ENTITY > FOREIGN KEY (РОДИТЕЛЬСКАЯ СУЩНОСТЬ > ГЛАГОЛЬНАЯ ФРАЗА > ДОЧЕРНЯЯ СУЩНОСТЬ > ВНЕШНИЙ КЛЮЧ), что позволяет Вам легко прочитывать конструкции 'сущность-связь' как предложения языка.

Как показать правила (business rules) в терминах объединения сущностей

1. Дайте команду 'Entity Report...' в меню Report.

2. Поставьте метку в окне 'Parent Business Rules' или 'Child Business Rules'. Будьте внимательны, выбирайте только из окна 'Relationship Option', в противном случае Ваш отчет будет содержать много посторонней информации.

3. Нажмите кнопку 'Preview...' для демонстрации правил на Вашем экране, кнопку 'Report...' - для генерации их в файл, или кнопку 'Print...' - для распечатывания отчета на принтере.

4. Нажмите кнопку 'Close' для возвращения в окно-диалог Entity Report.
Затем нажмите 'Close' для выхода из диаграммы.

Когда отчет будет запущен, данные business rules будут выглядеть по-разному, в зависимости от того, где Вы поставили метку в окне Relationship Options. Если Вы выбрали Parent Business Rules и Parent Relationships, у Вас получатся данные, напоминающие те, что приведены в таблице.



Отчет Entity Report с ограничениями Business Rule



Если Вы выбрали: Отчет будет выглядеть так:
Parent Business Rules Parent Business Rule: An ORGANIZATION contains many EMPLOYEEs.
Parent Business Rules+Referential Integrity Parent Business Rule: An ORGANIZATION holds many OVERHEAD BUDGETs.

FK Referential Integ: U-Set Null I-Set Null D-Set Null CU-Set Null PI- CD-
Parent Relationships Parent In Relationships: ORGANIZATION contains EMPLOYEE Cardinality: One-to-Zero-One-or-More No Null




Как показать родительские и дочерние business rules рядом



1. Дайте команду 'Relationship Report...' в меню Report.

2. Поставьте метку в check box 'Parent to Child Rule', затем - 'Child to Parent Rule'.

3. Нажмите кнопку 'Preview...' для просмотра business rules на экране, кнопку 'Report...' - для генерации их в файл или кнопку 'Print...' - для вывода отчета на принтер. Данные отчета должны выглядеть примерно так:



Parent to Child Rule: An ORGANIZATION contains many EMPLOYEEs.



Child to Parent Rule: An EMPLOYEE is associated with exactly one ORGANIZATION.



Чтобы удалить из отчета нежелательную информацию (например, глагольную фразу для каждой связи), убедитесь, что 'Parent to Child Rule' и 'Child to Parent Rule' - единственные режимы, заданные в редакторе Relationship Report.

Как быстро изменить кардинальность связи



1. Дайте команду 'Relationship Browser...' в меню Report.

2. Выделите бизнес-утверждение, которое Вы хотите отредактировать, и нажмите кнопку 'Edit...'. Вы войдете в редактор Relationship, который позволяет Вам изменить кардинальность связи и отношение к нулевым значениям.

3. Нажмите 'ОК' для выхода из редактора Relationship и возвращения в Relationship Browser.Нажмите 'ОК' для сохранения изменений, выхода из Browser и возвращения в диаграмму.




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


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

Главная область для склада видеопродукции (см.пример) включает в себя сущности и связи для всех областей бизнеса.

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

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

В предыдущих версиях ERwin Вы могли сохранить подмножество сущностей модели данных как представление сущности (Entity View). В данной версии эта функция была усовершенствована и теперь она позволяет Вам разбить диаграмму на несколько областей. Если в предыдущей версии ERwin Вы сохранили Entity View, то при открытии диаграммы в данной версии ERwin автоматически создает его заново, как область, и называет эту область 'Old Entity View'.



Использование расширенных возможностей множественного выбора


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

Если объекты, которые Вы хотите выбрать, находятся на диаграмме близко друг от друга, Вы можете выбрать их все, пользуясь мышью как лассо. При использовании этого метода, вы нажимаете левую кнопку мыши и, не отпуская ее, передвигаете курсор по диаграмме, так что вокруг объектов образуется лассо. Когда Вы отпускаете кнопку мыши, ERwin выделяет все объекты, которые полностью попали в границы лассо, для того, чтобы показать, что они выбраны.

Если объекты, которые Вы хотите выбрать, разбросаны по диаграмме, Вы можете нажать клавишу CTRL или SHIFT и, не отпуская ее, щелкнуть мышью по каждому объекту.

Объекты остаются выбранными до тех пор, пока Вы не отмените выбор для одного или всех объектов. Для того, чтобы отменить выбор одного объекта, укажите на него курсором. Затем нажмите клавишу CTRL или SHIFT и, не отпуская ее, щелкните кнопкой мыши. Для того, чтобы отменить выбор всех объектов, щелкните кнопкой мыши по любому месту фона диаграммы. ERwin перестает выделять объект после того, как выбор отменен.

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

Как выбрать несколько объектов, как группу

1. Выбрав инструмент 'указатель', установите курсор на диаграмму слева от первого объекта - сущности или текстового блока - который Вы хотите включить в группу.


2. Нажмите левую кнопку мыши и, не отпуская ее, передвигайте мышь вправо вдоль группы сущностей, которые Вы хотите выбрать. Курсор изменит свою форму на крестообразную, а вокруг объектов появится лассо. Сущности и текстовые объекты, которые полностью попали в лассо, будут выбраны.

3. Когда все объекты, которые Вы хотели выбрать, попали в прямоугольник, отпустите кнопку мыши. ERwin выделит имена сущностей и текстовых блоков, включенных в группу.

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



Методом лассо легче пользоваться при включенном режиме Zoomout.

Как выбирать несколько объектов по отдельности



1. Выбрав инструмент 'указатель', установите курсор на первый объект - сущность или текстовый блок - который Вы хотите включить в группу.

2. Нажмите клавишу CTRL или SHIFT и, не отпуская ее, щелкните левой кнопкой мыши по каждому объекту - сущности или текстовому блоку - который Вы хотели выбрать. ERwin выделит имена сущностей и текстовых блоков, включенных в группу.

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



Как добавить объект к уже выбранной группе



1. Выбрав инструмент 'указатель', установите курсор на объект, который Вы хотите включить в группу. После этого нажмите CTRL или SHIFT и щелкните кнопкой мыши. ERwin выделит имена сущностей и текстовых блоков, включенных в группу.



При множественном выборе символы связи подтипа рассматриваются как сущности и должны быть включены в выбранное множество. Нажмите SHIFT и одновременно щелкните кнопкой мыши по символу связи подтипа, для того чтобы добавить его к выбранному множеству.


Использование редактора Subject Area для выбора объектов


Редактор Subject Area позволяет Вам создать, изменить или удалить область. Для создания области нужно сначала ввести имя, имя автора и описание области (Subject Area Name, Author, Description), а затем нажать кнопку 'New'. Для изменения ранее созданной области выберите область. щелкнув по ее имени, которое находится в списке в верхней части редактора, внесите все необходимые изменения, а затем нажмите кнопку 'Update' для сохранения изменений. аналогичным образом, для того, чтобы удалить область, выберите ее из списка и нажмите кнопку 'Delete'.

В центральной части редактора Subject Area находятся два набора окон-списков, которые используются для задания сущностей и (или) текстовых блоков, которые Вы хотели бы включить в текущую область. Два списка под названиями 'Subject Area' c левой стороны редактора содержат сущности и текстовые блоки, входящие в текущую область.

Два списка с названиями 'Pool' с правой стороны редактора показывают, какие сущности и текстовые блоки доступны из исходной диаграммы, но не были присвоены той области, с которой Вы сейчас работаете.

Кнопки, находящиеся между двумя наборами окон-списков, позволяют Вам добавлять объекты, находящиеся в пуле, в Вашу область или удалять объекты из области и возвращать их в пул. Кнопка 'Add' добавляет объекты, выбранные Вами из пула, в область. Кнопки 'Remove' и 'Remove All' работают аналогичным способом. Они убирают объекты из области и возвращают их в пул неприсоединенных объектов. Кнопка 'Model Sel' добавляет все объекты, выбранные Вами на той модели данных, которая демонстрируется в окне диаграммы ERwin, в область.

После того как Вы закончите добавление или удаление объектов, нажмите 'ОК' для сохранения определения области или 'Cancel' для отмены всех изменений, которые Вы сделали при работе в редакторе.

Вы можете создавать, изменять или удалять одну или более областей в течение одного сеанса работы в редакторе. Если Вы нажмете 'ОК', все Ваши изменения будут сохранены и Вы выйдете из редактора. Если Вы нажмете 'Cancel', все Ваши изменения отменяются и Вы выходите из редактора.


Когда Вы сохраняете файл модели данных, ERwin сохраняет все связанные с ним области (и хранимые изображения) вместе, как один файл.



Если Вы дважды щелкнете по любому объекту, то Erwin перенесет его в список напротив. То есть, если Вы дважды щелкнули по текстовому объекту в окне 'Subject Area Entity', то ERwin перенесет его в окно 'Text Block Pool'.

Как создать новую область



1. Выберите ту область, которую Вы хотите использовать в качестве источника сущностей для новой области, из списка 'Subject Area' на Toolbar.

2. Дайте команду 'Subject Area...' в меню Window или нажмите кнопку Subject Area на Toolbar для того, чтобы войти в редактор Subject Area.

3. Введите имя новой области в окно-список 'Subject Area Name' и, если хотите, имя автора и описание в окна 'Author' и 'Description'.

4. Нажмите кнопку 'New'. ERwin покажет на экране имя новой области в окне Subject Area, в верхней части редактора, и вставит все объекты - сущности и текстовые блоки из исходной диаграммы в окна, название которых начинается с 'Subject Area' с левой стороны редактора.

5. Если Вы выбрали на исходной диаграмме объекты, которые хотите включить в новую область, то нажмите кнопку 'Model Sel' для того, чтобы добавить эти объекты в область.

Пользуйтесь кнопками 'Add' и 'Remove' в центре редактора для переноса объектов из окон области в окна пула и наоборот, до тех пор, пока в списках области не останутся только те объекты, которые Вы хотите поместить в новую область.

6. Нажмите 'ОК' для сохранения Вашей работы. ERwin закрывает редактор, возвращается в окно диаграммы и демонстрирует на экране диаграмму новой области. Вы можете также нажать 'Cancel' для отмены всех изменений, сделанных Вами при работе в редакторе Subject Area, тогда Вы вернетесь в ту диаграмму, из которой Вы вошли в редактор.



Как модифицировать область



1. Выберите ту область, которую Вы хотите изменить, из списка 'Subject Area...', который находится на Toolbar.

2. Дайте команду 'Subject Area...' в меню Window или нажмите на кнопку Subject Area, которая находится на toolbar, для входа в редактор Subject Area/

3. Пользуйтесь кнопками 'Add' и 'Remove' в центре редактора для переноса объектов из окон области в окна пула и наоборот, до тех пор, пока в списках области не останутся только те объекты, которые Вы хотите поместить в область. Кроме содержимого области, Вы можете также изменять информацию, содержащуюся в текстовых окнах Name, Author, Description.

4. Закончив производить изменения, нажмите кнопку 'Update' для обновления определения текущей области. Если Вы хотите использовать изменения в качестве отправного пункта для новой области, измените имя области и щелкните не по кнопке 'Update', а по 'New'.

5. Нажмите 'ОК' для сохранения Вашей работы и возвращения в окно диаграммы, или 'Cancel' - для отмены всех проделанных изменений и возвращения в окно диаграммы.



ERwin не разрешает Вам изменять имя Главной Области. Вы также не можете удалять из нее сущности в редакторе Subject Area.


Использование редакторов SML Note


Что такое SML?

SML (Structured Modeling Language - язык структурного моделирования) - текстовый язык для определения моделей 'сущность-связь'. Он определяет модели в ERwin подобно тому, как SQL DDL (язык определения данных SQL - языка структурных запросов) определяет базы данных.

SML бывает полезно использовать в моделях, которые можно хранить и перносить в другие средства, которые поддерживают этот формат. ERwin поддерживает как импорт, так и экспорт файлов формата SML. См. Гл.19, Имопрт и экспорт без использования SQL, разд. 'Использование формата SML'.

ERwin поддерживает ввод информации, ориентированной на SML, в редакторах SML Note для сущностей, атрибутов и связей.



Использование режимов просмотра физической схемы


Каскадное меню 'Physical Schema Level', вызываемое из меню Display, содержит несколько переключателей, которые позволяют Вам показать или спрятать информацию физической схемы на Вашей диаграмме, включая тип данных колонки, тип данных домена, режим нулевых значений, значок внешнего ключа (FK) для каждой колонки схемы, а также физические имена связей подтипа и имя владельца каждой таблицы в схеме.

Для просмотра информации физической схемы дайте сначала команду 'Physical Schema Level', а затем выберите из каскадного меню Schema Display Option, какие режимы Вы хотели бы включить. ERwin показывает информацию физической схемы в соответствии с заданными режимами. Например, если Вы задали режимы 'Display Column Datatype' и 'Display Null Оptions', то ERwin покажет тип данных и то, разрешены ли нулевые значения.

Просмотр имен владельцев таблиц

На уровне Physical Schema в меню Display есть два режима каскадного меню для демонстрации информации о владельце таблицы.

Для того, чтобы показать на диаграмме имя владельца таблицы в виде префикса к имени таблицы, включите режим 'Display Table Owner'. Например, если Вы включили этот режим, а кто-то по имени 'MARILYN' создал таблицу MOVIE, то ERwin покажет название таблицы MOVIE как 'MARILYN.MOVIE'.

Для того, чтобы сделать информацию о владельце таблицы не видной для самого владельца, включите режим 'Display Table Owner using User'. Например, если MARILYN - владелец таблицы MOVIE, то ERwin не покажет ее имя перед названием таблицы, если этот режим включен. Однако, если MARILYN просматривает диаграмму MOVIES и включены оба режима, то она увидит имена владельцев всех таблиц, владелец которых - не она.

На рисунке показана ситуация, когда у Вас загружена СУБД и Вы подсоединены к системному каталогу базы данных. Вы - владелец таблиц PRODUCT и OWNER. Для этих таблиц имя владельца не поазано. Владелец таблиц CUSTOMER и EMPLOYEE - DBA.

Если у Вас не загружена СУБД и включены оба режима, то Вы увилите свое имя перед названиями PRODUCT и OWNER, и имя DBA перед названиями CUSTOMER и EMPLOYEE (на диаграмме показывается вся информация о владельцах таблиц, если Вы не подсоединены к системному каталогу СУБД).




Просмотр колонок в порядке физического следования



В режиме ' Physical Order Level' меню Display атрибуты каждой сущности демонстрируются на диаграмме в том порядке, в котором соответствующие колонки располагаются в физической таблице. Этот режим позволяет Вам производить обратное проектирование таблиц базы данных, у которых первичные ключи находятся не в первой колонке, а в других.



Как просматривать информацию физической схемы



1. Дайте команду 'Physical Schema Level' в меню Display для просмотра информации физической схемы в окне диаграммы ERwin.

2. Задайте нужные Вам режимы просмотра в каскадном меню 'Schema Display Option' в меню Display. Щелкните по строке с названием режима, чтобы включить его. Чтобы выключить режим, щелкните еще раз.



При просмотре диаграммы на уровне Physical Schema ERwin автоматически регулирует ширину сущностей, так чтобы в них поместилась информация физической схемы. Тем не менее Вам может понадобиться самостоятельно отрегулировать расположение объектов на диаграмме. См. Гл.12, Дополнительные возможности просмотра, разд. 'Регулировка размера сущности'.

Как просматривать информацию о владельцах таблицы



1. Дайте команду 'Physical Schema Level' в меню Display для просмотра информации физической схемы в окне диаграммы ERwin.

2. Задайте режим 'Display Table Owner' в каскадном меню 'Schema Display Option' в меню Display для того, чтобы показать на диаграмме имя владельца таблицы перед названием каждой таблицы. Задайте режим 'Display Table Owner using User', чтобы спрятать информацию о владельце таблицы от самого владельца.



Режим 'Display Table Owner' работает и тогда, когда Вы не подсоединены к СУБД. Режим 'Display Table Owner using User' работает только тогда, когда Вы подсоединены к СУБД. Если этот режим включен, но Вы не подсоединены к СУБД, то ERwin выводит на экран информацию обо всех владельцах.

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



1. Дайте команду 'Physical Schema Level' в меню Display для просмотра атрибутов каждой сущности в том порядке, в котором идут соответствующие колонки в таблице базы данных.Щелкните по строке с названием режима, чтобы включить его. Чтобы выключить режим, щелкните еще раз.




Использование шрифтов и цветов в диаграмме ERwin


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

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

ERwin позволяет Вам делать цветные распечатки, если Ваша диаграмма цветная и если у Вас есть цветной принтер. См. Гл.1, Основные свойства ERwin, разд. 'Как распечатать диаграмму из окна ERwin'.



Использование собственного текстового формата ERwin (ERX)


ERX - текстовый формат данных в ERwin - позволяет Вам легко производить обмен данными между ERwin и другими средствами, которые Вы используете с целью автоматизации процесса разработки. Будучи сохранены в формате ERX, данные ERwin могут быть использованы в качестве входных для других средств и приложений. Например, Вы можете найти для себя удобным сохранить модель в формате ERX, с тем чтобы потом отредактировать ее в Вашем текстовом процессоре и использовать средство проверки правописания для проверки замечаний (notes) и определений.

И наоборот, Вы можете взять выходные данные из другого средства разработки, создать скрипты или макрокоманды для преобразования данных в формат ERX, а затем просмотреть файл в ERwin, как графическую диаграмму.

Для того чтобы загрузить файл ERX, используйте команду меню File Open и выберите файл, который Вы хотите открыть, из списков в окне-диалоге File Open. Вы можете создать файл формата ERX из диаграммы .ER1, просто задавая 'ERX' в окне-диалоге File Save As.

ERwin обрабатывает файлы ERX иначе, чем файлы ER1. Файл ERX при загрузке в ERwin должен пройти синтаксический анализ, то есть его необходимо считать и интерпретировать построчно. Этот дополнительный шаг означает, что открытие диаграммы, записанной в формате ERX, занимает гораздо больше времени, чем открытие этой же диаграммы, записанной в формате ER1. Сохранение изменений, вносимых в диаграмму, в формате ER1 также занимает немного больше времени.

В Вашей практике Вам нужно всегда сохранять файлы в формате ER1. Пользуйтесь форматом ERX в конкретных случаях, когда Вы хотите работать с данными Вашей диаграммы, представленными в текстовой форме, или экспортировать их в другое приложение.

Файлы ERX, созданные в предыдущих версиях ERwin, могут оказаться несовместимыми с текущей версией. Необходимо сохранять диаграммы в файлах ER1, чтобы их можно было использовать в текущей версии ERwin.

Как открыть файл формата ERX

1. Дайте команду меню File 'Open' для входа в диалог ERwin Open File.


2. Введите имя файла в текстовое окно 'File Name', или выберите из списка ' List Files of Type' строку 'ERwin ERX', чтобы показать файлы ERX, хранящиеся в текущей директории.

3. Нажмите кнопку 'ОК', чтобы загрузить файл. ERwin открывает окно-диалог Importing ERX File.

4. Нажмите кнопку 'Import ERX'. По мере того как ERwin загружает файл, он сообщает о ходе процесса загрузки по строкам и столбцам.

Когда процесс загрузки завершится, ERwin выдает на экран сообщение 'ERX Import Successful'. Нажмите кнопку 'ОК', чтобы убрать сообщение.

Если при считывании файла все же возникнет ошибка, ERwin выдает сообщение, содержащее причину ошибки. Строка в окне Import ERX File, содержащая информацию о ходе процесса, сообщает, в каком месте произошла ошибка.

Нажмите кнопку 'ОК', чтобы убрать сообщение. Вы можете попробовать еще раз импортировать файл, нажимая для этого кнопку 'Import ERX', или отменить попытку импорта данных, нажав для этого кнопку 'Cancel'.

В случае необходимости Вы можете отредактировать файл ERX непосредственным образом, используя для этого приложение - текстовый процессор, например, Windows Notepad или Microsoft Word.



Как сохранить диаграмму в формате ERX



1. Дайте команду меню File 'Save As...' для входа в окно-диалог ERwin Save As.

2. Выберите 'ERX' в качестве 'File Format'. Имя файла, присваиваемое по умолчанию, - текущее имя диаграммы с расширением .ERX. Вы можете, если хотите, изменить имя.

3. Нажмите кнопку 'ОК'. Текущая диаграмма будет записана в формате ERX (собственном текстовом формате ERwin).



Когда Вы сохраняете текущую диаграмму в формате ERX c использованием команды 'Save As', то версия ERX становится текущим файлом. Это означает, что все последующие изменения будут внесены только в файл ERX. Для того чтобы сохранить изменения, вносимые в версию ER1 диаграммы, дайте команду 'Save As', задав в качестве File Format 'ER1'.

Когда Вы сохраняете файл ERX с помощью команды Save, то ERwin автоматически создает файл backup с расширением .BKX, содержащий предыдущую версию диаграммы.



Как читать файл в формате ERX



Текстовый формат ERX предназначен для передачи данных модели и комментариев между ERwin и другими средствами. Любые данные, которые можно ввести в ERwin, могут быть импортированы и экспортированы посредством формата ERX. Если Вы будете понимать текст формата ERX, то Вы сможете преобразовать выходную информацию из других приложений в текстовый формат для импорта в ERwin или самостоятельно писать файлы формата ERX для импорта их в ERwin.

Для того чтобы просмотреть и отредактировать текст в формате ERX, запустите приложение - текстовый редактор, например Windows Notepad или Microsoft Word, и откройте файл командой 'Open...'. Ниже показано, как выглядит файл формата ERX. Приводится часть файла примера MOVIES.ERX.

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

· Блоки комментариев начинаются с /* и заканчиваются */. Не добавляйте новые блоки или строки комментариев между строками данных в разделе данных. ERwin не использует содержимое блока комментариев, но тем не менее блок комментариев является необходимой частью каждого раздела. Если Вы не вставите блок комментариев туда, где он должен быть, это может привести к тому, что ERwin не сможет открыть файл.

· Атрибуты (колонки или поля) разделены запятыми.

· Текстовые поля заключаются в кавычки (например, 'some field'). Внутри этих кавычек запятые рассматриваются, как обычные символы, и игнорируются. Логические и физические имена (например, имена сущностей и атрибутов) рассматриваются как текст и заключаются в кавычки.

· Как и в языке программирования С, текстовая строка \n служит для обозначения новой строки в поле текста.

· Пустые текстовые поля заключаются в пару рядом стоящих кавычек ('').


Перед кавычками, которые нужно включить в текст как часть текстового поля, ставится косая черта (\').

· Возврат каретки означает начало новой записи в блоке данных.

Хорошим способом изучить формат ERX является такой: открыть метамодель ERwin - ERWMETA.ER1, которая входит в поставку ERwin, и сохранить ее в формате ERX. Диаграмма метамодели ERwin содержит всю информацию, необходимую ERwin для хранения моделей данных и управления ими. См. приложение А, Хранение моделей ERwin в базе данных.

Лучше всего Вы сможете понять формат ERX, если создадите небольшую диаграмму, сохраните ее в файле формата ERX и исследуете то, что получилось в файле ERX. Затем Вы можете небольшими частями добавлять в файл ERX новую информацию и загружать его обратно в ERwin, чтобы проследить. как это отразится на диаграмме.



Если Вы редактируете файл ERX в текстовом процессоре, не забудьте сохранить файл просто как текст, без форматирования.

Сохранение файлов в формате 'ERX & Multiple'



Если Вы в диалоге Save As выбираете режим форматирования файла 'ERX & Multiple', то ERwin сохраняет информацию, относящуюс к базе данных, не в одном большом файле, а в нескольких текстовых файлах. Каждый текстовый файл содержит информацию об одном разделе данных, что отражено в приводимой таблице. Каждому файлу автоматически присваивается имя, совпадающее с именем диаграммы, с расширением .Xnn (например, MOVIES.X23 содержит информацию о шрифтах, используемых в диаграмме MOVIES).

Тип файла Имя таблицы в ERWMETA Логическое имя сущности
X01. ERWIN_ENTITY ERWIN ENTITY
X02. ERWIN_RELATIONSHIP ERWIN RELATIONSHIP
X03. ERWIN_EAU ERWIN ENTITY-ATTRIBUTE USAGE
X04. ERWIN_SUBTYPE_REL ERWIN SUBTYPE RELATIONSHIP
X05. ERWIN_DIAG_VIEW_OBJ ERWIN MODEL VIEW OBJECT
X06. ENTITY_INDEX ENTITY INDEX
X07. INDEX_MEMBER INDEX MEMBER
X08. DIAGRAM_OPTION ERWIN MODEL OPTION
X09. TEXT_BLOCK TEXT BLOCK
X10. ENT_PHYSICAL_PV ENTITY PHYSICAL PV
X11. IDX_MBR_PHYS_PV INDEX MEMBER PHYSICAL PV
X12. INDEX_PHYSICAL_PV INDEX PHYSICAL PV
X13. ENTITY_TRIGGER ENTITY TRIGGER
X14. ENTITY_TRIGGER_UPD ENTITY TRIGGER UPDCOLS
X15. CS_VALIDATION_RULE VALIDATION RULE
X16. CS_VALID_VALUES VALID VALUES
X17. TABLE_CONSTRAINT TABLE CONSTRAINT
X18. DOMAIN ERWIN DOMAIN
X19. ERWIN_DEFAULT ERWIN DEFAULT
X20. REL_PHYS_PROP REL PHYSICAL PROPERTY
X21. REL_TEMPLATE RELATIONSHIP TEMPLATE
X22. TEMPLATE TEMPLATE
X23. FONT FONT
X24. COLOR COLOR
X25. GLOBAL_TEMPLATE GLOBAL TEMPLATE
X26. ENTITY_SP_TEMPLATE ENTITY STORED PROCEDURE TEMPLATE
X27. ERW_TEXT ERWIN TEXT
X28. SUBJECT SUBJECT
X29. DISPLAY DISPLAY
X30. PHYSICAL_OBJECT PHYSICAL OBJECT
X31. PHYS_OBJ_PROP_VALUE PHYSICAL OBJECT PROPERTY VALUE
X32. ERWIN_REPORT ERWIN REPORT
X33. ERWIN_REPORT_OPTION ERWIN REPORT OPTION
X34. DOMAIN_PROP_VALUE DOMAIN PROPERTY VALUE


Рис. 19.7.

Формат ERX & Multiple можно использоать для сохранения файлов, но ERwin не может открыть файлы с расширениями .Xnn.




Использование ссылочной целостности для усиления business rules


ERwin позволяет Вам использовать набор встроенных режимов ссылочной целостности для усиления business rules (хотя вообще они используются для поддержания целостности данных). Эти триггер-функции поддержания ссылочной целостности (RI) сообщают СУБД, какое действие предпринять при вставке, изменении или удалении сроки в таблице. Обычно RI-триггер либо не дает изменению произойти (это называется RESTRICT - ОГРАНИЧЕНИЕМ), либо допускает изменение и распространяет его влияние на другие таблицы (CASCADE - КАСКАД). Как и в случае кардинальности связи, режимы ссылочной целостности ERwin также можно использовать для того, чтобы помочь Вам сформулировать бизнес-утверждения.

Например, на вопрос: 'Могу ли я сделать заказ, не задавая при этом никаких заказываемых товаров, т.е. список товаров пустой?' - можно ответить только с помощью правила, и усилить выполнение этого правила можно только с помощью соответствующего триггера ERwin. Если ответ для данного бизнеса: 'Нет, в списке товаров должен быть хотя бы один пункт' - то желаемое поведение может быть достигнуто следующими действиями:

1. Задать кардинальность связи между ЗАКАЗОМ и СПИСКОМ ТОВАРОВ, равную 'One or more' - 1 или более.

2. Сделать связь 'обязательной', независимо от того, какая это связь - идентифицирующая или неидентифицирующая.

3. Присвоить связи действие RI-триггера 'Parent Insert-CASCADE' для того, чтобы при создании новой строки в таблице ЗАКАЗ автоматически создавалась хотя бы одна строка в дочерней таблице СПИСОК ТОВАРОВ.

4. Присвоить связи действие RI-триггера 'Parent Delete-CASCADE' для того, чтобы при удалении строки из таблицы ЗАКАЗ соответствующая строка или строки из таблицы СПИСОК ТОВАРА тоже удалялись.

ERwin автоматически присваивает каждой связи режим ссылочной целостности, устанавливаемый по умолчанию, прежде чем добавить ее в диаграмму. Режимы RI, присваиваемые ERwin по умолчанию, могут быть изменены в редакторе Referential Integrity Default. Режим RI, применяемый к конкретной связи, может быть изменен в редакторе Referential Integrity. Ниже описано, как работать в этих редакторах. См. Гл.16, Триггеры и хранимые процедуры, разд. 'Что такое триггеры'.

Задание режимов ссылочной целостности, присваиваемых по умолчанию

Вы можете изменить режимы RI, присваиваемые по умолчанию, в редакторе Referential Integrity Default.



Использование Trigger Toolbox и макрокоманд


Редактор Trigger Toolbox предоставляет в Ваше распоряжение набор предопределенных макрокоманд, которые помогут Вам адаптировать встроенные шаблоны триггеров, создавать переопределенные шаблоны триггеров или писать новые триггеры и хранимые процедуры на SQL. Предопределенные макрокоманды, которые начинаются с символа процента (%), генерируют псевдокод, который в процессе генерации схемы расширяется в специальный синтаксис SQL, поддерживаемый Вашей СУБД.

Trigger Toolbox состоит из трех частей: слева - набор из трех окон макрокоманд, в центре - окно, в которое выводится подсказка о выбранной макрокоманде, справа - статическая диаграмма-пример. Макрокоманды, относящиеся к сущностям, связям и атрибутам, содержатся в трех разных списках, что позволяет Вам быстрее найти нужную макрокоманду. Обратите внимание на то, что некоторые макрокоманды содержатся более чем в одном списке.

Если Вы щелкнете по имени макрокоманды и выделите ее, то ERwin выведет на экран, в центральное окно, вспомогательную информацию о выделенной макрокоманде. Эта вспомогательная информация включает в себя примеры, в которых использованы имена таблиц и полей из диаграммы-примера MOVIES.ER1. Более подробная информация по всем макрокомандам содержится в конце этой главы в специальных таблицах .

Если при редактировании макрокода в окне Template Code Вы войдете в редактор Trigger Toolbox и дважды щелкнете по имени макрокоманды, то ERwin вставит макрокоманду в то место окна кода, где стоял Ваш курсор в последний раз.

При редактировании макрокода в окне Template Code Вы можете пользоваться стрелками, пробелом, Backspace, Insert, Delete и другими стандартными клавишами редактирования текста, как в Windows.

Как войти в редактор Trigger Toolbox

1. Дайте команду меню Server '<DB> Trigger Template...' для входа в редактор Trigger Тemplate, а затем нажмите кнопку 'Trigger Toolbox' для входа в редактор Trigger Toolbox.

ИЛИ

Установите курсор на сущность, нажмите правую кнопку мыши для входа в pop-up меню Editor и дайте команду '<DB> Trigger'.
Когда ERwin откроет окно Trigger Code Viewer, предназначенное только для чтения, нажмите кнопку '<DB> Entity Trigger...' или кнопку '<DB> Trigger Template...' для входа в один из редакторов шаблонов, а затем нажмите кнопку 'Trigger Toolbox' для входа в редактор Trigger Toolbox.



Как вставить макрокоманду в окно кода шаблона



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

2. Нажмите кнопку 'Trigger Toolbox' для входа в редактор Trigger Toolbox.

3. Прокручивая соответствующий список макрокоманд, найдите ту макрокоманду, которую Вы хотите вставить, и щелкните по ней. ERwin вставляет макрокоманду в ту точку в окне кода шаблона, в которой был установлен Ваш курсор перед входом в Trigger Toolbox.

4. Нажмите кнопку 'Close' в редакторе Trigger Toolbox для выхода из Toolbox в редактор шаблона.



Как изменить шаблон,связанный с RI-триггером



1. Выделите тип RI-триггера, который Вы хотите изменить, в списке, который находится в верхней части редактора Trigger Template.

2. Нажмите кнопку 'Detach ->', чтобы отсоединить тот шаблон, который в настоящий момент связан с выбранным RI-триггером.

3. Прокручивая список 'Built-In Template' или 'User Override', найдите шаблон, который Вы хотите связать с выбранным RI-триггером. Выделите имя шаблона, щелкнув по нему, а затем нажмите кнопку 'Attach' прямо над списком. ERwin свяжет выбранный шаблон с триггером и покажет новую комбинацию в окне-списке, который находится в верхней части редактора Trigger Template.

Если Вы передумали, Вы можете снова связать исходный встроенный шаблон триггера с выбранным типом RI-триггера. Для этого выделите тип тригера в списке и нажмите кнопку '<- Rebind'.



Как создать свой шаблон триггера



1. Войдите в редактор Trigger Тemplate и выберите встроенный шаблон, который Вы будете настраивать.

2. Отредактируйте выбранный шаблон в окне Template Code, используя для этого макрокоманды ERwin и стандартные клавиши, применяемые при редактировании.

3. Закончив редактировать код шаблона, щелкните по окну 'Template Name' и введите новое имя для шаблона.

4. Нажмите кнопку '<- Add', чтобы добавить новый шаблон в список 'User Override'.

5. Нажмите кнопку 'Close' для выхода из редактора шаблона в диаграмму.



Как удалить созданный Вами шаблон



1. Войдите в редактор Trigger Template и выберите шаблон, который Вы будете удалять, в списке 'User Override', т.е. в списке шаблонов, созданных пользователями ERwin.

2. Нажмите кнопку 'Delete ->' для удаления шаблона.

3. Нажмите кнопку 'Close' для выхода из редактора шаблона в диаграмму.



Вы можете удалять шаблоны, созданные Вами или кем-то еще. Но Вы не можете удалить шаблоны, поставляемые в составе ERwin.


Изменение физических характеристик индекса


Когда Вы производите обратное проектирование базы данных, ERwin импортирует информацию относительно физической памяти для таблиц и индексов, которая определяет, в каком месте эти объекты физически хранятся на сервере. Если у Вас установлена СУБД ORACLE, SYBASE или Microsoft SQL Server, то редактор Index выводит на экран информацию относительно физической памяти для каждого индекса.

Аналогично, если Вы создаете индекс и у Вас установлена СУБД ORACLE, SYBASE или SQL Server, то Вы можете выбирать, где будет храниться индекс, и (или) изменять параметры хранения в редакторе ERwin Index таким же образом, как Вы задаете параметры хранения для таблиц, генерируемых ERwin в редакторе Table Property.

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

Если у Вас установлена база данных ORACLE, SYBASE или SQL Server, Вы можете также создать новый объект физической памяти, открывая редактор <DB> Physical Object из редактора Index. В редакторе Index для ORACLE нажмите кнопку 'Physical Object...'. В редакторах Index для SYBASE и SQL Server нажмите на кнопку 'Segment...' для входа в редактор Physical Object для Вашей СУБД.

Данная таблица кратко описывает режимы физических параметров, доступные в редакторах Index для СУБД ORACLE, SYBASE и SQL.

Режим физического хранения

Для чего используется режим

ORACLE

PCTFREE

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

NO SORT

Ускоряет создание индекса, если данные расположены физически по порядку. Если в окне стоит Х, то значения индекса не сортируются. Если окно пустое, то значения индекса сортируются.

INITTRANS

Задает параметры для команды СУБД CREATE TABLE.

MAXTRANS

Задает параметры для команды СУБД CREATE TABLE.

SQL И SYBASE

IGNORE
_DUP_KEY

Разрешает или запрещает использование повторяющихся значений ключа в таблице с уникальным индексом (кластеризованным или некластеризованным). Если в окне стоит Х, то повторяющиеся значения не допускаются. Если окно пустое, то повторяющиеся значения разрешаются.

SORTED DATA

Ускоряет создание индекса, если данные расположены физически по порядку. Если в окне стоит Х, то значения индекса не сортируются. Если окно пустое, то значения индекса сортируются.

DUP ROW

Разрешает или запрещает использование повторяющихся значений ключа в таблице с кластеризованным индексом. Если в окне стоит Х, то повторяющиеся значения не допускаются. Если окно пустое, то повторяющиеся значения разрешаются.

FILL_FACTOR

Задает, сколько данных можно добавить к странице данных при создании индекса.


Когда Вы производите обратное проектирование базы данных, ERwin импортирует информацию относительно физической памяти для таблиц и индексов, которая определяет, в каком месте эти объекты физически хранятся на сервере. Если у Вас установлена СУБД ORACLE, SYBASE или Microsoft SQL Server, то редактор Index выводит на экран информацию относительно физической памяти для каждого индекса.

Аналогично, если Вы создаете индекс и у Вас установлена СУБД ORACLE, SYBASE или SQL Server, то Вы можете выбирать, где будет храниться индекс, и (или) изменять параметры хранения в редакторе ERwin Index таким же образом, как Вы задаете параметры хранения для таблиц, генерируемых ERwin в редакторе Table Property.

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

Если у Вас установлена база данных ORACLE, SYBASE или SQL Server, Вы можете также создать новый объект физической памяти, открывая редактор <DB> Physical Object из редактора Index. В редакторе Index для ORACLE нажмите кнопку 'Physical Object...'. В редакторах Index для SYBASE и SQL Server нажмите на кнопку 'Segment...' для входа в редактор Physical Object для Вашей СУБД.

Данная таблица кратко описывает режимы физических параметров, доступные в редакторах Index для СУБД ORACLE, SYBASE и SQL.

Режим физического хранения

Для чего используется режим

ORACLE

PCTFREE

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

NO SORT

Ускоряет создание индекса, если данные расположены физически по порядку. Если в окне стоит Х, то значения индекса не сортируются. Если окно пустое, то значения индекса сортируются.

INITTRANS

Задает параметры для команды СУБД CREATE TABLE.

MAXTRANS

Задает параметры для команды СУБД CREATE TABLE.

SQL И SYBASE

IGNORE
_DUP_KEY

Разрешает или запрещает использование повторяющихся значений ключа в таблице с уникальным индексом (кластеризованным или некластеризованным). Если в окне стоит Х, то повторяющиеся значения не допускаются. Если окно пустое, то повторяющиеся значения разрешаются.

SORTED DATA

Ускоряет создание индекса, если данные расположены физически по порядку. Если в окне стоит Х, то значения индекса не сортируются. Если окно пустое, то значения индекса сортируются.

DUP ROW

Разрешает или запрещает использование повторяющихся значений ключа в таблице с кластеризованным индексом. Если в окне стоит Х, то повторяющиеся значения не допускаются. Если окно пустое, то повторяющиеся значения разрешаются.

FILL_FACTOR

Задает, сколько данных можно добавить к странице данных при создании индекса.




Аналогично, Вы можете задать кластеризованный индекс, если эта возможность поддерживается Вашей СУБД. Данная таблица содержит список возможностей и режимов, которые поддерживаются ERwin для каждой CУБД.

СУБД Максимальная длина имени индекса Поддерживается ли сортировка по убыванию Поддерживаются ли кластеризованные индексы Поддерживаются ли характеристики физического хранения
DB2 18 ДА ДА НЕТ
SQL Server 30 НЕТ ДА ДА
Rdb 30 ДА ДА НЕТ
ORACLE 30 ДА НЕТ ДА
SQL Base 18 ДА ДА (хешированные) НЕТ
WATCOM 128 ДА ДА НЕТ
Ingres 24 ДА ДА НЕТ
SYBASE 30 НЕТ НЕТ ДА
AS/400 30 ДА ДА НЕТ
NetWare SQL 20 НЕТ НЕТ НЕТ
INFORMIX 18 ДА ДА НЕТ
Progress 30 ДА ДА НЕТ


РИС. 15.10

См. также руководство по версиям ERwin для РС-ориентированных СУБД ERwin Desktop Database Guide о поддержке ERwin индексов для РС-ориентированных СУБД. См. документацию по Вашей СУБД о поддерживаемых в ней режимах индексирования.






См. также Гл.14, Объекты физической памяти, разд. 'Создание и изменение объектов физической памяти в ERwin', а также документацию по Вашей СУБД.



Как связать индекс с объектом физической памяти



1. Щелкните по сущности правой кнопкой мыши, дайте команду сокращенного pop-up меню '<DB> Index'. ERwin откроет редактор Index для выбранной сущности.

2. Щелкните по стрелке 'вниз' рядом со списком 'TABLESPACE' (для ORACLE) или 'SEGMENT' (для SQL Server) в групповом окне 'Index Physical Property'.

3. Щелкните по имени объекта физической памяти, который Вы хотите связать с индексом ERwin. ERwin покажет текущие значения параметров для выбранного объекта памяти.

4. Нажмите кнопку 'ОК' для выхода из редактора и сохранения связанных с ним физического объекта и параметров хранения. Если Вы передумали, нажмите 'Cancel' для отмены всех изменений, сделанных в редакторе Index.



Как изменить параметры физического хранения в редакторе Index для ORACLE



1. Щелкните по сущности правой кнопкой мыши, дайте команду сокращенного pop-up меню 'ORACLE Index'. ERwin откроет редактор ORACLE Index для выбранной сущности и покажет текущие значения параметров для объекта памяти.

2. Чтобы изменить какие-либо из параметров физической памяти, щелкните по соответствующей кнопке или окну и выделите текущее значение. Удалите старое значение с помощью клавиш BACKSPACE или DELETE, а затем введите новое значение.

3. Нажмите кнопку 'ОК' для выхода из редактора и сохранения связанных с ним физического объекта и параметров хранения. Если Вы передумали, нажмите 'Cancel' для отмены всех изменений, сделанных в редакторе <DB> Physical Object.

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



Режимы индексирования для разных СУБД



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


Аналогично, Вы можете задать кластеризованный индекс, если эта возможность поддерживается Вашей СУБД. Данная таблица содержит список возможностей и режимов, которые поддерживаются ERwin для каждой CУБД.

СУБД Максимальная длина имени индекса Поддерживается ли сортировка по убыванию Поддерживаются ли кластеризованные индексы Поддерживаются ли характеристики физического хранения
DB2 18 ДА ДА НЕТ
SQL Server 30 НЕТ ДА ДА
Rdb 30 ДА ДА НЕТ
ORACLE 30 ДА НЕТ ДА
SQL Base 18 ДА ДА (хешированные) НЕТ
WATCOM 128 ДА ДА НЕТ
Ingres 24 ДА ДА НЕТ
SYBASE 30 НЕТ НЕТ ДА
AS/400 30 ДА ДА НЕТ
NetWare SQL 20 НЕТ НЕТ НЕТ
INFORMIX 18 ДА ДА НЕТ
Progress 30 ДА ДА НЕТ


РИС. 15.10

См. также руководство по версиям ERwin для РС-ориентированных СУБД ERwin Desktop Database Guide о поддержке ERwin индексов для РС-ориентированных СУБД. См. документацию по Вашей СУБД о поддерживаемых в ней режимах индексирования.




Изменение характеристик индекса


Когда ERwin создает индекс, он автоматически присваивает ему имя и значения по умолчанию для режимов, которые определяют, будет ли индекс:

· содержать повторяющиеся значения.

· отсортирован по возрастанию или по убыванию.

· кластеризованным или некластеризованным.

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

Изменение имени индекса

Вы можете переименовать индекс в соответствии с соглашениями, принятыми в Вашей организации. Выберите индекс, который Вы хотите изменить, и отредактируйте его имя в текстовом окне 'Index Name', которое находится под списком.

Будет ли индекс содержать повторяющиеся значения

Когда ERwin создает индекс, он автоматически по умолчанию запрещает повторяющиеся значения в индексах по первичным и альтернативным ключам и разрешает повторяющиеся значения в индексах по Inversion Entry. Если Вы устанавливаете режим Unique/Duplicate Index так, что разрешены только уникальные значения (Unique), это предохраняет Вас от хранения ненужных данных, которые могут стать источником путаницы, например от сохранения в таблице CUSTOMER двух строк с информацией об одном и том же клиенте.

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

Если Вы хотите изменить режим уникальных значений индекса, щелкните по check box 'Unique', чтобы разрешить или запретить хранение повторяющихся значений в индексированных колонках. Когда в окне 'Unique' стоит 'Х', то в индексированной колонке (колонках) разрешается хранить только уникальные значения. Когда окно 'Unique' пусто, разрешаются неуникальные (повторяющиеся) значения.

Сортировка значений в индексе

По умолчанию ERwin автоматически сохраняет значения в индексе в порядке возрастания (значения сортируются по алфавиту от A до Z, а числа от 0 до 9).
Если Вы хотите изменить порядок сортировки для колонки и Ваша СУБД поддерживает режим сортировки по убыванию (Z-A, 9-0), выберите колонку и затем поставьте метку в окно check box 'Descending'.



Использование кластеризованного индекса



Кластеризованный индекс - это специальная техника индексирования, при которой данные в таблице физически располагаются в индексированном порядке. Использование кластеризованного индекса значительно ускоряет выполнение запросов, которые производят выборку строк с одинаковыми значениями в индексированной кколонке (колонках). Например, фирма проката видеопродукции может создать кластеризованный индекс по колонке movie-rating. Сохраняя рядом на диске все фильмы с одним и тем же значением movie-rating, Вы повышаете скорость выполнения запроса, который делает выборкку всех фильмов с каким-то определенным значением этой величины, например 'PG'.

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

В некоторых СУБД редактор ERwin Index позволяет присвоить сущности кластеризованный хешированный индекс (clustered hashed index). Хеширование - альтернативный способ хранения данных в заранее заданном порядке с целью ускорения поиска, но физически это более сложно, чем простое сохранение срок в алфавитном порядке или в соответствии с числовыми значениями. См. документацию по Вашей СУБД об индексах clustered hashed index.

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





Как изменить имя индекса



1. Щелкните по индексу, который Вы хотите переименовать, в списке 'Index Name' в верхней части редактора.

2. Отредактируйте имя индекса в текстовом окне 'Index Name', которое расположено под списком.

3. Нажмите кнопку 'Update' для сохранения нового имени.

4. Закончив работу в редакторе, нажмите кнопку 'ОК' для сохранения изменений и выхода из редактора в диаграмму. Вы можете также нажать 'Cancel' для выхода из редактора без сохранения изменений.



Как изменить порядок расположения колонок в индексе



1. В списке 'Index Column' щелкните по атрибуту, расположение которого Вы хотите изменить. Не отпуская кнопку мыши, передвиньте атрибут на то место, над которым Вы хотите его вставить.

2. Отпустите кнопку мыши. ERwin вставит перемещенный атрибут непосредственно над местом, где стоял указатель мыши.

Пусть, например, список 'Index Column' содержит следующие колонки: сustomer_name, customer_address, customer_status_co. Чтобы изменить порядок расположения колонок так, что customer_status_co окажется в первой строчке, а после нее - customer_name и customer_address, выберите customer_status_co и передвигайте его, пока он не окажется поверх customer_name. Когда Вы отпустите кнопку мыши, ERwin вставит customer_status_co над customer_name.



Как перенести колонку в конец списка Index Column



1. Щелкните по второму с конца атрибуту в списке 'Index Column'.

2. Не отпуская кнопку мыши, передвигайте выбранный атрибут, пока он не окажется поверх второго с конца атрибута.

3. Отпустите кнопку мыши. ERwin поместит атрибут в конец.

Пусть, например, список 'Index Column' содержит следующие колонки: customer_status_co, сustomer_name, customer_address. Чтобы поставить customer_status_co в конец, выберите customer_status_co и двигайте его до тех пор, пока он не окажется поверх customer_address. Когда Вы отпустите кнопку мыши, ERwin вставит customer_status_co перед customer_address. Чтобы поменять местами последние два атрибута, передвиньте customer_status_co поверх customer_address.


ERwin поместит имя клиента в первую строку списка.



Колонки индекса по первичному ключу или внешнему ключу нельзя поменять местами в редакторе Index. Вы можете войти в редактор Entity-Attribute и изменить порядок расположения атрибутов первичного ключа в этом редакторе. Вы можете также использовать инструмент Attribute Manipulation Tool, чтобы переставить местами атрибуты первичного и внешнего ключа в окне диаграммы.

Как изменить режим уникальных/неуникальных значений для индекса



1. Выберите тот индекс, для которого Вы хотите изменить режим, разрешив (запретив) повторяющиеся значения. Текущий режим см. в списке 'Index Name' под заголовком Unique.

2. Для того чтобы разрешить использование в индексе только уникальных значений, поставьте метку Х в окно check box 'Unique', которое находится рядом с текстовым окном 'Index Name'. Для того чтобы разрешить использование неуникальных значений в индексе, щелкните по окну 'Unique', чтобы убрать метку.



Для индекса по первичному ключу требуются уникальные значения. Изменить это нельзя. Для индекса по

альтернативному ключу по умолчанию задается режим Unique, но его можно изменить. Для индекса по Inversion Entry должны быть разрешены неуникальные значения. Если Вы изменяете режим на Unique, то ERwin изменяет индекс на индекс по альтернативному ключу.

Как изменить режим кластеризации индекса



1. Выберите тот индекс, для которого Вы хотите изменить режим кластеризации. Текущий режим см. в списке 'Index Name' под заголовком Clustered.

2. Для того чтобы cоздать кластеризованный индекс, поставьте метку Х в окно check box 'Clustered', которое находится рядом с текстовым окном 'Index Name'. Для того чтобы убрать кластеризацию индекса, щелкните по окну 'Clusterd', чтобы убрать метку.

Если Вы щелкнете по окну 'Clustered' более чем для одного индекса одной и той же таблицы, то тот кластеризованный индекс, который Вы задали раньше, автоматически изменится на некластеризованный, поскольку должно выполняться правило: только один индекс в таблице может быть кластеризованным.



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



1. Выберите нужную Вам колонку в списке 'Index Column'.

2. Чтобы задать порядок сортировки по убыванию, щелкните по окну 'Descending', которое расположено над списком 'Index Column', и поставьте в него метку Х. Чтобы сохранить порядок сортировки по возрастанию, который ERwin задает по умолчанию, щелкните по окну 'Descending', чтобы убрать Х.

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

См. далее в этой главе 'Режимы индексирования для различных СУБД'.




Изменение имен атрибутов


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

Если имя атрибута, которое Вы хотите изменить, передается через одну или более дочерних сущностей в качестве внешнего ключа, то этот процесс окажется непростым. Нежелательно изменять имя атрибута в редакторе Entity-Attribute, поскольку оно будет обработано таким образом, как если бы Вы удалили исходный атрибут и задали новый; таким образом, пропадут все Ваши notes и определения, испортятся имена ролей или любой специальный порядок, который Вы задали. Вместо этого Вы хотите просто изменить имя атрибута, не изменяя при этом его другие характеристики.

Для того, чтобы безопасным образом изменить логическое и (или) физическое имя атрибута, пользуйтесь редактором Attribute Definition.В этом редакторе имеются отдельные кнопки 'Update Logical' и 'Replace Physical' для замены логических и физических имен на новые. Отличие в названиях кнопок подчеркивает тот факт, что переименование атрибута приводит к различным результатам на логическом и физическом уровнях.

Как изменить логическое имя атрибута

На логическом уровне, когда Вы изменяете имя неключевого атрибута в редакторе Attribute Definition, логическое имя атрибута (то, которое Вы видите в редакторе Attribute-Definition) изменяется и при этом не теряются и не изменяются notes атрибута, определения, информация о физической схеме и все остальные данные, связанные с атрибутом. Если Вы решили допустить существование в одной сущности неключевых атрибутов с одинаковыми именами, то при изменении имени одного атрибута имена остальных не изменятся.

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



Изменение определений индекса


Если после того, как Вы закончите обратное проектирование базы данных, Вы измените колонки, порядок сортировки или какие-либо другие характеристики индекса в ERwin, возникнут %противоречия между индексной информацией, хранящейся в модели ERwin, и определениями, хранящимися на сервере. Когда это происходит, Вы можете изменить определения индексов в схеме, удаляя старые таблицы и генерируя новые, используя для этого возможности, предоставляемые редактором <DB> Schema Generation Report.

Для того чтобы изменить определения индексов в схеме, войдите в редактор <DB> Schema Generation Report и щелкните по окнам check box DROP TABLE и CREATE TABLE, которые находятся в групповом окне 'Table Option', чтобы указать, что Вы хотите удалить информацию, содержащуюся в выбранных Вами таблицах, и заменить ее новой информацией, которую генерирует ERwin. Когда Вы повторно создаете таблицу (таблицы), убедитесь, что Вы выбрали режимы индексирования, которые Вы хотите включить в схему, такие, как Primary Key, Alternate Key, Clustered и другие режимы, поддерживаемые Вашей СУБД.

Когда Вы используете редактор Schema Generation Report для изменения информации в базе данных, ERwin позволяет Вам выбирать конкретные таблицы, которые Вы хотите создать заново, так чтобы это не отражалось на тех таблицах, которые не изменяются. Нажмите кнопку 'Filter...', которая находится внизу редактора, и войдите в редактор Report Filter, который содержит список всех сущностей (логических имен) в текущей области. Список находится в окне 'Report Filter'. Пользуясь кнопками 'Remove' и 'Remove All', исключите из списка сущности, которые Вы не хотите создавать заново. Если Вы передумали, то включите в список таблицы, которые Вы до этого удалили, пользуясь кнопками 'Add' и 'Add All'.

Когда Вы нажимаете кнопку 'Preview...' в редакторе <DB> Schema Generation Report, Вы можете просмотреть выражения DROP TABLE и SELECT TABLE для выбранной таблицы.

Как изменить определения индексов

1. Дайте команду меню Server '<DB> Schema Generation...' для входа в редактор <DB> Schema Generation Report.


2. Щелкните по окнам check box 'DROP TABLE' и 'CREATE TABLE', которые находятся в групповом окне 'Table Option', для того чтобы ERwin удалил старую таблицу, а затем создал новую в физической схеме.

3. Поставьте метки рядом с режимами индексирования, которые Вы хотиет включить в Вашу схему, в групповом окне 'Index Options'.

4. Для того чтобы выбрать конкретные таблицы, которые нужно удалить и создать заново, нажмите кнопку 'Filter...' слква внизу в редакторе для входа в редактор Report Filter. Пользуйтесь кнопками 'Add' и 'Add All' для добавления таблиц из списка 'Entity Pool' в список 'Report Filter'. Пользуйтесь кнопками 'Remove' и 'Remove All' для возвращения выбранных таблиц обратно в Entity Pool. Нажмите кнопку 'Close' для выхода из редактора и возвращения в редактор <DB> Schema Generation Report.

5. Нажмите кнопку 'Preview...' для просмотра выражений DROP TABLE и CREATE TABLE для выбранных Вами таблиц.

6. Нажмите кнопку 'Generate...' для генерации схемы с новыми определениями таблиц и индексов.

См. Гл.18, Прямое и обратное проектирование, разд. 'Генерация схемы базы данных'.




Изменение режима RI-триггера для связи


Редактор Referential Integrity позволяет Вам изменять правило ссылочной целостности, связанное с конкретной связью. Например, со связью между MOVIE и MOVIE-COPY по умолчанию для случая Parent-Delete устанавливается правило ссылочной целостности RESTRICT. Вы можете изменить правило ссылочной целостности для этой связи на CASCADE, нажав кнопку CASCADE в редакторе Referential Integrity.

Как изменить режим RI-триггера для связи

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

2. Щелкните правой кнопкой мыши и дайте команду pop-up меню Editor 'Referential Integrity' для входа в редактор Referential Integrity.

3. Выберите триггер, который Вы хотите изменить, из списка Trigger Action Type.

4. Нажмите на кнопку Referential Integrity Option, соответствующую режиму, который Вы хотите задать для выбранной связи. Кнопки находятся в групповом окне Referential Integrity.

5. Нажмите 'ОК' для выхода из диалога в диаграмму.



Изображение на экране альтернативных ключей и Inversion Entries


Назначенные альтернативные ключи демонстрируются на экране при включенном режиме 'Alternate Key' меню Display. когда этот режим включен, то после каждого атрибута, назначенного альтернативныым ключом, появляется (Акх). Этот же режим контролирует демонстрацию на экране Inversion Entries. Когда он включен, после каждой Inversion Entry появляется значок (Iex). Когда режим выключен, то эти значки спрятаны. См. Гл.8, Сущности и атрибуты: возможности повышенного уровня сложности, разд. 'Назначение Inversion Entry'.



Изображение на экране имен ролей


Ранее мы рассматривали имена ролей: как и для чего они задаются. ERwin позволяет Вам показать их на диаграмме двумя способами. Демонстрация имен ролей контролируется режимом 'Rolename/Attribute' меню Display. Когда режим включен (стоит метка), то на экран выводятся и имя роли и имя атрибута, через точку. Например: master-number.movie-number. Когда режим выключен, то на экране демонстрируется только имя роли, а имя атрибута (базовое имя) спрятано. См. Гл.8, Сущности и атрибуты: возможности повышенного уровня сложности, разд. 'Использование имен ролей атрибутов'.



Как активизировать поддержку SML в ERwin


1. Дайте команду меню Option 'Preference...'.

2. Находясь в окне-диалоге 'Preference...', поставьте метку в check box 'Show SML'.

При включенном режиме 'Show SML' в меню Report доступны четыре дополнительные команды:

· SML Report

· SML Entity Note

· SML Attribute Note

· SML Relationship Note

Как открыть файл формата SML

ERwin открывает файлы SML из меню File. Убедитесь, что открываемый файл имеет расширение .MPS, чтобы ERwin мог распознать его как файл формата SML.

1. Дайте команду 'File Open'. ERwin открывает окно-диалог Open File.

2. Измените спецификацию имени файла (File Name) на .MPS и, если это необходимо, перейдите в директорию, где хранится файл, который Вы хотите открыть.

3. Выберите нужный Вам файл MPS и нажмите 'ОК'. ERwin откроет диалог Importing MPS File. Поставьте метку в окне 'Show Parse', чтобы на экране отражался построчный анализ.

4. Нажмите кнопку 'Import MPS', чтобы начать обработку файла. Когда обработка будет завершена, ERwin выведет на экран сообщение 'Import Successful'. Если обработка завершилась неудачно, то ERwin выводит на экран сообщение, содержащее описание ошибки и место, в котором она произошла. Если Вы задали режим 'Show Parse', то будет отмечено, в какой строке произошла ошибка.

В случае. если при импорте SML произошла ошибка, Вы можете:

· Нажать кнопку 'View ERor', чтобы проанализировать содержимое ошибки. Для непосредственного редактирования файла MPS (в Windows Notepad) нажмите кнопку 'Edit...'. Когда Вы внесете все исправления, сохраните файл, вернитесь в ERwin и снова дайте команду 'Import MPS', чтобы попробовать повторить импорт.

· Нажать кнопку 'Cancel', чтобы отменить обработку.

Как сохранить диаграмму в формате SML

1. Дайте команду меню Option 'Preference...' и задайте режим 'Show SML' в окне-диалоге Preference.

2. Выберите область и, используя кнопку Report Filter, выберите сущности, которые Вы хотите включить в отчет SML. См. Гл.17, Отчеты в ERwin, разд. 'Выбор сущностей'.

3. Дайте команду меню Report 'SML Report...', чтобы открыть окно-диалог Generate ERwin SML Report.

4. Задайте в качестве файлового типа 'SML Report'. Выберите директорию, в которую Вы запишете файл, и выберите или введите имя файла.

5. Нажмите кнопку 'ОК'. ERwin генерирует отчет и записывает его в файл, которому Вы присвоили имя.



Как более быстро открывать редакторы


Когда Вам нужно ввести большой объем информации о сущностях и связях, Вам может потребоваться более быстрый способ входа в различные редакторы ERwin для ввода данных. ERwin позволяет быстро открывать редактор двумя способами: с помощью объектно-ориентированных сокращенных меню, вызываемых правой кнопкой мыши, и команды 'Fast Editor'.

Как пользоваться объектно-ориентированными сокращенными меню

Объектно-ориентированные сокращенные меню ERwin - это меню, содержащие только те команды, которые применимы в данный момент для того объекта, на который указывает курсор. Например, если курсор указывает на сущность, то сокращенное меню содержит только те редакторы, которые можно открыть для сущности. Такие сокращенные меню есть для каждого объекта ERwin: сущностей, связей, связей подтипов, текстовых блоков. Есть также сокращенное меню для диаграмм, которое позволяет Вам изменить режим демонстрации объектов на диаграмме. Для того. чтобы войти в сокращенное меню, нужно установить курсор на объект и затем нажать правую кнопку мыши.

ERwin позволяет Вам перейти в д>



Как быстро изменить кардинальность связи


Дайте команду 'Relationship Browser...' в меню Report. Выделите бизнес-утверждение, для которого Вы хотите изменить ккардинальность, и нажмите кнопку 'Edit...'. Вы войдете в редактор Relationship Editor. Измените кардинальность, нажмите 'ОК' для выхода из редактора и возвращения в Relationship Browser. Снова нажмите 'ОК' для сохранения изменений, выхода из Browser и возвращения в диаграмму.



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


1. Дайте команду 'Sync ERwin with <DB>' в меню Server для входа в диалог DB Sync. Подсоединитесь к базе данных, если ERwin откроет окно-диалог <DB> Connection.

2. Дважды щелкните по строке, содержащей две таблицы 'In Sync' в списке Sync Action или щелкните по этой строке, а потом нажмите кнопку 'Unsync...'. ERwin удалит таблицы In Sync из списка Sync Action и вернет каждую из двух таблиц в ее список 'Unsynched'.



Как гарантировать уникальность имен сущностей и атрибутов


С точки зрения бизнеса, при проектировании модели данных важно убедиться, что каждая физическая колонка содержит отдельный элемент данных для каждой строки таблицы. Например, в примере 'Video Store' каждая копия конкретного фильма должна быть уникальным образом идентифицирована для того, чтобы обеспечить нормальное управление учетом фильмов. Если Вы присвоите одно и то же имя двум или более сущностям, например назовете сущности MOVIE и MOVIE-COPY одинаково 'MOVIE', то вскоре возникнут проблемы. В общем, использование омонимов (одно слово служит для обозначения двух разных понятий в модели данных) приводит к серьезной путанице и может стать причиной ошибок, когда Вы даете запросы на считывание конкретных наборов данных.

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

Глава 11 Документирование Правил (Business Rules)


С точки зрения бизнеса, при проектировании модели данных важно убедиться, что каждая физическая колонка содержит отдельный элемент данных для каждой строки таблицы. Например, в примере 'Video Store' каждая копия конкретного фильма должна быть уникальным образом идентифицирована для того, чтобы обеспечить нормальное управление учетом фильмов. Если Вы присвоите одно и то же имя двум или более сущностям, например назовете сущности MOVIE и MOVIE-COPY одинаково 'MOVIE', то вскоре возникнут проблемы. В общем, использование омонимов (одно слово служит для обозначения двух разных понятий в модели данных) приводит к серьезной путанице и может стать причиной ошибок, когда Вы даете запросы на считывание конкретных наборов данных.

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

Чтобы избежать путаницы на стадии проектирования и снизить вероятность появления некорректных запросов в будущем, когда база данных уже будет работать, ERwin может быть конфигурирован таким образом, чтобы автоматически предотвратить присваивание двойных имен сущностям и атрибутам. Если задан режим 'Disallow' для омонимов в окне ERwin 'Unique Name', то ERwin автоматически будет выдавать сообщение, если Вы попытаетесь выйти из редактора после того, как случайно введете двойное имя сущности или атрибута.

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

Как управлять обработкой
двойных имен сущностей и атрибутов в ERwin

1. Дайте команду 'Unique Name...' в меню Option. Вы войдете в окно-диалог, в котором можно выбрать четыре разных режима.


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

· 'Rename' (принимается по умолчанию для новой диаграммы) - двойное имя принимается, но к нему автоматически добавляется косая черта и номер (например, attribute-name/2). Косая черта говорит о том, что имя уже использовалось в диаграмме, а номер показывает, сколько раз оно использовалось (в примере оно использовалось 2 раза).

· 'Allow' - использование двойных имен разрешается. В этом случае ERwin НЕ предупреждает Вас о возможном дублировании.



· 'Disallow' - ввод двойных имен сущностей или атрибутов не разрешается. Если двойное имя обнаружено уже после закрытия редактора Entity- Attribute, то ERwin выдает на экран окно с сообщением, что ввод неуникальных имен запрещается. Когда Вы нажимаете 'ОК', чтобы закрыть окно сообщения, ERwin возвращает Вас в редактор Entity-Attribute, чтобы Вы могли ввести уникальное имя. Если найдено несколько двойных имен, то ERwin выдает сообщение- предупреждение для каждого, а затем удаляет новый двойной атрибут из сущности. Он не входит повторно в редактор Entity-Attribute для внесения изменений в имена атрибутов. Для того, чтобы заново ввести атрибуты с другими, уникальными именами, Вам нужно будет вновь открыть редактор Entity-Attribute.

· 'Ask' - ERwin будет показывать на экране окно- диалог Edit Unique Name каждый раз, когда Вы вводите неуникальное имя сущности или атрибута.

В диалоге Edit Unique Name Вы можете ввести другое имя или разрешить дублирование. Новое имя, которое Вы вводите, не проверяется на уникальность.

Если в этом окне Вы нажмете кнопку 'Cancel', ERwin сообщит Вам, разрешено ли использование неуникального имени.

2. Нажмите 'ОК' для сохранения заданного режима, выхода из диалога Unique Name Option и возвращения в диаграмму.



Когда Вы используете функции Copy и Paste для дублирования одного или нескольких объектов диаграммы, то ERwin не делает проверку на уникальность. Если же Вы затем просматриваете одну из вставленных сущностей, в редакторе Entity-Attribute, то при попытке выйти из редактора уникальность проверяется (только для имени сущности).


Как генерировать индексы в физической схеме


Дайте команду меню Server '<DB> Schema Generation...' для входа в редактор Schema Generation Report. Ставьте метки в окнах check box группового окна Index Options, чтобы указать, какие типы индексов Вы хотите включить в схему.



Как генерировать триггеры для использования в отчетах или в СУБД


Включите необходимые режимы Triggers в редакторе Target Server Schema Report.



Как импортировать таблицу из базы данных в ERwin


1. Дайте команду 'Sync ERwin with <DB>' в меню Server для входа в диалог DB Sync. Подсоединитесь к базе данных, если ERwin откроет окно-диалог <DB> Connection.

2. Выделите те таблицы, которые Вы хотите импортировать в ERwin из базы данных, в списке 'Unsynched <DB>Table'.

3. Щелкните по верхней, пунктирной строчке (----) в списке 'Unsynched ERwin Table', чтобы создать новую таблицу в ERwin.

Когда Вы связываете имя таблицы в одном списке 'Unsynched' с пунктирной строкой в другом, то ERwin создает в этой среде новую таблицу.

Если Вы выбираете во втором списке 'Unsynched' не пунктирную строчку, а имя таблицы, то ERwin переименовывает таблицу в этой среде, а не создает новую.

4. Нажмите кнопку 'Import'. ERwin добавляет выбранную таблицу в список Sync Action и присваивает ей действие 'Reverse Engineer'.

Если Вы выбрали таблицу, а потом передумали, то Вы можете отменить действие по синхронизации нажатием кнопки 'Unsync'. ERwin удаляет таблицу из списка Sync Action и возвращает ее в свой список 'Unsynched'.

5. Когда Вы выберете все, что хотели, выберите снова таблицы, которые Вы хотите импортировать, в окне Sync Action. Нажмите кнопку 'RE Option...' для входа в диалог ERwin/DB Reverse Engineer Options.

6. Пользуйтесь кнопками выбора и check box в диалоге ERwin/DB Reverse Engineer Options для задания режимов, которые Вы хотите включить, когда ERwin будет производить обратное проектирование выбранных таблиц.

Нажмите кнопку 'Close' для выхода из диалога ERwin/DB Reverse Engineer Options, когда Вы будете готовы к проведению процесса синхронизации.

О режимах генерации схемы см. Гл.18, Прямое и обратное проектирование, разд. 'Генерация схемы базы данных'.

7. Нажмите кнопку 'Execute' в нижней части окна-диалога DB Sync для запуска процесса синхронизации. ERwin считывает информацию - определения ERwin для выбранных таблиц и создает выбранные таблицы в базе данных.

После того как ERwin cоздаст (или переименует) таблицы в базе данных, он выводит на экран окно с сообщением, сколько таблиц и колонок он импортировал из базы данных.

8. Нажмите 'ОК', чтобы убрать окно-сообщение и вернуться в окно диаграммы.



Как использовать режим меню Edit


Еще один быстрый способ открыть редактор, разрешенный в данный момент, для какого-то конкретного типа объектов - с помощью режима 'Edit <Object>...' меню Edit. Например, если Вы щелкнули по линии связи и текущий редактор, ориентированный на связи - это редактор Referential Integrity, то ERwin изменит название режима 'Edit <Object>...' на 'Edit Referential Constraints...'. Если Вы дадите эту команду меню, то ERwin войдет в редактор Referential Integrity.



Как использовать встроенные триггеры


Ничего не делайте. Встроенные триггеры автоматически конфигурируются, когда Вы задаете объекты и устанавливаете режимы RI.



Как изменить физические имена атрибутов


1. Дайте команду 'Attribute Definition' в меню Editor.

2. Дважды щелкните по той сущности, которую Вы хотите редактировать. Вы войдете в редактор Attribute Definition.

3. Выделите атрибут, который Вы хотите переименовать, в списке 'Entity-Attribute List'.

4. Введите новое физическое имя выбранного атрибута в текстовое окно 'Physical

5. Нажмите кнопку 'Replace Physical'.

Если в окне Check box 'Ask on Update' стоит Х (так делается по умолчанию), ERwin попросит Вас подтвердить изменение имени до того, как оно будет произведено. Если окно пустое, ERwin не просит Вас подтвердить изменение логического имени атрибута.

6. Нажмите кнопку 'Yes' для того, чтобы изменить имя в редакторе и на всей диаграмме. Нажмите 'No', если хотите отменить изменение имени.

7. Завершив изменение логических имен, нажмите 'Close' для сохранения изменений, выхода из редактора и возвращения в диаграмму.

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



Как изменить хранимую процедуру


1. Войдите в редактор Stored Procedure Template.

2. Щелкните по имени шаблона, который Вы хотите изменить, в списке 'Template Name' наверху редактора.

3. Щелкните по окну Template Code и отредактируйте макрокод, используя встроенные макрокоманды и стандартные клавиши редактирования текста. Если Вы знаете синтаксис языка СУБД, установленной в настоящий момент, то Вы можете вводить выражения SQL непосредственно в окно Template Code.

4. Нажмите кнопку 'Update' для сохранения изменений.

5. Нажмите 'ОК' для выхода из редактора шаблонов в редактор Table Property.



Как изменить или удалить имя роли для атрибута внешнего ключа


Щелкните правой кнопкой мыши по линии связи или связи подтипов, соединенной с той сущностью, атрибут внешнего ключа которой Вы хотите удалить или изменить. Дайте команду 'Relationship' в меню Editor. Выберите атрибут из списка в окне 'Foreign Key'. Измените или удалите имя роли в окне 'Role Name'. Нажмите кнопку 'ОК' для того, чтобы сохранить имя роли и вернуться в диаграмму.



Как изменить имя, имя автора и описание хранимого изображения


Дайте команду 'Stored Display...' в меню Window. Внесите необходимые изменения и нажмите кнопку 'ОК' для сохранения изменений. Затем нажмите 'ОК' для сохранения изменений, выйдите из редактора и вернитесь в диаграмму.