
- •«Московский городской педагогический университет» ф акультет прикладной информатики Кафедра прикладной информатики в управлении
- •Организационно-методические указания по подготовке и проведению занятия Рекомендации по подготовке к занятию
- •План работы
- •I. Основная часть
- •1. Назначение и структура case-средства AllFusion Data Modeler
- •2. Порядок построения логической модели данных
- •2.1. Подмножества и хранимые отображения модели
- •2.2. Уровни представления модели данных в AllFusion Data Modeler
- •2.3. Порядок построение сущностей предметной области
- •2.4. Порядок построения связей предметной области
- •3. Порядок построения физической модели данных
- •2.11. Порядок генерации отчетов
- •3. Практическая часть
- •3.1. Порядок проведения работы
- •3.2. Содержание отчета
- •3.3. Зачет по лабораторной работе
- •II. Перечень заданий для выполнения работы
2.4. Порядок построения связей предметной области
Существующие между экземплярами сущностей предметной области взаимосвязи (ассоциации, отношения) моделируются, так называемым, множеством связей, которые также как и сущности, могут обладать определенными свойствами (атрибутами). При установлении связи между двумя сущностями, каждый экземпляр одной сущности, называемой родительской, ассоциирован с произвольным (в том числе и с нулевым) количеством экземпляров второй сущности, называемой сущностью-потомком. В таком случае каждый экземпляр сущности-потомка ассоциирован в точности с одним экземпляром сущности-родителя.
Связи может даваться имя, выражаемое грамматическим оборотом глагола и помещаемое возле линии связи. Имя связи выражает некоторое ограничение и облегчает чтение диаграммы, например:
несколько СОТРУДНИКОВ <работают в > одном ОТДЕЛе.
По умолчанию имя связи на диаграмме не показывается. Для отображения имени следует в контекстном меню, которое появляется, если щелкнуть правой кнопкой мыши по любому свободному месту диаграммы, выбрать пункт меню Relationships Display и затем включить опцию Verb Phrase.
На логическом уровне можно установить идентифицирующую связь один-ко-многим, связь многие-ко-многим, неидентифицирующую связь один-ко-многим и категориальную связь. Рассмотрим их.
В IDEF1X различают зависимые и независимые сущности.
Сущность является независимой (от идентификаторов), если каждый экземпляр сущности может быть однозначно идентифицирован без определения его отношения с другими сущностями.
Сущность называется зависимой, если однозначная идентификация экземпляра сущности зависит от его отношения с другими сущностями.
Тип сущности определяется ее связью с другими сущностями. Идентифицирующая связь устанавливается между независимой (родительский конец связи) и зависимой (дочерний конец связи) сущностями. Зависимая сущность изображается прямоугольником со скругленными углами. Экземпляр зависимой сущности определяется только через отношение к родительской сущности, т.е. например, информация о товаре и его количестве в СТРОКЕ ЗАКАЗА, для их фиксации в заказе не может быть внесена и не имеет смысла без информации о самом ТОВАРе, который продается клиенту.
При установлении идентифицирующей связи атрибуты первичного ключа родительской сущности автоматически переносятся (мигрируют) в состав первичного ключа дочерней сущности. В дочерней сущности новые атрибуты помечаются как внешний ключ (FK).
При установлении неидентифицирующей связи дочерняя сущность остается независимой, а атрибуты первичного ключа родительской сущности мигрируют в состав неключевых компонентов дочерней сущности и помечаются как FK. Например, при установлении неидентифицирующей связи между сущностями Сотрудник и Отдел, экземпляр сущности СОТРУДНИК может существовать безотносительно к какому-либо экземпляру сущности ОТДЕЛ.
Идентифицирующая связь показывается на диаграмме сплошной линией с жирной точкой на дочернем конце связи, неидентифицирующая – пунктирной. Для создания новой связи следует:
установить курсор
на нужной кнопке в палитре инструментов:
или
и нажать левую кнопку мыши;
щелкнуть сначала по родительской, а затем по дочерней сущности.
Примеры установления неидентифицирующей связи для сущностей ОТДЕЛ и СОТРУДНИК приведены на рис. 8а и 8б, а идентифицирующей связи для сущностей ТОВАР и СТРОКА ЗАКАЗА – на рис. 9а и 9б.
Для редактирования свойств связи следует щелкнуть правой кнопкой мыши по связи и выбрать на контекстном меню пункт Relationship Properties. На экране появиться диалоговое окно Relationship (рис. 10).
В закладке General появившегося диалогового окна можно задать мощность (Cardinality), имя (Verb Phrase) и тип (Type) связи. В закладках Definition можно дать более полное определение связи, Rolename– имя роли (синоним атрибута внешнего ключа), RI Actions – правила ссылочной целостности, UDP – свойства данных, определенных пользователем.
Рис. 10. Диалоговое окно Relationship
Правила ссылочной целостности представляют собой правила вставки, замены и удаления строк в связанных таблицах. При генерации схемы БД на основе опций логической модели, задаваемых в закладках Rolename и RI Actions, будут сгенерированы правила декларативной ссылочной целостности, которые должны быть предписаны для каждой связи, и триггеры, обеспечивающие ссылочную целостность. Триггеры представляют собой программы, запускающиеся всякий раз при выполнении команд вставки, замены или удаления (INSERT, UPDATE, DELETE). С помощью опций NONE, RESTRICT, CASCADE, NO ACTION, SET NULL, SET DEFAULT можно установить различные варианты выполнения операций обновления над дочерней и родительской таблицами. Например, при удалении строки из родительской таблицы OTDEL следует либо запретить удаление сведений об отделе, пока хотя бы один экземпляр дочерней таблицы (например, Сотрудник – SOTR) включает сведения о данном отделе (Parent RESTRICT), либо сразу удалять вместе с отделом все упоминания о нем в дочерних таблицах (Parent CASCADE).
Приведем значение других опций: NONE – при удалении строки из таблицы значение атрибута внешнего ключа не меняется; SET NULL – атрибут внешнего ключа может принимать значение NULL (неопределенное значение); SET DEFAULT – при удалении строки атрибуту внешнего ключа присваивается значение по умолчанию, NO ACTION – при выполнении операции обновления таблицы никаких действий над значениями атрибутов не выполняется.
Связь многие-ко-многим устанавливается между двумя родительскими сущностями. Результатом такой связи является новая зависимая и дочерняя сущность, в состав первичного ключа которой переносятся атрибуты первичных ключей родительских сущностей.
Для создания связи многие-ко-многим следует:
установить курсор
на нужной кнопке в палитре инструментов:
и нажать левую кнопку мыши;
щелкнуть сначала по одной родительской сущности, а затем по другой.
Связь многие-ко-многим
изображается на диаграмме в виде сплошной
линии с жирными точками на концах. Для
того, чтобы увидеть дочернюю зависимую
сущность, необходимо в выпадающем списке
выбора уровня представления, расположенном
на панели инструментов, выбрать опцию
"Physical Model".
Кроме того, для визуализации отображения
дочерней зависимой сущности в AllFusion
Data Modeler
v.7.2, необходимо воспользоваться
специальным мастером. Для этого, находясь
на физическом уровне представления,
необходимо с помощью мыши выделить
связь многие-ко-многим, затем нажать на
кнопку
,
расположенную на панели инструментов,
или выбрать пункт меню Edit|Many
To Many Transform. На
экране появиться
диалоговое окно"Many
To Many Relationship Trasform Wizard".
Нажмите в окне кнопку "Далее".
В поле ввода Table Name
введите имя новой сущности, например,
ОСНАЩЕНИЕ. Нажмите кнопку "Далее".
В поле ввода Transform
Name введите имя
сущности на уровне трансформационной
модели, например, ОСНАЩЕНИЕ. Нажмите
кнопку "Далее", а затем "Готово".
В окне диаграммы на экране появиться
новая зависимая дочерняя сущность.
Пример установления связи многие-ко-многим между сущностей ОТДЕЛ и Вид ТЕХ.СРЕДСТВА приведены на рис. 11а и 11б.
Категориальная связь устанавливается между родительской и дочерними сущностями и формализуется по аналогии с идентифицирующей связью 1:М.