Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Tasks / ПИ-Метод-рекомен-ЛР-Кузнецов-01-сентября-2013.doc
Скачиваний:
177
Добавлен:
13.03.2015
Размер:
4.19 Mб
Скачать

4.6. Создание внешних ключей Внешние ключи в eRwin

Внешние ключи (Foreign Key) создаются автоматически, когда связь соединяет сущности: связь образует ссылку на атрибуты первичного ключа в дочерней сущности, и эти атрибуты образуют внешний ключ в дочерней сущности (миграция ключа). Атрибуты внешнего ключа обозначаются символом (FK) после своего имени.

Отредактировать внешние ключи, а также создать альтернативные ключи и инверсионные входы можно в окне Key Groups (рис. 43). Вызвать диалог Key Groups можно с помошью одноименной команды контекстного меню Key Groups, либо с помощью меню Model/ Key Groups.

В верхней части диалога Key Groups находится список ключей, в нижней – список атрибутов, доступных для включения в состав ключа (слева), и список ключевых атрибутов. Каждый вновь созданный ключ должен иметь хотя бы один атрибут. Для включения атрибута в состав ключа следует выделить его в левом списке и щелкнуть по кнопке со стрелкой .

Зависимая сущность может иметь один и тот же внешний ключ из нескольких родительских сущностей. Сущность может также получить один и тот же внешний ключ несколько раз от одного и того же родителя через несколько разных связей. Когда ERwin обнаруживает одно из этих событий, он распознает, что два атрибута одинаковы, и помещает атрибут внешнего ключа в зависимой сущности только один раз. Хотя в закладке Key Group диалога Attribute этот атрибут будет входить в два внешних ключа, на модели он показывается только один раз. Это комбинирование или объединение идентичных атрибутов называется унификацией.

Рис. 43. Вид окна Key Groups

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

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

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

15.1. При помощи панели инструментов Стандартная перейдите в режим отображения атрибутов. При необходимости измените положение сущностей, сделав модель более наглядной.

Обратите внимание на создание чужих (внешних) ключей, помеченных символом FK (рис. 44).

15.2. Для создания внешнего ключа щелчком мыши выделите сущность Заказ.

Рис. 44. Вид модели с внешним ключом

15.3. В контекстном меню выберите опцию Key Groups

15.4. В появившемся окне Key Groups (рис. 43) в разделе Entity выберите сущность Клиент.

15.5. Используя кнопку  переместите атрибут КодКлиента из раздела Available Atributies в раздел Key Group Members.

4.7. Задание типа данных для атрибутов Типы данных атрибутов

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

16.1. Щелкните мышью по избранной сущности, например, Заказ.

16.2. В контекстном меню выберите Attributes.

Рис. 45. Вид окна Atributies с вкладкой General

16.3. В появившемся окне Attributes перейдите на вкладку General (рис. 45) и задайте приблизительный тип данных для каждого атрибута в соответствии с табл. 4.

Таблица 4

Типы данных атрибутов

Атрибуты

Тип

Код клиента

String

Номер3аказа

String

ДатаЗаказа

Datetime

СтоимостьЗаказа

Number

Фирма

String

Адрес

String

Телефон

String

Артикул

String

Наименование

String

Цена

Number

16.4. В окне Attributes перейдите на вкладку Datatype (рис. 46) и уточните (скоректируйте) тип данных с учетом будущей физической БД для некоторых атрибутов в соответствии с табл. 5.

Рис. 46. Вид окна Atributies с вкладкой Datatype

Таблица 5

Скорректированные типы данных атрибутов

Атрибуты

Тип

Код клиента

VARCHAR(20)

Номер3аказа

INTEGER

ДатаЗаказа

DATE

СтоимостьЗаказа

MONEY(,)

Фирма

VARCHAR(20)

Адрес

VARCHAR(20)

Телефон

VARCHAR(12)

Артикул

VARCHAR(20)

Наименование

VARCHAR(20)

Цена

MONEY(,)

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

17. Посмотрите, как меняется вид рабочего окна модели при изменении уровня отображения модели. Для этого выберите команду Display Level в меню Format и соответствующий уровень отображения: сущностей Entity (рис. 47), определений Defination (рис. 48), пиктограмм Icon (рис. 49), атрибутов Attribute (рис. 50), первичных ключей Primary Key (рис. 51).

Рис. 47. Вид модели на уровне сущностей (Entity)

Рис. 48. Вид модели на уровне определений (Defination)

Рис. 49. Вид модели на уровне пиктограмм (Icon)

Рис. 50. Вид модели на уровне атрибутов (Attribute)

Рис. 51. Вид модели на уровне первичных ключей Primary Key

17. Сохраните результаты работы.