Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции / Горбунов / УП_ОПТ2 / Р8_Проектир.doc
Скачиваний:
41
Добавлен:
16.04.2013
Размер:
654.85 Кб
Скачать
      1. Структурные ограничения.

«Ошибаться можно различно, верно можно поступать только одним путем».

АРИСТОТЕЛЬ 384-322гг. до н.э.

Рассмотрим ограничения, которые мы можем наложить на сущность, как учасника связи. Это позволяет нам более точно и корректно формально описать предметную область. Основными способами такой конкренизации являются её кардинальность(cardinality) истепень участия(participation). Они являются важной частью описания бизнес-правил (business rules), но последние - более специальное понятие, чем модель “сущность-связь”.

Показатель кардинальности– описывает количество возможных связей для каждой из сущностей-участниц в типе связи.

Наиболее известными оказываются бинарные связи типа «один к одному» [1:1], «один ко многим» [1:M] или обраный данному тип «многие к одному» [M:1], «многие ко многим» [M:M].

Степень участия– определяет, зависит ли существование некоторой сущности от её участия в связи некоторой другой сущностью.

Выделяют два варианта участия сущности в связи: полное(total) иличастичное(partial). Степень участия является полной, если для существования некоторой сущности требуется существование другой сущности, связанной с ней определённой связью. В противном случае степень участия будет частичной. Полную степень участия иногда называютобязательным участием(mandatory), а частичную -необязательным(optional). Допускается и более информативное описание, альтернативное приведённому. Мы можем указать в круглых скобках минимальное (Min) и максимальное значения участия (Max) в данной связи в виде выражения (Min,Max). На ER-диаграммах показатели кардинальности так и записываются, сбоку или снизу\сверху от связей, как это показано на рисунке в заголовке. Участники связи с полным участием соединяются с ромбом связи двойной линией, а частичным – простой линией.

Внимание! При проектировании баз данных всегда надо четко понимать смысл каждой связи. Это не так просто, и примером типовых ошибок служат так называемые ловушки соединения, которых надо избегать.

Ловушка разветвления– если отображается связь между типами сущностей, но путь между сущностями этого типа определён неоднозначно.

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

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

      1. EER – модель.

«...Принципы поступков – это то, ради чего они совершаются».

АРИСТОТЕЛЬ 384-322гг. до н.э.

Развитие технологий программирования привело к необходимости учесть в традиционной ER-модели более тонкие аспекты организации данных. Поэтому появилась расширенная модель (Enhanced ER) или сокращенно EER-модель «сущность-связь». Она включает в себя все концепции ER-модели и дополняется концепциями специализации/генерализации и категоризации (суперклассы и подклассы), а также наследованием атрибутов.

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

Подкласс– тип сущности, который необходим для выполнения некоторой роли и является частью суперкласса.

Связь между суперклассом и подклассом называется «суперкласс/подкласс». Суперклассы и классы используются с целью выделения из близких по смыслу типов сущностей общих частей. Это позволяет избежать повторного описания схожих понятий. Сущность в подклассе представляет тот жеобъект, что и её суперкласс. Она может обладать атрибутами, которые либо связаны с суперклассом, либо специфические для данного подкласса. Так как подкласс также является сущностью, он имеет свои собственные подклассы. Сущность, её подклассы, подклассы данных подклассов и т.д. называют иерархией типа(type hierarchy). Иерархии типов могут иметь различные названия и незначительно различаться, как это имеет место в иерархияхспециализации, генерализацииипринадлежности.

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

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

На EER-диаграмме типы сущностей обозначаются прямоугольниками. Подклассы специализации соединяются линиями с окружостью, которая в свою очередь соединяется с суперклассом. Направление связи «подкласс/суперкласс» указавает стилизованный символ принадлежности «». В центре окружности может быть символ ограничения.

Генерализация– процесс сведения различий между сущностями к минимуму путем выделения их общих характеристик.

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

Первым будет ограничение непересечения (disjoint constraint). Для непересекающихся (disjoint) специализаций используется символ “d” в центре кружка, а если они пересекаются (nondisjoint) – символ “о”.

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

  • непересекающиеся полные,

  • непересекающиеся частичные;

  • пересекающиеся полные,

  • пересекающиеся частичные.

Мы в целом описали общепринятые правила отображения основных концепции на EER-диаграммах схем баз данных. Их использование требует известной практики, а многочисленные публикации предоставляют нужные примеры.

33

Соседние файлы в папке УП_ОПТ2