
Лекция №8
Тема: «Расширенная модель «Сущьность-связь»»
Поскольку основные понятия ER-моделирования часто не удовлетворяют требования новейших, более сложных приложений, такая ситуация послужила стимулом к разработке дополнительных концепций "семантического" моделирования. В результате этого было предложено много перспективных семантических моделей данных, и некоторые из наиболее важных семантических концепций были успешно внедрены в первоначальную ER-модель.Такая ER-модель, оснащенная дополнительными семантическими концепциями,называется расширенной моделью "сущность-связь" (Enhanced Entity-Relationship — EER). В настоящей главе описаны три наиболее важные и полезные дополнительные концепции EER-модели: уточнение/обобщение, агрегирование и композиция.
Уточнение/обобщение
Понятие уточнения/обобщения связано со специальными типами сущностей, которые принято называть суперклассами и подклассами, а также с процессом наследования атрибутов. Настоящий раздел начинается с определения того, что представляют собой суперклассы и подклассы, и с изучения связей суперкласс/подкласс.
Суперкласс-Тип сущности, включающий одну или несколько различимых вспомогательных группировок ее экземпляров, которые должны быть представлены в модели данных.
Подкласс-Различимая вспомогательная группировка экземпляров типа сущности, которая должна быть представлена в модели данных.
Типы сущностей, которые включают различимые подклассы, называются суперклассами.
Связи суперкласс/подкласс
Каждый элемент подкласса является также элементом суперкласса. Иными словами, сущность, которая относится к подклассу, является той же сущностью,которая относится и к суперклассу, но выполняет в суперклассе и подклассе разные роли. Связь между суперклассом и подклассом является связью "один к одному" (1:1) и называется связью суперкласс/подкласс .
Итак, концепции суперклассов и подклассов могут быть введены в ER-модель по двум основным причинам. Во-первых, они позволяют не описывать несколько раз аналогичные сущности, благодаря чему экономится время проектировщика,а ER-диаграммы становятся более удобными для восприятия. Во-вторых, они позволяют ввести в проект больший объем семантической информации в форме, знакомой для широкого круга пользователей.
Наследование атрибутов
Подкласс, принадлежащий к нескольким суперклассам, называется общим подклассом. Иными словами, элемент общего подкласса должен быть элементом всех взаимосвязанных суперклассов. Следовательно, атрибуты суперклассов наследуются общим подклассом, который может также иметь свои собственные дополнительные атрибуты. Этот процесс называется множественным наследованием.
Процесс уточнения:
Уточнение представляет собой нисходящий подход к выявлению множества суперклассов и относящихся к ним подклассов. Набор подклассов определяется на основе некоторых отличительных особенностей элементов суперкласса. После выявления множества подклассов сущности определенного типа можно определить атрибуты, характерные для каждого подкласса (если это потребуется), а также выявить все связи между каждым подклассом и другими типами сущностей или подклассов (в случае необходимости).
Процесс обобщения:
Обобщение-Процесс стирания различий между элементами сущности путем выявления их общих особенностей.Процесс обобщения основан на восходящем подходе, который приводит к созданию обобщенного суперкласса на основе первоначальных типов сущностей.
Поскольку процесс обобщения может рассматриваться как обратный по отношению к процессу уточнения, весь этот подход к моделированию известен под общим названием уточнение /обобщение.
Ограничения процесса уточнения/обобщения
В процессе уточнения/обобщения могут применяться ограничения двух типов, а именно: ограничения степени участия (participation constraint) и ограничения непересечения (disjoint constraint).
Ограничение степени участия. Определяет, должен ли быть отнесен к какому-то подклассу каждый элемент суперкласса.Ограничение степени участия может быть обязательным или необязательным.Связь суперкласс/под класс с обязательным участием указывает на то, что каждыйэлемент суперкласса должен быть также элементом подкласса. Для указания на обязательное участие в фигурных скобках рядом с треугольником, указывающим на суперкласс, должно быть приведено ключевое слово "Mandatory" (Обязательный). Связь суперкласс/подкласс с необязательным участием указывает на то, что некоторые элементы суперкласса могут не принадлежать ни к одному из подклассов.Для указания на то, что применяется необязательное ограничение степени участия, в фигурных скобках под треугольником, который указывает на суперкласс, должно быть помещено ключевое слово "Optional" (Необязательный).
Ограничение непересечения. Описывает связь между элементами подклассов и указывает, может ли элемент суперкласса принадлежать только к одному или нескольким подклассам. Ограничение непересечения может применяться, только если суперкласс имеет несколько подклассов. Если подклассы являются непересекающимися, то каждый экземпляр сущности может быть элементом только одного из подклассов.Для представления непересекающейся связи суперкласс/подкласс вслед за ограничением степени участия в фигурных скобках должно быть помещено ключевое слово "Or". Ограничения непересечения и степени участия, характерные для процессов уточнения и обобщения, являются различными, поэтому при их совместном использовании связи между подклассами могут подразделяться на четыре категории: "обязательный и непересекающийся", "необязательный и непересекающийся", "обязательный и пересекающийся" и "необязательный и пересекающийся".
Агрегирование
Агрегирование. Представляет связь "has-a" (включает) или "is-part-of (входит в состав) между типами сущностей, один из которых представляет "целое", а другой — "часть".
Связь обычно применяется для обозначения соотношений между двумя типами сущностей, которые концептуально находятся на одном и том же уровне. Но иногда возникает необходимость моделировать связь "has-a" или "is-part-of", в которой одна сущность представляет собой более крупную сущность ("целое")состоящую из меньших сущностей ("частей"). Связь такого особого вида называется агрегированием [35]. Агрегирование не изменяет сути применения связи, с помощью которой происходит перемещение от целого к его частям, а также не определяет зависимости между существованием целого и его частей. Примером агрегирования является связь Has, которая определяет соответствие между сущностями Branch ("целое") и Staff ("часть").
Композиция
Композиция. Особая форма агрегирования, представляющая зависимость между сущностями, которая характеризуется полной принадлежностью и совпадением срока существований между "целым" и "частью". Агрегирование представляет исключительно концептуальную связь, но в его определении ничего не говорится о том, по каким признакам "целое" отличается от "части". Тем не менее для использования в моделировании данных предусмотрена одна из разновидностей агрегирования, называемая композицией, которая характеризуется полной принадлежностью и совпадением срока существования между "целым" и "частью" . В композиции "целое" отвечает за размещение его "частей", а это означает, что композиция должна управлять созданием и разрушением своих "частей". Иными словами, любой объект в любой момент времени может входить в состав только одной композиции.