Материал: Методы и модели проектирования соврем. ИС(ЛР, 09.05.01)

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

определение атрибутов сущностей;

приведение модели к требуемому уровню нормальной формы;

переход к физическому описанию модели: назначение соответст-

вий имя сущности – имя таблицы, атрибут сущности – атрибут таблицы;

задание триггеров, процедур и ограничений;

генерация базы данных.

Erwin создает визуальное представление (модель данных) для решае-

мой задачи. Это представление может использоваться для детального анали-

за, уточнения и распространения документации, необходимой в цикле разра-

ботки. Однако ERwin далеко не только инструмент для рисования. ERwin ав-

томатически создает базу данных (таблицы, индексы, хранимые процедуры,

триггеры для обеспечения ссылочной целостности и другие объекты, необ-

ходимые для управления данными).

Создание сущности

Для внесения сущности в модель необходимо щелкнуть по кнопке сущности на панели инструментов (Erwin Toolbox) , затем – по тому месту на диаграмме, где необходимо расположить новую сущность. Щелкнув пра-

вой кнопкой мыши по сущности и выбрав из всплывающего меню пункт

Entity Editor, можно вызвать диалог Entity Editor, в котором определяются имя, описание и комментарии сущности.

Каждая сущность должна быть полностью определена с помощью тек-

стового описания в закладке Definition. Эти определения полезны как на ло-

гическом уровне, поскольку позволяют понять, что это за объект, так и на физическом уровне, поскольку их можно экспортировать как часть схемы и использовать в реальной БД (CREATE COMMENT on entity_name). Закладки

Note, Note2, Note3, UDP (User Defined Properties – Свойства, определенные пользователем) служат для внесения дополнительных комментариев и опре-

делений к сущности.

В закладке Icon каждой сущности можно поставить в соответствие изо-

бражение, которое будет отображаться в режиме просмотра модели на уров-

46

не иконок и изображение, которое будет отображаться на всех других уров-

нях. Закладка UDP диалога Entity Editor служит для определения свойств, оп-

ределяемых пользователем (User – Defined Properties). При нажатии на кноп-

ку этой закладки вызывается диалог User – Defined Property Editor (также вызывается из меню Edit/UDPs). В нем необходимо указать вид объекта, для которого заводится UDP (диаграмма в целом, сущность, атрибут и т.д.) и тип данных. Для внесения нового свойства следует щелкнуть в таблице по кноп-

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

Создание атрибутов. Для описания атрибутов следует, щелкнув пра-

вой кнопкой по сущности, выбрать в появившемся меню пункт Attribute

Editor. Появится диалог Attribute Editor. Если щелкнуть по кнопке New, то в появившемся диалоге New Attribute можно указать имя атрибута, имя соот-

ветствующей ему в физической модели колонки и домен. Домен атрибута будет использоваться при определении типа колонки на уровне физической модели. Для атрибутов первичного ключа в закладке General диалога

Attribute Editor необходимо сделать пометку в окне выбора Primary Key.

Закладки Definition, Note и UDP несут те же функции, что и при опре-

делении сущности, но на уровне атрибутов.

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

General. Очень важно дать атрибуту правильное имя. Атрибуты должны име-

новаться в единственном числе и иметь четкое смысловое значение.

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

пытке внесения уже существующего имени атрибута ERwin переименовыва-

ет его. Например, если атрибут Комментарий уже существует в модели, дру-

гой атрибут (в другой сущности) будет назван Комментарий/2, затем Ком-

ментарий/3 и т.д.

При переносе атрибутов внутри и между сущностями можно восполь-

зоваться техникой drag&drop, выбрав кнопку в палитре инструментов.

47

Создание связи Для создания новой связи следует выбрать идентифи-

цирующую или неидентифицирующую связь в палитре инструментов (ERwin Toolbox), щелкнуть сначала по родительской, а затем по дочерней сущности.

В палитре инструментов кнопка соответствует идентифицирующей связи,

кнопка связи многие-ко-многим и кнопка соответствует неидентифи-

цирующей связи. Для редактирования свойств связи следует щелкнуть пра-

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

Relationship Editor. В закладке General появившегося диалога можно задать мощность, имя и тип связи. Мощность связи (Cardinality) – служит для обо-

значения отношения числа экземпляров родительской сущности к числу эк-

земпляров дочерней. Различают четыре типа мощности: общий случай, когда одному экземпляру родительской сущности соответствуют 0, 1 или много эк-

земпляров дочерней сущности, не помечается каким-либо символом; симво-

лом P помечается случай, когда одному экземпляру родительской сущности соответствуют 1 или много экземпляров дочерней сущности (исключено ну-

левое значение); символом Z помечается случай, когда одному экземпляру родительской сущности соответствуют 0 или 1 экземпляр дочерней сущности

(исключены множественные значения); цифрой помечается случай, когда од-

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

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

выбрать пункт Display Options/Relationship и затем включить опцию

Cardinality.

Тип связи (идентифицирующая/неидентифицирующая).

В IDEF1X различают зависимые и независимые сущности. Тип сущно-

сти определяется ее связью с другими сущностями. Идентифицирующая связь устанавливается между независимой (родительский конец связи) и за-

висимой (дочерний конец связи) сущностями. Когда рисуется идентифици-

48

рующая связь, ERwin автоматически преобразует дочернюю связь в зависи-

мую. Зависимая сущность изображается прямоугольником со скругленными углами.

Экземпляр зависимой сущности определяется только через отношение к родительской сущности. При установлении идентифицирующей связи ат-

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

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

рибутов. В дочерней сущности новые атрибуты помечаются как внешние ключи – (FK).

При установлении неидентифицирующей связи дочерняя сущность ос-

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

рующая связь служит для связи независимых сущностей.

Идентифицирующая связь показывается на диаграмме сплошной лини-

ей с жирной точкой на дочернем конце связи, неидентифицирующая – пунк-

тирной. Для неидентифицирующей связи можно указать обязательность

(Nulls в закладке General диалога Relationship Editor). В случае обязательной связи (No Nulls) при генерации схемы БД атрибут внешнего ключа получит признак NOT NULL, несмотря на то, что внешний ключ не войдет в состав первичного ключа дочерней сущности. В случае необязательной связи (Nulls

Allowed) внешний ключ может принимать значение NULL. Необязательная неидентифицирующая связь помечается прозрачным ромбом со стороны ро-

дительской сущности

Имя связи (Verb Phrase) – фраза, характеризующая отношение между родительской и дочерней сущностями. Для связи один-ко-многим идентифи-

цирующей или неидентифицирующей достаточно указать имя, характери-

зующей отношение от родительской к дочерней сущности (Parent-to-Child).

Для связи многие-ко-многим следует указывать имена как Parent-to-Child, так и Child-to-Parent. Для отображения имени следует в контекстном меню, кото-

49

рое появляется, если щелкнуть правой кнопкой мыши по любому месту диа-

граммы, не занятому объектами модели, выбрать пункт Display Options/Relationship и затем включить опцию Verb Phrase.

Имя роли или функциональное имя (Rolename) – это синоним атри-

бута внешнего ключа, который показывает, какую роль играет атрибут в до-

черней сущности. Задать имя роли можно в закладке Rolename/RI Actions

диалога Relationship Editor.

Рисунок 20 - Имена ролей внешних ключей В примере, приведенном на рис.20, в сущности Сотрудник внешний

ключ Номер отдела имеет имя роли «Где работает», которое показывает, ка-

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

(как функционального имени, так и имени роли) следует в контекстном ме-

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

Options/Entities и затем включить опцию Rolename/Attribute. Полное имя по-

казывается как функциональное имя и базовое имя, разделенные точкой

(рис.21).

Рисунок 21 - Случай обязательности имен ролей

50

Источник: https://studfile.net/preview/16408801/