Если связь бинарная и степень ее 1:n или n:1, а класс принадлежности n–связной сущности является обязательным, то достаточно (в независимости от класса принадлежности односвязной сущности) выделить два отношения, в одно из которых включаем все атрибуты, характеризующие одну сущность, во второе хранящие другую сущность. Ключами отношения является ключи соответствующих сущностей и к отношению, содержащему в себе атрибуты n–связной сущности добавляем, как атрибут, ключ односвязной сущности.
Рассмотрим ситуацию, когда класс принадлежности n-связной сущности является необязательным:
В данной таблице происходит дублирование информации, кортежи с пустыми полями, следовательно, одним отношением не обойтись, значит, разбиваем на два отношения:
Преподаватель Курс
В наших таблицах есть пустые поля, поступаем следующим образом:
Преподаватель
Курс
Информация о связи:
Рассмотрим класс принадлежности – Преподаватель обязательный:
Отличие этого случая от предыдущего в том, что в случае одного отношения не будет пустых полей, но сохранится избыточное дублирование не ключевых атрибутов сущности преподаватель.
В случае двух отношений:
В отношении Преподаватель в поле НК не будет пустых полей, но если Преподаватель читает более одного курса, информация о всех читаемых курсах, за исключением одного, будет утеряна.
Как и в предыдущем случае, в отношении курс в поле НП для начитанных курсов будет пустое поле.
Размещение информации в трех отношениях допустимо.
Для бинарной связи степени 1:n, n:1 с необязательным классом принадлежности n-связной сущности, то (независимо от класса принадлежности односвязной сущности) необходимо формирование трех отношений. Первое включает все атрибуты,
характеризующую первую сущность, ключ – ключ сущности. Второе включает все атрибуты, третьей сущности, ключ – ключ сущности. Третье отношение включает информацию о связи - помещенные атрибуты – ключи связи сущностей (возможны другие атрибуты); ключ отношения - ключ n–связной сущности.
7.3. Бинарные связи степени m:n.
Каждый преподаватель может читать несколько курсов, каждый курс может быть читаем несколькими преподавателями:
Составим универсальное отношение:
R
Отношение имеет пустые поля и избыточное дублирование. Попытаемся разделить информацию на два отношения:
Таким образом, хранить информацию в двух отношениях невозможно. Попробуем составить три отношения.
Преподаватель Читает Курс
НП
ФАМ
ТЕЛ
НП
НК
НК
V
П1
Иванов
32 22 32
П1
К1
К1
П2
Минин
43 56 55
П3
К3
К2
П3
Федоров
45 67 55
П3
К4
К3
П4
Петров
32 12 11
П3
К3
К4
П5
Орлов
78 00 45
П4
К2
К5
П5
К5
П5
К2
В данных таблицах ключами являются : Преподаватель –ключ НП, Курс- ключ НК, Читает- ключ НП и НК.
Преподаватель (НП, ФАМ, ТЕЛ)
Курс (НК, V)
Читает (НП, НК)
При использовании одного отношения будут отсутствовать пустые места в столбцах
В случаях:
А) НК, V
Б) НП,ФАМ,ТЕЛ
В) во всех столбцах.
А)
Б)
В)
Но дублирование информации останется как в столбцах НП, ФАМ, ТЕЛ так и в столбцах НК, V, т.е. двух отношений будет недостаточно, следовательно необходимо три отношения.