Классика баз данных - статьи



         

Моделирование с помощью родовой структуры - часть 4


В общем случае отношение R может иметь в плоскости обобщения несколько принадлежаших ему кластеров. Для каждого кластера C будет существовать соответствующее отношение, на которое ссылается R в плоскости агрегации. Это отношение будет описывать атрибуты (если они имеются) родовых объектов в C. Можно следующим образом резюмировать это общее свойство реляционных моделей: атрибуты родовых компонентов абстрактного объекта R определяются в отношениях, которые являются агрегатными компонентами R.

Рассмотрим теперь моделирование различных дополнительных аспектов реального мира, относящихся к служащим. В качестве первого аспекта предположим, что должны моделироваться "профсоюзы" (trade union), объединяющие различные типы служащих. Будем считать значимыми следующие атрибуты профсоюза: его название (name), адрес (address) и руководитель (senior officer). На рис. 13 объект "trade union" показан в плоскости агрегации объекта "employee", а плоскость обобщения опущена (см. ).

Picture 13

Рис. 13. Объект "trade union", включенный в плоскость агрегации объекта "employee"

Для нас представляет также интерес "принадлежность" (affiliation) к профсоюзам типов служащих (employee-type). Поэтому мы образуем абстрактный объект "affiliation" как агрегацию "employee-type" и "trade union". Предположим, что важным атрибутом принадлежности является лицо, уполномоченное выступать от имени членов профсоюза конкретного типа служащих. Следовательно, в качестве дополнительного компонента объекта "affiliation" должен быть включен соответствующий объект, скажем, "представитель" (spokesman). После того, как это будет сделано, модель приобретет вид, показанный на рис.14.

Picture 14

Рис. 14. Объект "affiliation", включенный

Выбрав соответствующим образом селекторы и ключи, получаем следующее определение "affiliation":

var affiliation: generic of agregate [TN, UN] TN: key employee-type; UN: key trade union; S: spokesman end




Содержание  Назад  Вперед