Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по IDEF1x.doc
Скачиваний:
21
Добавлен:
28.09.2019
Размер:
671.74 Кб
Скачать

5.8. Ролевое имя.

В некоторых случаях сущность-потомок может иметь несколько отношений связи с одной и той же сущностью-родителем. Тогда для каждого отношения к сущности-потомку должен мигрировать первичный ключ сущности-родителя. Однако для одного экземпляра сущности-потомка значение мигрирующих атрибутов для каждого отношения может быть различным, т.е. эти атрибуты могут относиться к двум различным экземплярам сущности- родителя. Например, при регистрации в журнале материалов и полуфабрикатов, поступивших на предприятие, контролер БВП делает отметки (ставит свою подпись) в четырех графах: отметку о приемке, роспись за соответствие внешнего осмотра материалов, роспись за соответствие сертификата, роспись за соответствие результатов лабораторных исследований требованиям НТД. Следовательно, сущность-потомок

РЕГИСТРАЦИОННАЯ_ЗАПИСЬ находится в четырех отношениях связи с сущностью-родителем КОНТРОЛЕР_БВП. Если КОД-СОТРУДНИКА – первичный ключ сущности КОНТРОЛЕР_БВП, то КОД-СОТРУДНИКА должен четыре раза появиться в сущности РЕГИСТРАЦИОННАЯ_ЗАПИСЬ, как мигрирующий атрибут. Однако сущность может иметь только один атрибут с данным именем. Для решения проблемы вводятся ролевые имена.

Ролевое имя присваивается каждому появлению одного и того же атрибута в сущности:

- для различения каждого случая миграции атрибута в сущности-потомке, когда атрибут мигрирует к сущности посредством более одного отношения,

- если экземпляр сущности имеет одно значения для одного случая появления атрибута и другое значение - для другого.

С другой стороны, если каждый экземпляр сущности имеет одно и то же значение для двух и более появлений атрибута, эти появления атрибута должны все иметь одно и то же имя.

Ролевые имена обозначаются именами существительными. Ролевое имя пишется перед именем мигрирующего атрибута и отделяется точкой. В предыдущем примере, для различения четырех случаев миграции атрибута КОД-СОТРУДНИКА им присваиваются ролевые имена ПРИЕМКА.КОД-СОТРУДНИКА, СООТВЕТСТВИЕ-СЕРТИФИКАТУ.КОД- СОТРУДНИКА, СООТВЕТСТВИЕ-ОСМОТРУ.КОД-СОТРУДНИКА и СООТВЕТСТВИЕ- ИССЛЕДОВАНИЮ.КОД-СОТРУДНИКА. Хотя это и необязательно, ролевое имя может также использоваться при единичном случае появления мигрирующего атрибута для более точной характеристики его значения в контексте сущности-потомка. Например, при миграции первичного ключа общей сущности СОТРУДНИК к сущностям-категориям РАБОТНИК_СКЛАДА, РАБОТНИК_ЛАБОРАТОРИИ, КОНТРОЛЕР_БВП, удобно присвоить мигрирующему ключу ролевые имена. При миграции атрибута КОД- СОТРУДНИКА к сущности РАБОТНИК_СКЛАДА – имя КЛАДОВЩИК.КОД_СОТРУДНИКА, при миграции к сущности РАБОТНИК_ЛАБОРАТОРИИ – имя ЛАБОРАНТ.КОД-СОТРУДНИКА, при миграции к сущности КОНТРОЛЕР_БВП – имя КОНТРОЛЕР.КОД-СОТРУДНИКА.

Рис. V 5. Пример ролевых имен

Тогда при появлении отношений связи, в которых сущности-категории РАБОТНИК_СКЛАДА, РАБОТНИК_ЛАБОРАТОРИИ и КОНТРОЛЕР_БВП будут участвовать как сущности-родители, дальнейшая миграция первичного ключа (атрибута с ролевым именем) будет касаться только ролевого имени, т. е. для приведенных выше четырех отношений связи между сущностью-родителем КОНТРОЛЕР_БВП и сущностью-потомком РЕГИСТРАЦИОННАЯ_ЗАПИСЬ мигрирующий атрибут КОНТРОЛЕР.КОД-СОТРУДНИКА в сущности РЕГИСТРАЦИОННАЯ_ЗАПИСЬ появится четыре раза как: ПРИЕМКА.КОНТРОЛЕР, СООТВЕТСТВИЕ-ОСМОТРУ.КОНТРОЛЕР, СООТВЕТСТВИЕ-СЕРТИФИКАТУ.КОНТРОЛЕР и СООТВЕТСТВИЕ-ИССЛЕДОВАНИЮ.КОНТРОЛЕР. Таким образом, введение ролевого имени позволяет уточнить специальность сотрудника, выполняющего работу.