Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
t42_Методич_пос_часть2.doc
Скачиваний:
40
Добавлен:
26.08.2019
Размер:
4.57 Mб
Скачать

Атрибуты

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

Рис. 37. Закладка History диалога Entities.

Рис. 38. Закладка General диалога Attributes.

Если щелкнуть по кнопке New, то в появившемся диалоге New Attribute можно указать имя атрибута, имя соответствующей ему в физической модели колонки и домен. Домен атрибута будет использоваться при определении типа колонки на уровне физической модели.

Для атрибутов первичного ключа в закладке General диалога Attributes необходимо сделать пометку в окне выбора Primary Key. Для наглядности диаграммы каждый атрибут можно связать с иконкой из выпадающего списка Icon в закладке General. Если имеющихся в списке графических изображений недостаточно, следует воспользоваться кнопкой , расположенной справа от списка выбора. В результате откроется диалог Icons (рис. 39). Щелкнув по кнопке Import, можно добавить в список необходимую иконку. Чтобы отобразить на диаграмме иконки атрибутов следует, во-первых, перейти на уровень атрибутов (меню Format/Display Level/Attribute), во-вторых, установить режим отображения иконок для атрибутов (меню Format/Entity Display/Attribute Icon).

Рис. 39. Диалог Icons.

Закладка Definition диалога Attributes позволяет записывать определения отдельных атрибутов. Определения атрибутов можно также автоматически сгенерировать как часть схемы (CREATE COMMENT on entity_name.attribute name).

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

В закладке History отображается история создания и изменения атрибутов.

Закладка UDP служит для задания значений свойств, определяемых пользователем. Предварительно эти свойства должны быть внесены в диалог User Defined Property как свойства атрибутов.

Закладка Key Group (рис. 40) позволяет включить атрибут в состав первичного, альтернативного или инверсного ключа.

Рис. 40. Закладка Key Group диалога Attributes.

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

Рис. 41. Отображение сущности и атрибутов.

Очень важно дать атрибуту правильное имя. Атрибуты должны именоваться в единственном числе и иметь четкое смысловое значение. Соблюдение этого правила позволяет частично решить проблему нормализации данных уже на этапе определения атрибутов. Например, создание в сущности Сотрудник атрибута Телефоны Сотрудника противоречит требованиям нормализации, т.к. атрибут должен быть атомарным, т.е. не содержать множественных значений. Согласно синтаксису IDEF1X имя атрибута должно быть уникально в рамках модели (а не только в рамках сущности!); следовательно, новый атрибут, если его имя совпадает с уже существующим, должен быть переименован. На практике такое переименование не всегда удобно, поэтому по умолчанию эта опция выключена, однако в случае необходимости ее можно включить.

Для настройки правил уникальности имен модели (не только имен атрибутов) используют закладку Duplicate Names диалога Model Naming Options (меню Tools/Names/Model Naming Options) (рис. 42) Можно задать следующие режимы именования:

Рис. 42. Диалог Model Naming Options.

Allow duplicate name – позволить использование одинаковых имен (опция по умолчанию).

Automatically Rename duplicate names – автоматически переименовывать атрибут (сущность) при попытке внесения уже существующего имени атрибута, при этом к имени атрибута добавляется число. Например, если атрибут Имя уже существует в модели, то при добавлении новых атрибутов Имя в ту же или в другую сущность они будут автоматически переименованы: Имя_2, затем Имя_3 и т.д.

Ask – запрашивать возможные действия каждый раз при внесении одноименных атрибутов (сущности). ERwin DM будет показывать на экране диалог Unique Name каждый раз, когда вводится неуникальное имя сущности или атрибута. В диалоге Unique Name можно ввести другое имя или разрешить дублирование (рис. 43). Новое имя уже не прове­ряется на уникальность.

Disallow duplicate names – запретить внесение одинаковых имен. При попытке использовать уже существующее имя ERwin DM сам производит переименование, чтобы обеспечить уникальность имен в модели.

Рис. 43. Диалог Unique Name.

Кроме общепринятых правил именования атрибутов часто требуется следовать правилам, разработанным внутри организации - корпора­тивным стандартам. Настроить правила именования можно с помощью диалогов Model Naming Option и Edit Naming Standards (меню Tools/Names).

Каждый атрибут должен быть определен в закладке Definition, при этом следует избегать циклических определений, например когда термин 1 опре­деляется через термин 2, термин 2 - через термин 3, а термин 3, в свою оче­редь, - через термин 1. Иногда определение атрибута легче дать через описание области значений. Например, Оценка школьника - это число, принимающее значения 2,3,4 или 5.

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

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

Связи

Связь является логическим отношением между сущностями. Каждая связь должна именоваться глаголом или глагольной фразой (Relationship Verb Phrases) (рис. 44). Имя связи выражает некоторое ограничение или бизнес-правило и облегчает чтение диаграммы, например:

  • Каждый КЛИЕНТ <размещает> ЗАКАЗы;

  • Каждый ЗАКАЗ <выполняется> СОТРУДНИКом.

Рис. 44. Пример именования связей (Relationship Verb Phrases).

Связь показывает, какие именно заказы разместил клиент и какой именно сотрудник выполняет заказ. По умолчанию имя связи на диаграмме не показывается. Для отображения имени связи следует в контекстном меню, которое появляется, если щелкнуть правой кнопкой мыши по любому месту диаграммы, не занятому объектами модели, выбрать пункт Relationship Display и затем включить опцию Verb Phrase.

На логическом уровне можно установить идентифицирующую связь "один ко многим", связь "многие ко многим" и неидентифицирующую связь "один ко многим" (см. табл. 11).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]