Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабы / labsБД / БД_лаб2.doc
Скачиваний:
48
Добавлен:
16.04.2013
Размер:
163.33 Кб
Скачать

Типы сущностей и иерархия наследования.

Различают несколько типов зависимых сущностей.

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

Ассоциативная– сущность, связанная с несколькими родительскими сущностями. Такая сущность содержит информацию о связях сущностей. Примером является Визит.

Категориальная– дочерняя сущность в иерархии наследования.

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

Для каждой категории можно указать дискриминатор – атрибут родового предка, который показывает, как отличить одну категориальную сущность от другой (атрибут Тип).

Иерархии категорий делятся на два типа – полные и неполные. В полной категории одному экземпляру родового предка (сущность Служащий) обязательно соответствует экземпляр в каком-либо потомке, т.е. в примере служащий обязательно является либо совместителем, либо консультантом, либо постоянным сотрудником.

Рис. 2.9. Иерархия наследования. Полная категория.

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

Для редактирования категорий нужно в контекстном меню для категории выбрать пунктSubtypeRelationshipEditor.

Рис. 2.10. Иерархия наследования. Неполная категория.

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

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

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

Основных понятий ER-моделирования недостаточно для разрешения таких ситуаций, поэтому появилась расширеннаяER-модель(илиEER-модель), дополненная новыми концепциями, такими как специализация/генерализация и категоризация.

Eer-модель

Рассмотрим сначала понятия суперкласса и подкласса, а также процесс наследования атрибутов, которые являются основными в EER-моделировании.

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

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

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

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

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

Каждая связь «суперкласс/подкласс» в иерархии специализации/генерализации обладает единственным и отличным от других суперклассом. Однако в некоторых ситуациях может потребоваться смоделировать связь «суперкласс/подкласс», включающую сразу несколько разных суперклассов. В этом случае создаваемый подкласс будет называться категорией.

Категоризацияэто моделирование одного подкласса со связью, которая охватывает несколько разных суперклассов.

Ключи.

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

Первичный ключ(primarykey) – это атрибут или группа атрибутов, однозначно идентифицирующая экземпляр сущности. На диаграмме эти атрибуты располагаются в списке атрибутов выше горизонтальной линии. Признак первичного ключа в диалогеAttributeEditorвключается флажкомPrimaryKeyв закладкеGeneral.

В одной сущности могут оказаться несколько атрибутов, претендующих на роль первичного ключа. Такие претенденты называются потенциальными ключами(candidatekey).

Ключи могут быть сложными, т.е. содержащими несколько атрибутов.

Для того, чтобы стать первичным, потенциальный ключ должен удовлетворять ряду требований:

Уникальность. Два экземпляра не должны иметь одинаковых значений возможного ключа.

Компактность. При выборе первичного ключа предпочтение должно отдаваться более простым ключам, т.е. ключам, содержащим меньшее количество атрибутов.

Атрибуты ключа не должны содержать нулевых значений.

Значение атрибутов ключа не должно меняться в течение всего времени существования экземпляра сущности.

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

При работе ИС часто бывает необходимо обеспечить доступ к нескольким экземплярам сущности, объединенным каким-либо одним признаком. Для повышения производительности в этом случае используются неуникальные индексы. Атрибуты, участвующие в неуникальных индексах, называются инверсионными входами(InversionEntries).Erwinгенерирует неуникальный индекс для каждогоInversionEntry.

Создать альтернативные ключи и инверсионные входы можно в закладке KeyGroupдиалогаAttributeEditor. На диаграмме атрибуты альтернативных ключей обозначаются как (АКn.m), гдеn– порядковый номер ключа,m– порядковый номер атрибута в ключе. Инверсионные входы обозначаются как (IEn.m), гдеn– порядковый номер входа,m– порядковый номер атрибута.

Рис. 2.11. Сущность «Сотрудник» с отображением ключей.

Внешние ключи(ForeignKey) создаются автоматически, когда связь соединяет сущности: связь образует ссылку на атрибуты первичного ключа в дочерней сущности и эти атрибуты образуют внешний ключ в дочерней сущности (миграция ключа). Атрибуты внешнего ключа обозначаются символом (FK) после своего имени.

Соседние файлы в папке labsБД