Отношение "многие-ко-многим"
Отношение "многие-ко-многим" имеет место, когда:
а) записи в родительской таблице может соответствовать больше одной записи в дочерней таблице;
б) записи в дочерней таблице может соответствовать больше одной записи в родительской таблице.
На рис. 1.9 показаны таблицы, состоящие в отношении "многие-к-одному". Каждой учебной группе соответствует несколько преподавателей. Каждый преподаватель может вести, во-первых, несколько разных предметов, и, во-вторых, преподавать в разных группах.
Таблица "Учебные группы и Таблица "Преподаватели" дисциплины"
Группа
Предмет
№ преподавателя
№ преподавателя
ФИО преподавателя
Кафедра
ПС-1
Программирование
10
->
10
Красноов Ю.Б.
ТИ-1
ТИ-1
Программирование
12
12
Володин В.Н.
ТИ-1
ПС-1
Теория систем
10
Рис 1.9 Связь "многие-ко-многим"
Многие СУБД не поддерживают связи "многие-ко-многим" на уровне индексов и ссылочной целостности (см. следующий подраздел), хотя и позволяют реализовывать ее в таблицах неявным образом. Аналогично, мнногие CASE-средства (программы для разработки структуры базы данных в виде диаграмм и генерации на их основе физической базы данных) также нe позволяют определять эту связь между таблицами проектируемой базы даннь1Х. Считается, что всякая связь "многие-ко-многим" может быть заменена на одну или более связь "один-ко-многим". Хотя это так, по мнению автора, целесообразность применения такой связи должна рассматриваться прежде всего в контексте разрабатываемой базы данных и приложения для работы с ней, и там, где это удобно, такая связь должна реализовываться.