Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Проектирование баз данных.doc
Скачиваний:
9
Добавлен:
01.07.2025
Размер:
1 Мб
Скачать
☆

Использование ролевых отношений.

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

Мастер

Рабочий

Рис. 31. Возможный вариант E-R модели описания персонала.

Поскольку связь «Руководит» имеет степень 1:N с обязательным классом принадлежности с обеих сторон, то в соответствии с общим правилом будут построены два отношения, причем экземпляры отношения «Рабочий» будут содержать ссылку на руководителя этого работника. Такая модель не противоречит формальным правилам построения предварительных отношений, однако, при работе с неключевыми атрибутами в этой модели данных могут возникать проблемы.

Представим себе, что в исходном универсальном отношении присутствуют атрибуты «ФИО» (фамилия, имя и отчество работника) и «Домашний адрес». Тогда в предложенной модели данных следовало бы включить эти атрибуты и в отношение Мастер и в отношение Рабочий. Это противоречит очевидному требованию: каждый атрибут следует размещать лишь в одном отношении, в противном случае могут сильно усложниться поисковые операции (из-за вероятного поиска одного значения атрибута в разных таблицах).

Можно попытаться замаскировать эту проблему путем применения разноименных атрибутов в различных отношениях. Так, можно назвать атрибут «ФИО» в отношении Мастер «м_ФИО», а в отношении Рабочий «р_ФИО» и т.д. Формально, при этом будет соблюдено требование об уникальности имен неключевых атрибутов, однако это неудачное решение, позволяющее уйти на некоторое время от серьезной проблемы отсутствия подходящего места для указанных атрибутов.

У этой проблемы есть еще и другая грань. Два уровня иерархии – мастер и рабочий – характерны лишь для очень небольших организаций. В общем же случае в предметной области может существовать гораздо более сложная и многоуровневая система подчинения. Представим себе, что в структуре организации появилось еще одно звено – Начальник цеха. В рамках данной информационной модели это приведет к появлению нового отношения.

Начальник цеха

Мастер

Рис. 32. Еще один возможный вариант E-R модели описания персонала.

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

Служащий