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



         

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


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

Эта нотация основана на том наблюдении, что агрегация и обобщение являются независимыми действиями. Если задан конкретный объект, обобщения этого объекта могут рассматриваться независимо от связей, в которых этот объект принимает участие. Благодаря этому напрашивается графическая нотация, в которой обобщение и агрегация представляются ортогонально. Мы выбрали для представления агрегации плоскость страницы, а для представления обобщения – плоскость, перпендикулярную странице. Родовая структура, показанная на , представлена графически на рис.7.

Picture 7

Рис. 7. Графическое представление родовой структуры

Агрегированные объекты верхнего уровня будут при этом показываться вверху страницы, а объекты более низких уровней – ниже, к концу страницы. Таким образом, агрегация показывается вверх по странице. Родовые объекты верхних уровней будут показываться (в имитируемом таким образом трехмерном пространстве) на поверхности страницы, а родовые объекты более низких уровней – ниже поверхности. Обобщение, следовательно, показывается вне страницы.

Предположим, что мы должны моделировать "служащих" (employee) некоторой компании. Допустим также, что в этой компании в некоторый момент времени имеется три различных типа служащих – водители грузовиков (trucker), секретари (secretary) и инженеры (engineer). Должна поддерживаться информация о каждом отдельном служащем – хотя в зависимости от типа служащих необходимы различные виды информации. Кроме того, должна поддерживаться информация о каждом родовом типе служащих.

Более конкретно, предположим, что атрибуты "идентификационный номер служащего" (employee ID#), "фамилия" (name), "возраст" (age) и "тип служащего" (employee type) являются важными для всех отдельных служащих.


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