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

5.6.2. Обобщения

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

Пусть требуется описать график приема пациентов (рис. 5.21 и 5.22). Здесь атрибут Дата-время включен в первичный ключ. Если этого не сделать, то для каждой пары врач-пациент можно было бы зарегистрировать не более одной встречи.

Рис. 5.21.: Ассоциация. Презентационная диаграмма (см. 5.6.2)

В общем случае граф, моделируемый ассоциацией, может иметь произвольное число долей (k- дольный граф или мультиграф, k > 2).

5.6.3. Пример реализации ассоциации

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

сИсполнителем при необязательном участии Консультанта. При этом

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

Рис. 5.22.: Ассоциация. Ключевая диаграмма (см. 5.6.2)

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

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

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

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

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

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

Рис. 5.23.: Ассоциация. Презентационная диаграмма (см. 5.6.3)

Рис. 5.24.: Ассоциация. Ключевая диаграмма (см. 5.6.3)

Приведем фрагмент оператора создания базового отношения График с определением правил поддержания ссылочной целостности:

create table График МнемоК null

primary key(МнемоЗ, МнемоИ, Дата-время)

foreign key(МнемоЗ) references Заказчики(МнемоЗ) on update cascade

on delete cascade

foreign key(МнемоИ) references Исполнители(МнемоИ) on update cascade

on delete cascade

foreign key(МнемоК) references Консультанты(МнемоК) on update cascade

on delete set null

При обновлении значения любого мнемокода применяется правило каскадного обновления, так как это полностью сохраняет содержательную часть хранимых данных. При удалении данных о Заказчиках и Исполнителях помимо принятого правила каскадного удаления можно было бы использовать правило ограничения restrict. При удалении данных о Консультанте применяется правило присвоения null-значения, позволяющее сохранить данные о встречах Заказчика и Исполнителя.

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

Таблица 5.2.: Ассоциация. Пример в табличной форме (см. 5.6.3, табл. 5.3)

Заказчики

 

Исполнители

 

Консультанты

МнемоЗ

...

 

МнемоИ

...

 

МнемоК

...

ЗИЛ

 

 

СГУ

 

 

МГУ

 

САЗ

 

 

СГТУ

 

 

КГУ

 

 

 

 

 

 

 

ПАГС

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 5.3.: Ассоциация. Пример в табличной форме (см. 5.6.3, табл. 5.2)

График

 

 

 

МнемоЗ

МнемоИ

МнемоК

Дата-время

ЗИЛ

СГУ

null

31.12.2000 12:00

ЗИЛ

СГУ

МГУ

02.02.2015 14:00

ЗИЛ

СГУ

null

03.03.2005 14:00

 

 

 

 

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