Здесь также возникают пустые поля, если атрибут НК добавить к R4 возникнет пустое поле там, где преподаватель ни чего не читает. Если добавить атрибут НП к R5, возникнут пустые поля там, где присутствуют не читаемые курсы.
Использование трех отношений.
Преподаватель Курс Читает
НП
Фам.
Тел.
П1
Иванов
33-22-11
П2
Минин
56-98-76
П3
Орлов
53-87-98
П4
Петров
52-78-00
НК
V
К1
К2
К3
К4
НП
НК
П1
К3
П3
К4
П4
К1
Отношения ПРЕПОДАВАТЕЛЬ и КУРС находятся в НФБК. Отношение ЧИТАЕТ содержит неповторяющиеся значения атрибутов НП и НК, а также не содержит пустых полей.
Если связь бинарная, ее степень 1:1 и класс принадлежности обеих сущностей является необязательным, то необходимо использовать для хранения информации три отношения. В одно отношение включаются все атрибуты, характеризующую одну из сущностей. Ключ ее будет являться ключом данного отношения. В другое отношении включаются атрибуты, характеризующую другую сущность. Ее ключ будет ключом второго отношения. Третье отношение характеризует связь. Среди своих атрибутов содержит ключи двух связываемых сущностей (возможны еще некоторые атрибуты). Ключом может быть любой из этих двух атрибутов.
Отношение ЧИТАЕТ содержит информацию о том, кто какой курс читает (или кем читаются курсы). Это отношение может содержать дополнительные атрибуты (например, фамилию ассистента, лаборанта, номер аудитории, и т.д.).
Пример: Проектируется БД предназначенная для хранения информации о рыболовах-проводниках, которые работают на некоторых озерах. За одно озеро разрешено закрепить не более одного проводника. Каждый проводник обслуживает только одно озеро. В БД могут быть озера, за которым не закреплены проводники, но не может быть проводников ни за кем не закрепленных. Интерес для БД будет представлять:
Фамилия проводника - ФАМ.
Номер его телефона - Тном.
Еженедельная оплата - Плата.
Максимальный размер группы, которую он может привести на озеро - Гр.
Название озера - Наз.
Основной вид рыбы, которая водится в озере - Рыба.
Оценка озера рыболовом - Оц.
В данной БД сущностями будет: проводник и озеро, связи между ними: обслуживает.
Связь бинарная, класс принадлежности одной сущности обязательный другой нет, степень связи 1:1. Используем правило (2) и информацию распределяем по 2 отношениям:
Проводник (Фам, Тном, Плата, Гр, Н_Озера)
Озеро (Н_Озера, Оц, Рыба)
Бинарные связи со степенью связи 1: n
Преподаватель читает несколько курсов. Каждый курс читается одним преподавателем:
Отношение R6 не состоятельно. В R6 присутствуют избыточное дублирование информации, пустые поля, следовательно одной таблицы недостаточно.
R6
НП
Фам
НК
…
Тел
П1
Иванов
К1
…
П1
Иванов
К3
…
П1
Иванов
К4
…
П2
Зайцев
─
─
…
…
…
…
…
Рассмотрим ситуацию, когда принадлежность обоих сущностей является обязательной:
R7
НП
Фам
НК
…
Тел
П1
Иванов
К1
…
П1
Иванов
К3
…
П1
Иванов
К4
…
П2
Зайцев
К8
─
…
…
…
…
…
В данной таблице отсутствуют пустые поля, но проблема с дублированием избыточной информации осталась, следовательно, отношение R6 или R7 содержат в себе аномалии и нуждаются в разбиении.