- •Содержание
- •Правила для неопределенных отношений 79
- •1. Занятие I. Общее знакомство с idef1x. Термины.
- •1.1. Концепции метода idef1x.
- •1.2. Цель создания информационной модели.
- •1.3. Предпосылки к появлению методологии idef1x.
- •1.4. Основные термины и определения методологии idef1x.
- •1.5. Графическое представление модели.
- •1.6. Правила для диаграмм
- •1.7. Примечания
- •2. Занятие II. Этапы создания информационной модели.
- •2.5. Принятие авторских соглашений по моделированию.
- •3.2. Зависимая и независимая сущности.
- •3.3. Графическое изображение сущностей на диаграммах.
- •3.3.1. Сущность, независимая от идентификатора
- •3.3.2. Сущность, зависимая от идентификатора
- •3.4. Составление списка естественных сущностей.
- •4.3. Отношение связи. Определенное отношение связи.
- •4.3.1. Правила для определенных отношений связи.
- •4.4. Отношение категоризации.
- •4.4.1. Правила для отношений категоризации.
- •4.5. Неопределенное отношение.
- •4.5.1. Правила для неопределенных отношений
- •Графическое изображение отношений на диаграмме.
- •4.8. Диаграмма сущностей.
- •4.9. Контрольные вопросы и задания:
- •5.2. Преобразование неопределенных отношений.
- •5.3. Что такое атрибут?
- •Обозначение альтернативных ключей
- •5.5. Внешние ключи.
- •5.8. Ролевое имя.
- •5.9. Идентификация ключевых атрибутов.
- •5.10. Правила назначения ключей.
- •5.11. Таблица «сущность/атрибут».
- •5.12. Представление результатов в виде диаграммы.
- •5.13. Контрольные вопросы и задания:
- •6.3. Определение принадлежности атрибутов. Описание атрибутов.
- •6.4. Правила назначения не ключевых атрибутов.
- •6.5. Представление результатов этапа.
- •6.6. Контрольные вопросы:
- •8. Приложение 1. Определения
- •Idef1x диаграмма: См. Диаграмма представления.
- •9.1. Имена диаграмм, сущностей, и атрибутов
- •9.2. Метки сущности
- •9.3. Метки ролевого имени атрибута
- •9.4. Метки имен отношений
- •9.5. Примечания к модели
- •9.6. Отображения меток на нескольких строках
- •10. Приложение 3. Правила.
- •10.1. Правила для атрибутов
- •10.2. Правила для диаграмм
- •10.3. Правила для ключей
- •10.3.1. Правила для внешних ключей
- •10.3.2. Правила для первичных и альтернативных ключей
- •10.4. Правила для отношений.
- •10.4.1. Правила для неопределенных отношений
- •10.4.2. Правила для определенных отношений связи
- •10.4.3. Правила для отношений категоризации
- •10.5. Правила для примечаний
- •10.6. Правила для сущностей
- •10.7. Правила для уровней представления
- •11. Приложение 4. Примеры информационных моделей.
5.9. Идентификация ключевых атрибутов.
Руководствуясь определением атрибута и Правилами для атрибутов, необходимо назначить ключевые атрибуты сущностям. Для поиска атрибутов используем листы функциональной модели и список потенциальных сущностей, составленный нами на этапе определения сущностей. Процесс выбора первичных и альтернативных ключей начинаем с тех сущностей, которые не являются сущностями-потомками в отношениях связи и категоризации. Для каждой сущности составляем список из потенциальных ключей. Подбираем все возможные атрибуты и группы атрибутов, которые могут однозначно
идентифицировать экземпляры сущности. Следует помнить, что в рамках модели отдельный атрибут может принадлежать только одной сущности. Другие сущности могут получить этот атрибут только в случае его миграции посредством отношения связи или категоризации.
Из списка потенциальных ключей нужно выбрать один ключ в качестве первичного, а остальные ключи обозначить как альтернативные. Следующий шаг – выбор первичных ключей для сущностей-потомков и сущностей-категорий. Первичный ключ сущности-потомка в отношении связи должен состоять из мигрирующих атрибутов и из собственных атрибутов сущности, а первичный ключ сущности-категории полностью тождественен первичному ключу общей сущности (допустимо вводить дополнительно только ролевые имена).
5.10. Правила назначения ключей.
При назначении первичных ключей сущностям следует руководствоваться следующими правилами:
1) должны быть устранены все неопределенные отношения,
2) обязательно учитывается миграция ключей от сущности-родителя или общей
сущности к сущности-потомку или сущности-категории,
3) нельзя использовать атрибут, который имеет более одного значения для отдельного
экземпляра сущности одновременно (Правило неповторяемости),
4) нельзя использовать в качестве первичного ключа атрибуты, которые не имеют значения для какого-либо экземпляра сущности,
5) сущность, имеющая составной первичный ключ, не должна делиться на несколько сущностей с более простым первичным ключом,
6) при наличии более одного пути между двумя сущностями требуется утверждение пути.
В соответствии с требованиями первого и второго правила мы уже заменили неопределенные отношения и выявили мигрирующие атрибуты сущностей, поэтому переходим к рассмотрению третьего правила назначения ключей. В качестве примера возьмем сущность ЗАКАЗ. Если первичным ключом сущности выбрать набор атрибутов НОМЕР-ЗАКАЗА и НОМЕР-ПУНКТА-ЗАКАЗА, то образуется противоречие с третьим правилом назначения ключей. Действительно, для одного экземпляра сущности ЗАКАЗ может быть несколько значений атрибута НОМЕР-ПУНКТА-ЗАКАЗА.
Рис. V 5 Пример
выполнения Правила неповторяемости
Для иллюстрации правила номер четыре рассмотрим пример. Пусть имеется
отношение связи между сущностями ГОТОВАЯ_ПРОДУКЦИЯ и ПУНКТ_ЗАКАЗА:
«Готовая продукция занесена в ноль, один или несколько пунктов заказа».
В этом случае сущность ПУНКТ_ЗАКАЗА содержит мигрирующий атрибут КОД-ПРОДУКЦИИ. Однако если заказ может быть сделан не только на готовую продукцию, но и
на услуги, возникает противоречие с правилом номер четыре. Для устранения противоречия
вводятся две новые сущности ЗАКАЗ_НА_ПРОДУКЦИЮ и ЗАКАЗ_НА_УСЛУГУ. См. рис.
V 6.
Рис. V 6. Пример выполнения Правила ненулевого атрибута
Для объяснения правила номер пять следует сделать небольшое пояснение. Утверждение пути охватывает два и более путей между сущностью и одним из ее предков. Каждый путь – это определенное отношение связи или отношение категоризации, или ряд таких отношений, приводящий от сущности-предка к сущности-потомку. Например, если сущность ОТДЕЛ имеет две сущности-потомка, ПРОЕКТ и СОТРУДНИК, и они имеют общего потомка - сущность НАЗНАЧЕНИЕ_ПРОЕКТА, тогда имеются два пути между сущностями ОТДЕЛ и НАЗНАЧЕНИЕ_ПРОЕКТА: один через сущность ПРОЕКТ и один через сущность СОТРУДНИК.
Рис. V 7. Пример двух путей между сущностями.
Утверждение пути описывает ограничение на экземпляры сущности предка (например, ОТДЕЛ), с которым каждый экземпляр сущности потомка (например, НАЗНАЧЕНИЕ_ПРОЕКТА) может быть связан. Утверждение пути устанавливает, что или экземпляр потомка должен быть связан с одним и тем же экземпляром предка через каждый путь, или экземпляр потомка должен быть связан через каждый путь с различными экземплярами предка. В примере, приведенном выше, утверждение пути может выглядеть
следующим образом: «сотрудникам могут быть назначены только те проекты, которые принадлежат отделу, в котором эти сотрудники работают», то есть, экземпляр сущности НАЗНАЧЕНИЕ_ПРОЕКТА должен быть связан с одним и тем же экземпляром сущности ОТДЕЛ через оба пути. С другой стороны, утверждение пути может выглядеть и по-другому: «сотрудники не могут быть назначены на проекты, которые принадлежат отделу, в котором они работают», то есть, экземпляр сущности НАЗНАЧЕНИЕ_ПРОЕКТА должен быть связан через каждый путь с различными экземплярами сущности ОТДЕЛ. Третья возможность - «сотрудники могут быть назначены на проекты, которые принадлежат любому отделу». Так как в последнем случае не имеется никакого ограничения, в утверждении пути нет необходимости.
В правиле номер пять сказано, что, когда при создании информационной модели между двумя сущностями возникает два пути, необходимо утверждение пути, при котором определяют, являются ли пути одинаковыми, разными или неопределенными.
Пути одинаковы, если от каждого экземпляра сущности-потомка, и первый, и второй путь приводят к одному и тому же экземпляру сущности-предка. Пути различны, если от каждого экземпляра сущности-потомка, и первый, и второй путь приводят к разным экземплярам сущности-предка. Пути считаются неопределенными, если для одних экземпляров сущности-потомка они равны, а для других – различны. Если один из путей состоит только из одного отношения, и пути равны, то этот путь (это отношение) следует удалить.
Например, на рис. V 8 сущность СОТРУДНИК связана с сущностью ДЕПАРТАМЕНТ двумя путями: напрямую и косвенно через сущность ОТДЕЛ. Если при утверждении пути установлено, что ДЕПАРТАМЕНТ, к которому приписан СОТРУДНИК, и ДЕПАРТАМЕНТ, к которому относится ОТДЕЛ, в котором работает СОТРУДНИК – одинаковы для всех сотрудников, то пути одинаковы. Следовательно, отношение связи между сущностями ДЕПАРТАМЕНТ и СОТРУДНИК необходимо удалить.
Рис. V 8. Пример утверждения пути.
Если ни один из путей не включает не идентифицирующее отношение, то первичный ключ сущности-предка переместится полностью к сущности-потомку по всем путям, приводя к множественным появлениям мигрирующего атрибута в потомке. В этом случае, наряду с утверждением пути могут быть необходимы ролевые имена. Имеются четыре возможные ситуации.
1) Пути одинаковые. Это означает, что экземпляр потомка должен быть связан с одним и тем же экземпляром предка через все пути. В этой ситуации, или не назначают ролевые имена, или назначают одно и то же ролевое имя всем появлениям мигрирующего атрибута в
сущности потомке. Присвоение одного и того же ролевого имени всем появлениям атрибута достаточно для моделирования утверждение пути, так что ограничивающее примечание не нужно.
2) Пути различные. Это означает, что экземпляр потомка должен быть связан через каждый путь с различным экземпляром предка. В этой ситуации, назначают разные ролевые имена для каждого появления мигрирующего атрибута в потомке, и добавляют утверждение пути, устанавливающее, что значения экземпляров сущности-предка должны быть различны.
3) Пути неопределенные. В этой ситуации, назначают разные ролевые имена каждому появлению мигрирующего атрибута в потомке, но не добавляют утверждения пути, которое не нужно в этом случае, потому что присвоение разных ролевых имен позволяет, но не требует, чтобы значения экземпляров предка были различными.
4) Может быть и четвертый вариант: некоторые из экземпляров сущности-предка могут быть или одни и те же, или различные, а другие должны быть одни и те же, или должны быть различны. В этом случае, устанавливают множество утверждений пути, каждый для отдельной ситуации, описанной выше.