Федеральное агентство образования Российской Федерации Пермский государственный технический университет Кафедра информационных технологий и автоматизированных систем |
Лабораторная работа № 3 «Отношения» |
Выполнили студенты группы АСУ-01-1 Проверил: преподаватель |
Пермь 2005 |
Постановка задачи
Цель: Научиться создавать связи. Получить навыки в редактировании графических объектов. Получить навыки в преобразовании объектов ERwin.
Краткие теоретические сведения
Панель связей
Изменение этой панели инструментов основано на типе модели (логической или физической) и нотации (IDEF1X или DМ-пространственная модель).
При добавлении сущности ERwin определяет ее тип, основанный на отношении, в которое он включен. Например, когда первоначально добавляется сущность в модель, она представляется как независимая. Когда сущность подключается к другой сущности, использующей отношение, ERwin определяет сущность (независимая или зависимая), базируясь на типе отношения.
В модели данных отношение показывает связи между двумя объектами или таблицами. ERwin представляет отношение как линию, соединяющую два объекта или две таблицы.
В зависимости от выбора нотации, символы и окончание линии могут измениться.
Дополнительно к устанавливающей и не определяющей связи можно создать другую связь:
· Определяющая;
· Неопределяющая;
· Рекурсивная;
· Отношение многое-ко-многим;
· Отношение супертип-подтип.
Выравнивание, размещение и группировка средств панели инструментов.
Инструментальные средства для выравнивания (Alignment Toolbar) ускоряют процесс графического обустройства и группирования моделей объектов.
Можно выбрать многочисленные объекты диаграммы и при этом для них будет выделено пространство. Аналогично, групповые средства (Group) позволяют легко обрабатывать группы многочисленных диаграмм.
Уровни демонстрации изображения в ERwin
ERwin позволяет просматривать информацию о модели на разных уровнях:
• Уровень демонстрации сущности (Entity Display Level)
На уровне сущности имя каждой сущности выводится на экран, заключенное в окно сущности. Никакая другая информация о сущностях на экране не появляется.
• Уровень демонстрации определений сущности (Display Level/Definition).
На этом уровне размер окна сущности увеличивается и в него включается определение сущности.
• Уровень демонстрации атрибутов (Display Level/Attribute).
При переходе к процессу построения модели нужно сохранить и вывести на экран подробную информацию, которая и составляет сущность. Эти подробности называются атрибутами. На уровне демонстрации атрибутов каждая сущность в диаграмме открывается, показываются ее атрибуты.
• Уровень демонстрации первичных ключей (Display Level/Primary Key).
Разновидностью уровня демонстрации атрибутов является уровень первичного ключа. На этом уровне демонстрируются только те атрибуты, которые являются первичными ключами каждой сущности.
• Уровень пиктограммы (Display Level/Icon)
Теневой эффект
Команда "Show Shadows" меню "Formaf" позволяет добавить в диаграмму эффект трехмерности. Окно-диалог "Preference" (Format/Preferences) позволяет делать тени больше или меньше. Для этого нужно в окне Format Preferences (Format/Preferences) выбрать вкладку "Display".
Теневой эффект применяется ко всей модели данных. Его нельзя включить или убрать для какой-то отдельной сущности.
Внешний ключ
Когда создается отношение между объектами, ERwin автоматически передает первичный ключевой атрибут (s) родительского объекта, на объект-потомок. Обозначение (FK) указывает имя переданного ключевого атрибута (внешний ключ). Эта пересылка происходит автоматически в физической модели.
В определяющем отношении FK передается выше линии и становится частью первичного ключа объекта-потомка. В не определяющем отношении внешний ключ передается ниже линии и становится не ключевым атрибутом на объекте-потомке. В ERwin пунктирная линия представляет собой не определяющее отношение.
Если возникнет необходимость в миграции "non-key" (не ключевого атрибута) вместо первичного ключа, то можно воспользоваться альтернативным ключом для миграции.
Управление внешними ключами.
При создании связи между двумя сущностями ERwin автоматически производит миграцию ключевых атрибутов родительской сущности в дочернюю сущность, где они становятся внешними ключами.
ERwin позволяет задать режим "Unique Key", который можно использовать для предупреждения пользователя о создании атрибута, который может автоматически мигрировать через связь или может запретить пользователю создание таких атрибутов.
Когда ERwin производит миграцию атрибута первичного ключа, то по умолчанию внешний ключ, который появляется в дочерней сущности, наследует имя, но не наследует определение атрибута первичного ключа.
Связи
Связь - это соотношение либо между двумя сущностями, либо между сущностью и этой же сущностью.
Идентифицирующей связью называется связь, которая добавляет признаки идентичности в дочернюю сущность путем миграции ключей родительской сущности в область ключевых атрибутов дочерней и, таким образом, делая дочернюю сущность зависимой от родительской в смысле своей идентичности.
Можно задать также и такую связь, которая не ставит дочернюю сущность в зависимость от родительской. Этот тип связи называется не идентифицирующей связью. В ERwin такая связь обозначается пунктирной линией с жирной точкой на конце, соответствующем дочерней связи. При не идентифицирующей связи атрибуты первичного ключа родительской сущности мигрируют в область данных, которая расположена под чертой в дочерней сущности. Если атрибуты, которые мигрировали в не ключевую область дочерней сущности, не нужны в этой сущности, то связь называется не обязательной не идентифицирующей связью, что подразумевает, что мигрировавшие атрибуты не нужны дочерней сущности для ее идентификации и что она может существовать и без этих атрибутов. В ERwin необязательная не идентифицирующая связь обозначается пунктирной линией с жирной точкой на одном конце (дочернем) и ромбиком на другом (родительском).
Если связь уже создана на диаграмме, то можно изменить ее тип в редакторе "Relationships" в закладке "General".
Работа в редакторе "Relationships"
Связи, как и сущности, могут иметь имена и метки. Эти метки называются глагольными фразами, они должны описывать, каким образом родительская сущность связана с дочерней. Редактор "Relationships" позволяет задать глагольную фразу, мощность и отношение к нулевым значениям для связи. Можно задать в редакторе "Relationships" имя роли для атрибута - внешнего ключа.
"Cardinality" и "Nulls" служат для мощности и режима нулевых значений для текущей связи.
Мощность связи
Служит для обозначения отношения числа экземпляров родительской сущности к числу экземпляров дочерней. Родительская сущность может связываться с дочерней одним из четырех способов. В IDEF1X мощность бинарных отношений (мощность связи) равна 1:п, где n может принимать значения:
• 0, 1 или более (Zero, one or More) - обозначается "пустым местом". Каждая родительская сущность связана с 0, 1 или более экземпляров дочерней сущностей.
• 1 или более (One or More) - обозначается буквой "Р". Каждая родительская сущность связана с 1 или более экземпляров дочерней.
• 0 или 1 (Zero or One) - обозначается буквой "Z". Каждая родительская сущность связана с 0 или 1 экземпляром дочерней.
• ровно п (Exactly), где "п" - некоторое число. Каждая родительская сущность связана с ровно п экземплярами дочерней.
Чтобы показать мощность связи следует дать команду "Cardinality" в меню {Format/Relationships Display).
Использование имен ролей атрибутов
Имя роли - это алиас, присваиваемый атрибуту внешнего ключа.
При рекурсивной связи, когда сущность связана сама с собой, один и тот же атрибут может быть и первичным, и внешним ключом. Имя роли помогает прояснить вторую роль атрибута.
Имя роли состоит из трех частей: присваиваемое имя роли, точка - разграничитель и базовое имя. Имя роли присваивается атрибуту внешнего ключа в редакторе "Relationships" и "Subtype Relationshipss". ERwin вставляет точку после имени роли, а затем ставит базовое имя атрибута. Базовое имя - это имя атрибута, которое мигрировало из родительской сущности в дочернюю.
Понятие унификации
Зависимая сущность может унаследовать один и тот же внешний ключ из нескольких родительских сущностей, а также сущность может унаследовать один и тот же внешний ключ несколько раз от одного и того же родителя через несколько разных связей. Когда ERwin обнаруживает одно из этих событий, то он распознает, что два атрибута одинаковы, и предполагает, что пользователь хочет видеть атрибут в зависимой сущности только один раз. В редакторе "Attributes" эта сущность показана с обоими атрибутами, но на диаграмме атрибут показывается только один раз. Это комбинирование, или объединение идентичных атрибутов, называется унификацией. Унификация - слияние двух или более атрибутов внешнего ключа в один атрибут внешнего ключа на основе предположения, что значения исходных атрибутов внешнего ключа, вероятно, идентичны. Эта унификация производится, поскольку правила нормализации запрещают существование в одной сущности двух атрибутов с одинаковыми именами.
Есть случаи, когда унификация нежелательна. Например, когда два атрибута имеют одинаковые имена, но на самом деле они немного отличаются, и пользователь хочет, чтобы это отличие отражалось в диаграмме. Имена ролей используются для сохранения отличий между двумя разными атрибутами, имеющими одинаковые имена.
Преобразование объектов
Transform - метод для создания и сохранения записей проектирования после изменения объектов или свойств в пределах проектного слоя (логический, физический уровни); изменение установки объектов от одного состояния до другого с целью нормализации, очистки или денормализации модели.
Основные преимущества использования преобразования:
• Автоматизация.
ERwin упрощает очистку логической и физической моделей. Можно использовать мастеров (Wizard) для автоматического изменения приложения в проектном слое вместо ручного
• Трассируемость (Traceability).
ERwin поддерживает историю каждого объекта модели, созданного преобразованием. Можно проследить историю преобразованных объектов.
• Сохранение объектных свойств.
ERwin сохраняет свойства преобразованных объектов. Вручную войти повторно нельзя.
Преобразование панели инструментов обеспечивает набор инструментальных средств для помощи в преобразовании. Тип модели и объекта, которые нужно преобразовать, доступны на панели инструментов "Transforms".
Виды преобразований:
• Many-to-Many Transform - преобразование отношения многие-ко-многим через дополнительную сущность.
Для преобразования нужны две сущности, соединенные связью "Many-to-Many". При преобразовании можно задать имя дочерней сущности двух родительских сущностей (во втором диалоговом окне), определение дочерней сущности (в третьем диалоговом окне), имя преобразования (в третьем диалоговом окне).
• Supertype-Subtype Identity - замещение отношения супертип-подтип.
При преобразовании можно задать имя преобразования (во втором диалоговом окне).
• Supertype-Subtype Roll-up - преобразование отношения супертип-подтип в одну сущность – супертип.
При преобразовании можно задать имя преобразования и описание преобразования (во втором диалоговом окне).
• Supertype-Subtype Roll-down - преобразование отношения супертип-подтип в две сущности – подтипы.
При преобразовании можно задать имя преобразования и описание преобразования (во втором диалоговом окне).
• Vertical Partition - вертикальное разделение.
При преобразовании во втором диалоговом окне можно задать число производных сущностей (в окне "Number Of Partitions"). На 4-м шаге можно определить атрибуты, включаемые в производные сущности, для сущности. Сущность можно выбрать из списка "Partition Name".
• Horizontal Partition - горизонтальное разделение.
При преобразовании на 4-м шаге можно задать имя преобразования и описание преобразования.
• Roll-down Denormalization - перенос атрибутов в дочернюю сущность.
Во втором диалоговом окне можно выбрать имя преобразования и описание преобразования.
• Roll-up Denormalization - перенос атрибутов в родительскую сущность.
Во втором диалоговом окне можно выбрать имя преобразования и описание преобразования. В 3-ем диалоге в окне "Number of records" можно задать число повторяющихся записей.
· Column Denormalization - копирование атрибута в любую сущность.
До преобразования нужно выделить атрибут. При преобразовании во 2-м диалоговом окне можно указать имя и комментарий столбца. В 3-ем диалоговом окне следует выбрать таблицу, в которую атрибут будет включен. В 4-м диалоговом окне можно выбрать имя преобразования и описание преобразования.
При преобразовании "Model Explorer" корректирует важную информацию под папкой "Transform". Информация включает преобразованное имя и исходное и целевые объекты, включенные в преобразование.
При преобразовании исходные объекты будут удалены. Для изменения преобразования зайдите в "Model Explorer" и щелкните правой кнопкой мыши на "Transform". Из контекстного меню выберите "Delete" и затем - "Resolve" (в случае, если возврат к модели-источнику не нужно) или "Reverse" (для возврата к модели-источнику).
Если модель-источник связана с преобразованной моделью, то после обратного преобразования связь будет разорвана. После возобновления преобразования ERwin сохраняет исходные объекты и удаляет преобразованные и создается преобразованная модель объекта.
Результаты выполнения работы
1 часть

2 часть
1. Создание двух новых сущностей со связью «Many-to-Many»

2. Преобразование «Many-to-Many Transform»

3 часть
1. Создание трех новых сущностей со связью «Complete sub-category»

2. Преобразование «Supertype-Subtype Identity»

3. Преобразование «Supertype-Subtype Rollup»

4. Преобразование «Supertype-Subtype Rolldown»

4 часть
1. Создание новой сущности

2. Преобразование «Vertical Partition»

3. Преобразование «Horizontal Partition»

4. Преобразование «Column Denormalization»



