Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БД_2013_Задания / КонспектЛекций_БД_СоболеваНВ_2013.docx
Скачиваний:
125
Добавлен:
12.03.2015
Размер:
634.27 Кб
Скачать

3 Бинарная связь n:m («многие-ко-многим»)

Пусть преподаватель читает много дисциплин или ничего, и каждая дисциплина читается несколькими преподавателями или никем (рисунок 6).

Рисунок 5 – Связь необязательная для m-связной сущности

Очевидно, что в этом случае устранить избыточность можно только путём создания трёх отношений:

ПРЕПОДАВАТЕЛЬ (Табельный номер, ФИО, Кафедра);

ДИСЦИПЛИНА (Код дисциплины, Название);

ЧИТАЕТ (Табельный номер, Код дисциплины).

В отношении ЧИТАЕТ между внешними ключами не существует функциональной зависимости и свойством уникальности обладает только их сочетание, поэтому первичным ключом отношения для связи становится составной ключ.

Если предположить, что связи ЧИТАЕТ и ЧИТАЕТСЯ носят обязательный характер, то рассуждая аналогично предыдущему, получим такой же результат: три отношения. Поэтому правило для связи n:m не включает характеристику обязательности связи. В дальнейшем для связей этого типа можно использовать сплошную линию независимо от обязательности.

Правило. Если связь n:m, то строится по одному отношению для каждой сущности и одно отношение для связи; отношение для связи содержит ключи обеих сущностей, первичным ключом отношения для связи является ключ, состоящий из ключей обеих сущностей; отношение для связи может иметь собственные неключевые атрибуты.

4 Связи более высокого порядка (n-арные)

Пусть концептуальная модель представлена следующим фрагментом (рисунок 7):

Рисунок 6 – Связь более высокого порядка

В этом случае для получения 3НФ необходимо создать 4 отношения:

ПРЕПОДАВАТЕЛЬ (Табельный номер, ФИО, Кафедра);

ДИСЦИПЛИНА (Код дисциплины, Название);

НАПРАВЛЕНИЕ (Шифр направления, Название направления);

ОБУЧАЕТ (Табельный номер, Код дисциплины, Код специальности).

Правило. Если связь n-арная, то строится по одному отношению для каждой сущности и одно отношение для связи; отношение для связи содержит ключи всех сущностей, первичным ключом отношения для связи является ключ, состоящий из ключей всех сущностей; отношение для связи может иметь собственные неключевые атрибуты.

5 Классы и подклассы

Переход от иерархии сущностей к отношениям реляционной модели может быть осуществлён по следующему правилу:

для каждой сущности в иерархии строится отдельное отношение.

Рассмотрим пример (рисунок 8).

Рисунок 8 – Классы и подклассы

Создадим следующие отношения:

РАБОТАЮЩИЙ (Табельный номер, Ф, И, О, Дата рождения);

МАСТЕР (Табельный номер мастера, Оклад, Телефон);

РАБОЧИЙ (Табельный номер рабочего, Тарифная ставка, табельный номер мастера).

Полученные отношения находятся в 3НФ, в них отсутствует избыточность.

На практике полученная модель имеет ряд недостатков.

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

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

Для ускорения поиска можно в отношении РАБОТАЮЩИЙ предусмотреть поле Должность. Значение в этом поле точно определит, в каком отношении необходимо продолжить поиск. Предположим, в результате запроса к отношению РАБОТАЮЩИЙ установлено, что атрибут Должность у Иванова И.И. имеет значение "Мастер", тогда поиск необходимо провести в отношении МАСТЕР. Такой алгоритм нельзя реализовать средствами реляционной алгебры.

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

Вернуться в содержание