On-Line Библиотека www.XServer.ru - учебники, книги, статьи, документация, нормативная литература.
       Главная         В избранное         Контакты        Карта сайта   
    Навигация XServer.ru








 

Глава 12 Задание Информации, Ориентированной на Субд

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

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

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

Команда '<DB> Database Schema' меню Editor позволяет Вам просматривать и изменять характеристики генерируемых колонок. Команды меню Display 'Physical Schema Level' и 'Physical Order Level' позволяют Вам просматривать информацию о физической схеме в окне диаграммы ERwin.

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

· Задавать и изменять информацию о физической схеме.

· Выбирать СУБД.

· Задавать тип данных по умолчанию и режимы нулевых данных для новых колонок.

· Преобразовывать типы данных колонок при переходе к другому серверу СУБД.

· Просматривать информацию о физической схеме в окне диаграммы ERwin.

· Связывать имена на физической схеме с именами логической модели ERwin.

· Задавать и изменять характеристики на уровне колонок.

· Подсоединять ERwin к серверу СУБД.

· Синхронизировать ERwin c базой данных.

Выбор СУБД

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

Для того, чтобы выбрать СУБД, дайте команду меню Server 'Target Server'. Вы войдете в редактор Target Server.

Задание значений по умолчанию

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

Сервер СУБД по умолчанию и список доступных серверов, который можно посмотреть в редакторе Target Server, определяется в зависимости от того, какая версия ERwin установлена на Вашей машине. Например, СУБД, принимаемая по умолчанию для ERwin/ERX - 'SQL Server', а для ERwin/ERX for PowerBuilder - 'WATCOM.SQL'. В зависимости от версии ERwin Вы можете выбирать СУБД из списка, который содержит до 12 SQL-СУБД и 6 СУБД, ориентированных на РС. Просто щелкните по кнопке рядом с выбранной Вами СУБД.

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

ERwin автоматически присваивает тип текстовых (символьных) данных, установленный по умолчанию, который поддерживается СУБД (например, в редакторе Target Server задан Default Datatype - CHAR(18)). Тип данных, установленный по умолчанию, определяет, какой тип данных будет присвоен каждой колонке по умолчанию при создании физической схемы. Значение CHAR(18) означает, что все колонки будут заданы таким образом, чтобы в них можно было хранить текстовую строку длиной до 18 символов. Если Вы хотите изменить тип данных, устанавливаемый по умолчанию, щелкните в окне 'Default <DB> Datatype' и введите другой тип данных, включая аргумент, если это необходимо.

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

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

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

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

Как выбрать СУБД

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

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

3. Нажмите 'ОК' для сохранения Вашего выбора СУБД и сделанных изменений и возвращения в диаграмму. Для возвращения в диаграмму без изменения установок для СУБД нажмите 'Cancel'.

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

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

2. Нажмите клавишу 'стрелка вниз', чтобы открыть окно-список '<DB> Default Datatype...' и выберите один из типов данных, которые поддерживаются Вашей СУБД.

3. Щелкните по текстовому окну и введите значение, если у Вашего типа данных переменный аргумент. Например, Вы можете вместо CHAR(18) задать CHAR(10).

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

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

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

2. Нажмите кнопку 'NULL', чтобы разрешить ввод нулевых значений в неключевые колонки. Нажмите 'NOT NULL', чтобы запретить ввод нулевых значений в эти колонки.

3. Нажмите 'ОК' для сохранения режима нулевых значений и возвращения в диаграмму. Для возвращения в диаграмму без изменений нажмите 'Cancel'.

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

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

2. Нажмите кнопку 'Reset Physical Name...'. Вы входите в окно-диалог, которое позволяет Вам выбирать, какие имена Вы хотите изменить.

3. Поставьте метку в нужном окне check box, чтобы изменить:

· Все имена в таблице на соответствующие логические имена сущностей;

· Все имена колонок на соответствующие логические имена атрибутов;

· Все физические имена связей на соответствующие логические глагольные фразы;

· Все имена индексов на соответствующие имена, присваиваемые по умолчанию; и

· Все имена колонок индексов на соответствующие логические имена атрибутов.

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

Преобразование типов данных СУБД

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

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

Если Вы отвечаете 'Yes', то ERwin преобразует все типы данных на Вашей диаграмме в эквивалентные типы данных для Вашей СУБД. Если вы отвечаете 'No', то ERwin сохраняет типы данных, которые Вы присвоили для ранее выбранной СУБД.

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

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

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

Поставив метки в окне Datatype Mapping Exception Report, дайте команду '<DB> Database Schema...' в меню Editor для входа в редактор Database Schema и преобразования вручную типов данных для колонок физической схемы в типы данных, которые поддерживаются Вашей новой СУБД.

Как преобразовать типы данных при изменении СУБД

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

2. Выберите новую СУБД и нажмите 'ОК'.

3. Когда ERwin спросит Вас, хотите ли Вы автоматически преобразовать типы данных, нажмите 'Yes' для произведения преобразования или 'No', чтобы оставить имеющийся набор типов данных. Нажмите 'Cancel' для отмены процесса преобразования и возвращения в диаграмму.

Если Вы ответили 'Yes' и хотите, чтобы ERwin преобразовал также типы данных, используемые в доменах сервера (ранее они назывались 'типами данных, определяемыми пользователем'), поставьте метку в check box 'Convert Server-Domain Datatype' в окне-диалоге Datatype Conversion. Если Вы не поставите метку, то ERwin будет использовать тот тип данных домена, который был в исходной СУБД.

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

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

Каскадное меню '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 автоматически создает для каждой связи физическое имя связи, присваиваемое по умолчанию, которое основано на начальных буквах логическкой глагольной фразы, связанной со связью. Вы можете изменить имя связи, присвоенное по умолчанию, в редакторе Relationship. Но это имя не должно содержать пробелов (в имени, присваиваемом по умолчанию, вместо пробела ставится знак подчеркивания). Длина физического имени связи ограничивается Вашей СУБД.

Как изменить физическое имя связи

1. Выберите связь, щелкнув по линии связи, и нажмите правую кнопку мыши для входа в pop-up меню Editor.

2. Дайте команду меню Editor 'Relationship Definition' для входа в редактор Relationship Definition для выбранной связи.

3. Щелкните по текстовому окну 'Relationship Physical Name'. Передвигая мышь, выделите старое имя и нажмите Delete, чтобы его удалить.

4. Введите физическое имя, которое хотите присвоить связи, и нажмите 'OK' для сохранения нового имени. Нажмите 'Cancel' для отмены изменения и восстановления старого физического имени.

Вы можете также отредактировать физическое имя связи в редакторе Referential Integrity.

Связывание физических имен

Физическое имя сущности, атрибута или связи в ERwin автоматически связывается с логическим именем объекта, когда Вы просматриваете диаграмму на уровне Physical Schema или при открытии отчета ERwin. Физическое имя связывается также и тогда, когда выбран объект и Вы открываете один из следующих редакторов ERwin:

· Database Schema Editor

· Attribute Definition Editor

· Relationship Definition Editor

· Referential Integrity Editor

Физическое имя колонки связывается с атрибутом ERwin, когда: 1) Вы открываете редактор Database Schema для сущности, содержащей атрибут; 2) Вы открываете редактор Database Schema для сущности, которая является родителем другой сущности, содержащей атрибут, и включаете режимы Field Name Inheritance при выходе из редактора.

Повторное связывание физических имен

ERwin автоматически связывает физические имена с логическими, когда Вы просматриваете диаграмму на уровне Physical Schema, открываете любой отчет ERwin, или (часто) при открытии редактора для объекта ERwin. По мере того как Ваша модель данных развивается, некоторые из физических имен приходится изменять (например, если изменились имена атрибутов в связи с заданием имен ролей). Функция Rebind Physical Name позволяет Вам быстро обновить все физические имена в диаграмме, приводя их в соответствие с логическими.

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

1. Войдите в редактор Target Server и нажмите кнопку 'Rebind Physical Name...'. После того как Вы нажали 'ОК' и зафиксировали изменения, ERwin сразу же изменяет:

· Все имена в таблице на соответствующие логические имена сущностей;

· Все имена колонок на соответствующие логические имена атрибутов;

· Все физические имена связей на соответствующие логические глагольные фразы;

· Все имена индексов на соответствующие имена, присваиваемые по умолчанию; и

· Все имена колонок индексов на соответствующие логические имена атрибутов.

Эти изменения распространяются на всю диаграмму.

Задание информации физической схемы

Когда Вы добавляете атрибут к сущности в ERwin, имя атрибута автоматически используется в качестве имени колонки, присваиваемого по умолчанию соответствующей колонке в физической схеме. Другие характеристики автоматически присваиваются новым колонкам, исходя из значений, присваиваемых по умолчанию и заданных в редакторе Target Server. Например, если Вы задали в редакторе Target Server тип данных по умолчанию для новых колонок CHAR(10), то новым колонкам при создании будет автоматически присвоен этот тип данных.

Присваивание характеристик колонкам

Колонке физической таблицы могут быть присвоены следующие характеристики: Имя колонки, Тип данных, Режим нулевых значений, Правило валидации, Значение по умолчанию, Правила миграции характеристик колонки. ERwin позволяет использовать несколько различных редакторов для определения, модифицирования и присвоения характеристик колонкам физической таблицы. Значение каждой из характеристик, присваиваемое по умолчанию, можно изменить для каждой колонки в отдельности в редакторе ERwin Column Property. Редакторы Default, Validation Rule и Valid Value позволяют Вам задавать начальные значения, выражения сервера% и фиксированные списки значений, которые присваиваются в качестве ограничений и ограничивают значения данных, которые могут быть записаны в конкретную колонку.

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

Команда меню Server '<DB> Database Schema....' используется для открытия редактора Column Property. Этот редактор позволяет Вам просматривать характеристики каждой колонки в каждой таблице физической схемы и обращаться к редакторам для создания значений по умолчанию, правил валидации и доменов.

Как войти в редактор Database Schema/Column Property

1. Дайте команду '<DB> Database Schema...' в меню Editor, чтобы сделать этот редактор активным.

2. Дважды щелкните по сущности на Вашей диаграмме. Вы входите в редактор Column Property.

Работа в редакторе Column Property

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

Редактор Column Property демонстрирует имя выбранной сущности и соответствующей физической таблицы в верхней части диалога. Прямо под именем сущности/таблицы находится список, содержащий информацию о каждой колонке выбранной таблицы, включая имя колонки, тип данных, имя атрибута и текущий режим нулевых значений. Для просмотра колонок в другой таблице нажмите стрелку вниз, которая находится рядом с окном 'Entity' и разверните список сущностей, в котором выберите другую сущность, щелкнув по ней. ERwin сразу же выводит на экран информацию о колонках для новой сущности.

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

Чтобы изменить значение характеристики для выделенной колонки, щелкните по нужномуу значению из списка, check box или нажмите нужную кнопку. Например, чтобы изменить тип данных. присваиваемый по умолчанию, с INTEGER на CHAR, щелкните по строке 'CHAR()' в списке '<DB> Datatype', который находится слева. Чтобы изменить имя колонки, щелкните по текстовому окну 'Column', нажмите клавишу DELETE для удаления старого имени и введите новое.

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

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

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

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

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

Если Вы изменяете какие-либо характеристики, связанные с колонкой, изменение происходит, когда Вы 1) выделяете другую колонку или 2) переходите к другой сущности. После того, как Вы произвели все желаемые изменения характеристик колонок, нажмите 'ОК' для сохранения изменений и возвращения в окно диаграммы. Нажмите 'Cancel' для отмены изменений и возвращения в окно диаграммы.

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

Характеристики колонок по умолчанию

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

ERwin автоматически присваивает каждой колонке при ее создании тип данных по умолчанию, определенный в редакторе Target Server, и этот тип данных сохраняется, если Вы не измените его в редакторе Column Property.

ERwin также автоматически присваивает режимы нулевых значений всем неключевым колонкам, исходя из значений по умолчанию, устанавливаемых в редакторе Target Server. Однако, поскольку ключевые колонки по определению не могут быть NULL, ERwin устанавливает режим NOT NULL для каждой колонки первичного ключа и (или) альтернативных ключей. Режим NOT NULL не присваивается автоматически Invеrsion Entry.

Миграция характеристик колонок

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

По умолчанию ERwin переносит все характеристики колонки, за исключением имени колонки. Если Вы не хотите переносить какие-то характеристики, щелкните по Check box в окне 'Migrate' и уберите из него метку Х. Если Вы хотите перенести характеристики в колонки внешнего ключа, щелкните по Check Box и поставьте метку.

Если Вы поставили метки в каких-либо check box в окне Migrate, то при входе в редактор Column Property вся информация о соответствующих характеристиках колонки автоматически переносится во внешние ключи дочерних сущностей во всей диаграмме.

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

Если Вы планируете использовать различные имена колонок в качестве внешних ключей, мы рекомендуем Вам поставить метку в check box 'Col Name' в окне Migrate, когда Вы первый раз начинаете ввод характеристик колонок для зависимых сущностей. Позднее, если Вы вносите изменения в имена колонок для дочерних сущностей, убедитесь, что у Вас в check box 'Col Name' не стоит метка, иначе Ваши имена внешних ключей, которые Вы приспособили для своей ситуации. будут заменены на новые.

ERwin позволяет изменить имена колонок в физической схеме двумя способами: с помощью кнопки 'Replace Physical' в редакторе Attribute Definition или с помощью check box Migrate 'Col Name' в редакторе Column Property. Ниже приводится таблица, в которой описываются отличительные черты этих двух способов. См. Гл.3, Сущности и атрибуты в ERwin, разд. 'Работа в редакторе Attribute Definition'.

Сравнение - изменение имен колонок в разных редакторах

Каким образом изменяется имя колонки

Кнопка 'Replace Physical' в редакторе Attribute Definition

Check box Migrate 'Col Name' в редакторе Column Property

На каких сущностях отражается изменение

Изменяются имена колонок в родительских и дочерних сущностях.

Изменяются имена колонок только в дочерних сущностях.

Какие имена колонок изменяются

Только идентичные имена колонок (совпадающие с текстовыми строками).

Все имена колонок внешних ключей в дочерних сущностях.

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

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

1. Дайте команду '<DB> Database Schema' в меню Editor, а затем дважды щелкните по любой сущности для входа в редактор Column Property.

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

3. Установите курсор в текстовое окно 'Table' и с помощью клавиш BACKSPACE и (или) DELETE удалите старое имя. Введите новое имя, добавляя новый текст. Максимальная длина будет определяться Вашей СУБД.

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

Как модифицировать имя колонки

1. Дайте команду '<DB> Database Schema' в меню Editor, а затем дважды щелкните по любой сущности для входа в редактор Column Property.

2. Щелкните по стрелке вниз и разверните список 'Entity', который находится наверху редактора. Выберите сущность, содержащую колонку, которую Вы хотите изменить.

3. Выберите колонку, имя которой Вы хотите изменить, из списка в верхней части редактора Column Property.

4. Установите курсор в текстовое окно 'Column' и с помощью клавиш BACKSPACE и (или) DELETE удалите старое имя. Введите новое имя, добавляя новый текст. Максимальная длина будет определяться Вашей СУБД.

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

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

1. Дайте команду '<DB> Database Schema' в меню Editor, а затем дважды щелкните по любой сущности для входа в редактор Column Property.

2. Щелкните по стрелке вниз и разверните список 'Entity', который находится наверху редактора. Выберите сущность, содержащую колонку, которую Вы хотите изменить.

3. Выберите колонку, тип данных которой Вы хотите изменить, из списка в верхней части редактора Column Property. ERwin покажет на экране тип данных, который в настоящий момент присвоен выбранной колонке, в списке '<DB> Datatype' в левой части редактора.

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

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

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

1. Дайте команду '<DB> Database Schema' в меню Editor, а затем дважды щелкните по любой сущности для входа в редактор Column Property.

2. Щелкните по стрелке вниз и разверните список 'Entity', который находится наверху редактора. Выберите сущность, содержащую колонку, которую Вы хотите изменить.

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

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

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

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

1. Дайте команду '<DB> Database Schema' в меню Editor, а затем дважды щелкните по любой сущности для входа в редактор Column Property.

2. Щелкните по стрелке вниз и разверните список 'Entity', который находится наверху редактора. Выберите сущность, содержащую колонку, которую Вы хотите изменить.

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

4. Нажмите стрелку вниз и разверните список 'Default', а затем щелкните по значению, которое Вы хотите присвоить выбранной колонке.

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

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

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

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

1. Дайте команду '<DB> Database Schema' в меню Editor, а затем дважды щелкните по любой сущности для входа в редактор Column Property.

2. Щелкните по стрелке вниз и разверните список 'Entity', который находится наверху редактора. Выберите сущность, содержащую колонку, которую Вы хотите изменить.

3. Выберите колонку, которой Вы хотите присвоить правило валидации, из списка в верхней части редактора Column Property.

4. Нажмите стрелку вниз и разверните список 'Valid', а затем щелкните по правилу валидации, которое Вы хотите присвоить выбранной колонке.

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

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

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

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

1. Дайте команду '<DB> Database Schema' в меню Editor, а затем дважды щелкните по любой сущности для входа в редактор Column Property.

2. Щелкните по стрелке вниз и разверните список 'Entity', который находится наверху редактора. Выберите сущность, содержащую колонку, которую Вы хотите изменить.

3. Выберите колонку, которой Вы хотите присвоить домен, из списка в верхней части редактора Column Property. ERwin выделяет имя домена, присвоенного выбранной колонке в данный момент, в списке 'Domain' с правой стороны редактора.

4. Чтобы присвоить колонке другой домен, щелкните по его имени в списке 'Domain'.

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

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

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

1. Откройте редактор Column Property и выберите колонку, с которой Вы хотите связать новое ограничение.

2. Щелкните по check box 'Attach', поставьте в него значок Х.

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

Например, если Вы выделите колонку due_date в таблице MOVIE в редакторе Column Property, а затем нажмете кнопку 'Validation...', то ERwin автоматически вставит due_date в качестве имени нового правила валидации. После того, как Вы закончите задание правила валидации и вернетесь в редактор Сolumn Property, новое правило валидации будет автоматически связано с колонкой due_date.

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

1. Войдите в редактор Column Property и выберите колонку, характеристики которой Вы хотите восстановить.

2. Нажмите кнопку 'Reset...'. Вы войдете в окно-диалог Reset Column Properties.

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

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

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

· Нажмите кнопку 'Only column <column_name>', чтобы восстановить помеченные характеристики только для заданной колонки.

· Нажмите кнопку 'All columns of table <table_name>', чтобы восстановить помеченные характеристики для всех колонок заданной таблицы.

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

Как произвести миграцию характеристик колонки
в колонки внешних ключей

1. Откройте редактор Column Property и выберите колонку первичного ключа, миграцию характеристик которой Вы хотите произвести.

2. Щелкните по check box 'Migrate', который находится в верхней части группового окна Migrate, поставьте в него значок Х.

3. Щелкните по одному или нескольким check box для характеристик колонки в групповом окне Migrate Options, чтобы пометить, миграцию каких характеристик из выбранной колонки первичного ключа в связанные с ней колонки внешних ключей дочерних сущностей Вы хотите произвести.

Например, если Вы хотите произвести миграцию типа данных колонки первичного ключа во все связанные с ней колонки внешних ключей, поставьте Х в check box 'Datatype'.

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

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

Усовершенствование Вашей модели с помощью ограничений

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

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

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

Терминология

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

Терминология домена СУБД

СУБД

Термин для ограничений домена колонки

Термин для ограничений домена таблицы

AS/400

-

-

DB2

DB2 FIELDPROC

DB2 VALIDPROC

INFORMIX

Проверочное ограничение на колонку INFORMIX

Проверочное ограничение на таблицу INFORMIX

Ingres

Ограничение целостности Ingres

Ограничение целостности Ingres

NetWare SQL

Имя домена*

Имя домена*

ORACLE

Проверочное ограничение на колонку ORACLE

Проверочное ограничение на таблицу ORACLE

Progress

Проверочное ограничение на колонку Progress

Проверочное ограничение на таблицу Progress

Rdb

Проверочное ограничение на колонку Rdb

Проверочное ограничение на таблицу Rdb

SYBASE

Имя правила SYBASE

-

SQLBase

Имя домена*

Имя домена*

SQL Server

Имя правила SQL Server

-

РИС. 13.15

NetWare SQL и SQLBase не поддерживают домены. ERwin позволяет использовать редакторы доменов для этих СУБД, но не генерирует для них операторы доменов.

Работа в редакторе <DB> Default

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

Например, в таблице MOVIE_RENTAL_RECORD в диаграмме MOVIES колонке due_date может быть присвоено значение по умолчанию 'сегодняшнее число'+1. Присвоив это значение по умолчанию колонке due_date, мы автоматически задаем, что все договора истекают на следующий день.

В верхней части редактора Default находится окно-список, содержащее все существующие значения по умолчанию. Чтобы создать новое значение по умолчанию, введите имя в текстовое окно 'Default Name' и затем нажмите кнопку 'New'. Чтобы изменить существующее значение по умолчанию, выберите из списка то значение, которое Вы хотите изменить, измените значение в текстовом окне 'Default Value' и нажмите кнопку 'Update'. Чтобы удалить значение по умолчанию, выберите из списка то значение, которое Вы хотите удалить, и нажмите кнопку 'Delete'.

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

Создав значение по умолчанию, Вы можете затем присвоить его одной или более колонкам с помощью редактора Column Property. Чтобы присоединить значение по умолчанию, откройте редактор Column Property, выберите ту колонку, к которой Вы хотите присоединить значение по умолчанию, и выберите значение из списка 'Default'. См. ранее в этой главе разд. 'Работа в редакторе Column Property'.

Если текущая СУБД - SYBASE, версия 10 (только эта СУБД), редактор <DB> Default будет содержать кнопки 'sp_bindefault' и 'DEFAULT' (и, кроме них, средства управления, о которых говорилось выше), которые позволяют Вам определить, каким образом ERwin будет генерировать значение (значения), присваиваемые колонке в схеме по умолчанию. Для создания отдельного выражения языка, которое определяет значение (значения) по умолчанию, и связывания этого выражения с колонкой нажмите кнопку 'sp_bindefault'. Для включения выражения языка DEFAULT, которое определяет значение (значения) по умолчанию для колонки в команде CREATE TABLE, нажмите кнопку 'DEFAULT'. См. также Руководство по SYBASE SQL Server.

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

1. Дайте команду 'Default/Initial...' в меню Server. Вы войдете в редактор <DB> Default.

2. Введите имя значения по умолчанию, которое Вы хотите создать, в окно 'Default Name'. Если Вы хотите создать значение по умолчанию для колонки due_date, равное сегодняшнему числу +1, то Вы можете назвать значение Due Date.

3. Введите выражение для значения по умолчанию в список 'Default Value'. Например, чтобы создать значение по умолчанию для колонки due_date, введите в окно 'Default Value' выражение 'Current Date+1'. Информацию о синтаксисе выражения см. в документации по Вашей СУБД.

4. Нажмите кнопку 'New'. ERwin добавляет новое значение по умолчанию в список 'Default Name'.

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

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

1. Дайте команду 'Default/Initial...' в меню Server. Вы войдете в редактор <DB> Default.

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

· Чтобы изменить имя значения по умолчанию, щелкните по текстовому окну 'Default Value' в верхней части редактора, удалите старое имя с помощью DELETE или BACKSPACE и введите новое.

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

4. Закончив вносить изменения, нажмите кнопку 'Update'. ERwin изменяет информацию в списке 'Default Name'.

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

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

1. Дайте команду '<DB> Database Schema...' в меню Editor. Вы войдете в редактор Column Property.

Установите курсор на ту сущность, которую Вы хотите выбрать, и щелкните правой кнопкой мыши для входа в pop-up меню Editor. Дайте команду '<DB> Database Schema...'.

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

3. Щелкните по стрелке 'вниз' рядом со списком 'Default' в нижней части редактора и выберите значение по умолчанию, которое Вы хотите присвоить выбранной колонке. ERwin продемонстрирует значение по умолчанию в списке 'Default', а тип данных, связанный с этим значением - в списке '<DB> Datatype'.

4. Чтобы создать или изменить значение по умолчанию, нажмите кнопку 'Default...' для входа в редактор Default Value, введите нужную информацию и нажмите кнопку 'ОК' для сохранения Вашей работы и возвращения в редактор Column Property.

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

См. ранее в этой главе разд. 'Работа в редакторе Column Property'.

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

1. Дайте команду 'Default/Initial...' в меню Server. Вы войдете в редактор <DB> Default.

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

3. Нажмите кнопку 'Delete'. ERwin удаляет информацию из списка 'Default Name'.

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

4. Нажмите кнопку 'OK'. ERwin сохраняет Вашу работу и закрывает редактор. Нажмите 'Cancel' для отмены всех изменений, которые Вы проделали в текущем сеансе работы.

Работа в редакторе Validation Rule

Редактор Validation Rule позволяет Вам создать ограничение при проверке, которое называется правилом валидации. Правило валидации - это выражение, которое задает диапазон допустимых значений, которые можно хранить в колонке, и определяет, является ли вводимое значение допустимым. Например в таблице MOVIE_RENTAL_RECORD значение, вводимое в колонку due_date, должно быть больше значения, вводимого в колонку rental_date. Чтобы усилить это ограничение, Вам нужно создать правило валидации с именем Due Date, которое содержит выражение (в синтаксисе СУБД), например такое: due_date>rental_date. Использование этого правила валидации гарантирует, что дата истечения договора больше. чем (наступает позже, чем) дата его заключения. СУБД выдает сообщение об ошибке, если вводимая дата истечения договора меньше, чем (наступает раньше, чем) дата его заключения.

Список в верхней части редактора Validation Rule содержит все существующие правила валидации. Для создания нового правила валидации введите имя правила в текстовое окно 'Name' и нажмите кнопку 'New'. После этого введите выражение, которое Вы хотите применить в правиле валидации, в текстовое окно 'Server Expression' или войдите в редактор Valid Value и создайте множество допустимых значений для правила валидации.

Если Вы хотите ввести выражение в синтаксисе СУБД, щелкните по текстовому окну 'Server Expression <DB> Rule' и введите выражение, соблюдая синтакис выбранной Вами СУБД. Если Вы хотите создать множество допустимых значений, нажмите кнопку 'Valid Value...' для входа в редактор Valid Value и создайте список допустимых значений для правила валидации. После того как Вы нажмете 'ОК', Вы вернетесь в редактор Validation Rule. Если Вы нажмете кнопку 'Server Expr', то ERwin создаст выражение - команду языка СУБД, содержащую список допустимых значений, введенный Вами. См. далее в этой главе 'Работа в редакторе Valid Value'.

По умолчанию ERwin создает выражение - команду языка СУБД, используя значения, связанные с правилом валидации, и разделяя значения запятыми (например, C,D,M). В некоторых случаях правила синтаксиса данной СУБД требуют, чтобы каждое значение в команде заключалось в апострофы ('C', 'D', 'M'). Чтобы автоматически заключить каждое значение в апострофы, щелкните по check box 'Quote Value' и поставьте в него метку Х. Если Вы хотите убрать апострофы, можно отредактировать выражение и удалить их в текстовом окне 'Server Expression- <DB> Rule'.

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

Вы можете также использовать check box 'Copy' в верхней части редактора, чтобы присвоить список допустимых значений. связанный с имеющимся правилом валидации, новому правилу. Чтобы присвоить список допустимых значений, выберите правило валидации, которое Вы хотите использовать в качестве источника, и поставьте метку Х в Check box 'Copy'. После этого создайте новое правило валидации. ERwin копирует допустимые значения из источника в новое правило валидации и создает подходящее выражение на языке СУБД для присвоенных Вами допустимых значений.

После того как Вы создали правило валидации, Вы можете присвоить его одной или несольким колонкам в редакторе Column Property. Чтобы присвоить правило, войдите в редактор Column Property, выберите колонку, с которой Вы хотите связать правило валидации, и выберите правило из списка 'Valid'. См. далее в этой главе раад. 'Работа в редакторе Column Property'.

Если текущая СУБД - SYBASE, версия 10 (только эта СУБД), редактор Validation Rule будет содержать кнопки 'sp_bindrule' и 'CHECK Constraint' (и, кроме них, средства управления, о которых говорилось выше), которые позволяют Вам определить, каким образом ERwin будет генерировать правило валидации, присваиваемое колонке в схеме по умолчанию. Для создания отдельного выражения языка, которое определяет правило валидации, и связывания этого правила с колонкой нажмите кнопку 'sp_bindrule'. Для включения выражения языка CHECK Constraint, которое определяет ограничивающее значение (значения) для колонки в команде CREATE TABLE, нажмите кнопку 'CHECK Constraint'. См. также Руководство по SYBASE SQL Server.

Как создать правило валидации

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

2. Введите имя правила, которое Вы хотите создать, в текстовое окно 'Name'. Например, можно ввести Due Date в качестве имени правила, определяющего, когда нужно вернуть фильм.

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

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

· Чтобы связать список допустимых значений с новым правилом валидации, выберите существующее правило из списка 'Validation Name'. Поставьте метку Х в окно 'Copy'. Введите имя нового правила в теккстовое окно 'Name' и нажмите кнопку 'New'. ERwin свяжет значения, заданные для старого правила, с новым. Чтобы отредактировать список допустимых значений, связанный с новым правилом, нажмите кнопку 'Valid Value...' для входа в редактор Valid Value.

· Чтобы ввести выражение для правила валидации, введите выражение в текстовое окно 'Server Expression <DB>', соблюдая синтаксис языка СУБД. Например, чтобы показать, что дата истечения договора должна наступать после даты заключения договора, введите: due_date > rental_date.

· Чтобы создать множество допустимых значений для правила валидации (например, С,D,M), нажмите кнопку 'Valid Value...' для входа в редактор Valid Value. Введите значения и нажмите 'ОК' для возвращения в редактор Validation Rule. Чтобы создать выражение для списка значений, нажмите кнопку 'Server Expr...'. ERwin создаст выражение, используя допустимые значения, например: @ VALUE IN [C,D,M]. См. далее в этой главе 'Работа в редакторе Valid Value'.

· Чтобы заключить каждое допустимое значение в апострофы, поставьте метку Х в окно 'Quote Value'. ERwin создаст выражение, где каждое значение заключено в апострофы (например, 'C','D','M').

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

Если Вы введете имя правила валидации и нажмете кнопку 'Valid Value...' до нажатия кнопки 'New', то ERwin выведет на экран окно-диалог, в котором спросит, хотите ли Вы создать новое правило, переименовать уже имеющееся или вернуться в редактор Validation Rule. Щелкните по одной из кнопок, чтобы выбрать ответ, затем нажмите 'ОК'. ERwin отреагирует в соответствии с Вашим выбором.

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

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

2. Введите имя правила, которое Вы хотите изменить, в текстовое окно 'Name'.

· Чтобы изменить имя правила валидации, щелкните по текстовому окну 'Name', удалите старое имя с помощью DELETE или BACKSPACE и введите новое.

· Чтобы отредактировать выражение, щелкните по текстовому окну 'Server Expression - <DB> Rule' и, пользуясь стандартными клавишами для редактирования, измените выражение.

· Чтобы изменить допустимые значения, нажмите кнопку 'Valid Value...' для входа в редактор Valid Value. Пользуйтесь средствами редактора для удаления или изменения значений. Нажмите 'ОК' для выхода из редактора Valid Value и возвращения в редактор Validation Rule. ERwin изменяет содержимое списков 'Valid Value' и Server Expression на основе изменений, сделанных Вами в редакторе Valid Value. См. далее в этой главе 'Работа в редакторе Valid Value'.

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

Как удалить правило валидации

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

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

3. Нажмите кнопку 'Delete'. ERwin удаляет правило из списка.

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

Работа в редакторе Valid Value

Редактор Valid Value позволяет Вам создавать список всех допустимых значений, которые можно хранить в колонке, и связать его с правилом валидации. Например, если в сущности MOVIE имеется атрибут с именем movie-category, то Вы можете задать список допустимых значений для соответствующей колонки, который может содержать значения: New Release, Comedy, Horror, Musical, Children. Если Вы зададите список допустимых значений и присвоите его колонке, то в этой колонке будет можно хранить только те значения, которые есть в списке.

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

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

Чтобы изменить имеющееся значение, выберите значение из списка 'Data Value', измените имя или определение значения, пользуясь стандартными клавишами, и нажмите кнопку 'Update'.

Чтобы удалить значение, выберите значение из списка 'Data Value' и нажмите кнопку 'Delete'.

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

Вы можете использовать check box 'Insert', чтобы вставить значение между двумя другими. Например, если Вы хотите между значениями Drama и Horror вставить Foreign, поставьте Х в check box 'Insert' и выберите из списка значение Horror. После нажатия кнопки 'New' ERwin автоматически вставляет Foreign перед Horror.

Вы можете использовать кнопку 'Sort' для сортировки значений по возрастанию (например, A-Z, 0-9). Например, чтобы отсортировать допустимые значения для правила Movie Category, нажмите кнопку 'Sort'. ERwin автоматически изменяет порядок значений.

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

Когда Вы нажимаете 'ОК' для выхода из редактора Valid Value, ERwin автоматически изменяет правило валидации, используя введенные Вами допустимые значения. Если Вы вошли в редактор Valid Value из редактора Validation Rule нажатием кнопки 'Valid Value...', то Вы вернетесь в редактор Validation Rule и сможете увидеть обновленную информацию.

Как создать список допустимых значений

1. Дайте команду 'Valid Value...' в меню Server или нажмите кнопку 'Valid Value...' в редакторе Validation Rule для входа в редактор Valid Value.

2. Нажмите на стрелку 'вниз' рядом со списком 'Valid Rule' и выберите правило валидации (если оно еще не выбрано), для которого Вы хотите создать список допустимых значений.

3. Введите нужную информацию в текстовые окна 'Data Value' и 'Value Definition' для каждого допустимого значения, которое Вы хотите включить в список.

Например, если Вы хотите задать для правила Movie Category допустимое значение Comedy, введите Comedy в текстовое окно 'Data Value' и 'Movies that are funny' - в текстовое окно 'Value Definition'.

4. Нажмите кнопку 'New'. ERwin добавит значение в список Data Value.

5. Повторите п. 3,4 для каждого значения, которое Вы хотите включить в список.

Например, Вы можете добавить такие значения и их определения: Drama - A movie that is serious и Musical - A movie that is based on a broadway musical.

6. Закончив ввод допустимых значений, нажмите 'ОК' для выхода из редактора Valid Value и возвращения в редактор Validation Rule. Если Вы нажмете 'Cancel', то ERwin отменит всю работу, проделанную Вами в течение этого сеанса.

ERwin показывает команду 'Valid Value...' в меню Server серым цветом, если для диаграммы не задано ни одного правила валидации. Чтобы открыть редактор Valid Value для создания первого списка допустимых значений, нажмите кнопку 'Valid Value...' в редакторе Validation Rule.

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

1. Дайте команду 'Valid Value...' в меню Server или нажмите кнопку 'Valid Value...' в редакторе Validation Rule для входа в редактор Valid Value.

2. Нажмите на стрелку 'вниз' рядом со списком 'Valid Rule' и выберите правило валидации которое Вы хотите изменить.

3. Для изменения имени или определения значения щелкните по значению, которое хотите изменить, и введите нужную информацию в текстовые окна 'Data Value' и 'Value Definition', а затем нажмите кнопку 'Update'.

4. Закончив ввод допустимых значений, нажмите 'ОК' для выхода из редактора Valid Value и возвращения в редактор Validation Rule. Если Вы нажмете 'Cancel', то ERwin отменит всю работу, проделанную Вами в течение этого сеанса.

Если Вы изменяете имя или определение значения и сразу же после этого выбираете значение из списка 'Data Value', не нажимая перед этим кнопку 'Update', то ERwin заменяет значение, по которому Вы щелкнули, новым значением.

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

1. Поставьте метку Х в сheck box 'Insert' в верхней части редактора Valid Value.

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

3. Щелкните по текстовому окну 'Data Value' и введите имя нового значения.

4. Щелкните по окну 'Value Definition' и введите определение значения.

5. Нажмите кнопку 'New'. ERwin вставит новое значение над тем, которое Вы выбрали, и выделит его.

Если Вы не поставите Х в окне 'Insert', то ERwin автоматически добавит новое значение в конец списка.

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

1. Щелкните левой кнопкой мыши и выберите значение, которое Вы хотите перенести.

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

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

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

1. Нажмите кнопку 'Sort' справа внизу в редакторе Valid Value. ERwin автоматически отсортирует список допустимых значений по возрастанию (например, A-Z, 0-9).

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

1. Дайте команду 'Valid Value...' в меню Server или нажмите кнопку 'Valid Value...' в редакторе Validation Rule для входа в редактор Valid Value.

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

3. Нажмите кнопку 'Delete'. ERwin удалит значение из списка 'Data Value'.

4. Закончив вносить изменения, нажмите 'ОК' для выхода из редактора Valid Value и возвращения в редактор Validation Rule. Если Вы нажмете 'Cancel', то ERwin отменит всю работу, проделанную Вами в течение этого сеанса.

Использование доменов в 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()), то введите в скобках нужное Вам число. снова щелкните по домену в верхнем списке, чтобы вставить параметр в заново присвоенный тип данных.

Назад       Содержание       Вперёд