Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
dbbook(2010.04.15).pdf
Скачиваний:
51
Добавлен:
09.06.2015
Размер:
2.14 Mб
Скачать

5.7. Обобщение

5.7.1. Абстрактная схема

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

Термин «обобщение» соответствует переходу от детализированных, категориальных сущностей к обобщенной сущности. Обратный переход называется детализацией.

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

На презентационных диаграммах связь «обобщение-категория» удобно изображать в нотации UML (рис. 5.25).

Рис. 5.25.: Связь «обобщение-категория» в нотации UML

Построим абстрактные диаграммы, реализующие обобщение в реляционной модели (рис. 5.26,

5.27).

Рис. 5.26.: Обобщение. Абстрактная презентационная диаграмма

Примечание. Вид при обобщении – это центральное место триады «род – вид – индивид». Стрелки, идущие от категорий к обобщению, можно и не сливать

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

5.7.2. Пример реализации обобщения

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

1) Построить презентационную диаграмму.

Рис. 5.27.: Обобщение. Абстрактная ключевая диаграмма

Примечание. В родительский класс обобщенных сущностей выносятся АТРИБУТЫ, общие для всех категориальных сущностей

2)Построить ключевую диаграмму. Привести маркеры атрибутов ключей и указать кратности связей. Для идентификации учащегося использовать значение суррогатного ключа. Какой вид связей используется?

3)Сформулировать и записать на псевдокоде декларативные правила поддержания ссылочной целостности. Обосновать на содержательном уровне выбор правил.

4)Привести пример в табличной форме.

Решение. Презентационная и ключевая диаграммы представлены на рис. 5.28, 5.29 соответственно.

Рис. 5.28.: Обобщение. Презентационная диаграмма (см. 5.7.2)

При обобщении связи могут быть только полностью идентифицирующими, то есть категориальными.

Рис. 5.29.: Обобщение. Ключевая диаграмма (см. 5.7.2)

Примечание. Здесь для краткости указан составной атрибут ФИО, что для ключевых диаграмм допустимо

Приведем фрагмент оператора создания базового отношения Школьники (аналогично и для отношений Студенты и Аспиранты) с определением правил поддержания ссылочной целостности:

create table Школьники primary key(КодУ)

foreign key(КодУ) references Учащиеся(КодУ) on delete cascade

Определять правило поддержания ссылочной целостности при обновлении родительского ключа КодУ нет необходимости, так как этот ключ – суррогатный и обновлению не подлежит. Вместо правила каскадного удаления могло бы быть сформулировано правило ограничения restrict, но не set null, так КодУ в дочернем отношении является первичным ключом и null-значений не допускает.

Пример в табличной форме приведен в табл. 5.4, 5.5.

Таблица 5.4.: Обобщение. Пример в табличной форме (см. 5.7.2, табл. 5.5)

 

Учащиеся

 

 

 

 

КодУ

Ф

И

О

...

 

 

 

 

 

 

 

 

1

Примеров

Пример

Примерович

 

 

2

Иванов

Иван

Иванович

 

 

3

Петров

Петр

Петрович

 

 

4

Сидоров

Сидор

Сидорович

 

 

 

 

 

 

 

 

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]