
- •Отображение логического и физического уровня модели данных в eRwin
- •Компоненты диаграммы eRwin и основные виды представлений диаграммы
- •Инструменты для создания модели в eRwin
- •Идентификация сущностей. Сущности в eRwin
- •Связи (relationships) в eRwin
- •Графическое редактирование модели
- •Альтернативные ключи
- •Инвертированные индексы
- •Связи категоризации
- •Реализация ссылочной целостности с помощью eRwin
- •Хранение информации в модели eRwin
- •2.2. Расширенные функции eRwin Обратное проектирование (Reverse engineering)
- •Синхронизация с базой данных
- •Интерфейсы к субд
- •Поддержка средств 4gl
- •Программирование триггеров и процедур
- •Правила и начальные значения
- •Генерация отчетов
- •Настройка режимов отображения
- •Заключение
- •1.2.Сравнительный анализ case-средств информационного моделирования. Общие выводы
Связи (relationships) в eRwin
Связь - это функциональная зависимость между двумя сущностями (в частности, возможна связь сущности с самой собой). Например, важно знать фамилию сотрудника, и не менее важно знать, в каком отделе он работает. Таким образом, между сущностями "отдел" и "сотрудник" существует связь "состоит из" (отдел состоит из сотрудников). Связь - это понятие логического уровня, которому соответствует внешний ключ на физическом уровне. В ERwin связи представлены пятью основными элементами информации:
тип связи (идентифицирующая, неидентифицирующая, полная/неполная категория, неспецифическая связь);
родительская сущность;
дочерняя (зависимая) сущность;
мощность связи (cardinality);
допустимость пустых (null) значений.
Для установки связи между сущностями
нужно воспользоваться кнопками
в палитре инструментов.
Связь называется идентифицирующей, если экземпляр дочерней сущности идентифицируется через ее связь с родительской сущностью. Атрибуты, составляющие первичный ключ родительской сущности, при этом входят в первичный ключ дочерней сущности. Дочерняя сущность при идентифицирующей связи всегда является зависимой.
Идентифицирующая связь устанавливается между независимой (родительский конец связи) и зависимой (дочерний конец связи) сущностями. Зависимая сущность изображается прямоугольником со скругленными углами. Экземпляр зависимой сущности определяется только через отношение к родительской сущности,
При установлении идентифицирующей связи атрибуты первичного ключа родительской сущности переносятся в состав первичного ключа дочерней сущности (миграция атрибутов). В дочерней сущности они помечаются как внешний ключ - (FK).
При установлении неидентифицирующей связи дочерняя сущность остается независимой, а атрибуты первичного ключа родительской сущности мигрируют в состав неключевых компонентов родительской сущности.
Для определения связей ERwin выбирается тип связи, затем мышью указывается родительская и дочерняя сущность. Идентифицирующая связь изображается сплошной линией; неидентифицирующая - пунктирной линией. Линии заканчиваются точкой со стороны дочерней сущности.
При определении связи происходит миграция атрибутов первичного ключа родительской сущности в соответствующую область атрибутов дочерней сущности. Поэтому такие атрибуты не вводятся вручную.
Для редактирования свойств связи следует кликнуть правой кнопкой мыши по связи и выбрать на контекстном меню пункт Relationship Editor. В появившемся диалоге можно задать:
Мощность (cardinality) связи - служит для обозначения отношения числа экземпляров родительской сущности к числу экземпляров дочерней.
Verb phrase - фраза, характеризующая отношение между родительской и дочерней сущностями.
Тип связи (идентифицирующая / не идентифицирующая).
Описание связи.
Правила ссылочной целостности (будут сгенерированы при генерации схемы БД).
Имя роли. Имя роли - это синоним атрибута внешнего ключа, которое необходимо, например, при циклической связи. В этом случае нельзя иметь два атрибута с одинаковым именем внутри одной сущности. При задании имени роли атрибут мигрирует в качестве внешнего ключа в состав неключевых атрибутов с именем роли. На физическом уровне имя роли - это имя колонки внешнего ключа в дочерней таблице
На логическом уровне можно установить идентифицирующую связь один ко многим, связь многие ко многим и неидентифицирующую связь один ко многим (соответственно кнопки - слева направо в палитре инструментов).
Связь многие ко многим возможна только на уровне логической модели данных. При переходе к физическому уровню ERwin автоматически преобразует связь многие ко многим, добавляя новую, ассоциативную сущность и устанавливая две новые связи один ко многим от старых к новой сущности.
Имя связи на логическом уровне представляет собой "глагол", связывающий сущности. Физическое имя связи (которое может отличаться от логического) для ERwin означает имя ограничения (constraint) или индекса.