n-арные отношения (отношения степени п)
В теории баз данных рассматриваются n-арные отношения, т.е. отношения, заданные на декартовом произведении более чем двух множеств.
Например, в некотором университете на факультете учатся студенты Иванов, Петров и Сидоров. Лекции им читают преподаватели Пушников, Цыганов и Шарипов, причем известны следующие факты:
- 1. Пушников читает лекции по алгебре и базам данных, соответственно, 40 и 80 часов в семестр.
- 2. Цыганов читает лекции по геометрии, 50 часов в семестр.
- 3. Шарипов читает лекции по алгебре и геометрии, соответственно, 40 и 50 часов в семестр.
- 4. Студент Иванов посещает лекции по алгебре у Шарипова и по базам данных у Пушникова.
- 5. Студент Петров посещает лекции по алгебре у Пушникова и по геометрии у Цыганова.
- 6. Студент Сидоров посещает лекции по геометрии у Цыганова и по базам данных у Пушникова.
Для того чтобы формально описать данную ситуацию (например, в целях разработки информационной системы, учитывающей данные о ходе учебного процесса), введем три множества:
- • Множество преподавателей А= {Пушников, Цыганов, Шарипов}.
- • Множество предметов В = {Алгебра, Геометрия, Базы данных}.
- • Множество студентов С= {Иванов, Петров, Сидоров}.
Имеющиеся факты можно разделить на две группы. 1 группа (факты 1—3) - факты о преподавателях, 2 группа (факты 4-6) - факты о студентах.
Для того чтобы отразить факты 1-3 (характеризующие преподавателей и читаемые ими лекции), введем отношение Ri на декартовом произведении А X В X Q , где Q - множество рациональных чисел. А именно, упорядоченная тройка (х, у, п) Є Rr тогда и только тогда, когда преподаватель х читает лекции по предмету у в количестве п часов в семестр. Назовем такое отношение «Читает лекции по...». Множество кортежей, образующих отношение Ri удобно представить в виде таблицы:
Таблица 2.3
Отношение «Читает лекции по...»
А (Преподаватель) |
В (Предмет) |
Q (Количество часов) |
Пушников |
Алгебра |
40 |
Пушников |
Базы данных |
80 |
Цыганов |
Г еометрия |
50 |
Шарипов |
Алгебра |
40 |
Шарипов |
Г еометрия |
50 |
Для того чтобы отразить факты 4 6 (характеризующие посещение студентами лекций), введем отношение R2 на декартовом произведении С X В X А . Упорядоченная тройка (z,y,x) Є R2 тогда и только тогда, когда студент z посещает лекции по предмету у у преподавателя х. Назовем это отношение «Посещать лекции». Его также представим в виде таблицы:
Таблица 2.4
Отношение «Посещать лекции»
С (студент) |
В (предмет) |
А (Преподаватель) |
Иванов |
Алгебра |
Шарипов |
Иванов |
Базы данных |
Пушников |
Петров |
Алгебра |
Пушников |
Петров |
Г еометрия |
Цыганов |
Сидоров |
Г еометрия |
Цыганов |
Сидоров |
Базы данных |
Пушников |
Рассмотрим отношение R; подробнее. Оно задано на декартовом произведении ?1— С х В х А. Это произведение, содержащее 3*3*3=27 кортежей, можно назвать «Студенты-Лекции-Преподаватели». Множество Q представляет собой совокупность всех возможных вариантов посещения студентами лекций. Отношение же R? показывает текущее состояние учебного процесса. Очевидно, что отношение Rj является изменяемым во времени отношением.
Итак, факты о ходе учебного процесса удалось отразить в виде двух отношений третьей степени (3-арных), а сами отношения изобразить в виде таблиц с тремя столбцами.
Удобство использования табличной формы для задания отношения определяется в данном случае следующими факторами:
- 1. Все используемые множества конечны.
- 2. При добавлении или удалении студентов, предметов, преподавателей просто добавляются или удаляются соответствующие строки в таблице.
Нас сейчас не интересует вопрос, хороши ли полученные отношения. Заметим пока только, что, как показывают следующие замечания, не любую строку можно добавить в таблицу «Посещать лекции».
Замечание. В таблицу «Посещать лекции» нельзя добавить две одинаковые строки, т.к. таблица изображает отношение R2, а в отношении (как и в любом множестве) не может быть двух одинаковых элементов. Это пример синтаксического ограничения -такое ограничение задано в определении понятия отношение (одинаковых строк не может быть ни в одной таблице, задающей отношение)._________________________________________
Замечание. В таблицу «Посещать лекции» нельзя добавить кортеж (Иванов, Геометрия, Пушников). Действительно, из таблицы «Читает лекции по...», представляющей отношение Ri, следует, что Пушников не читает предмет «Геометрия». Оказалось, что таблицы связаны друг с другом, и существенным образом! Это пример семантического ограничения - такое ограничение является следствием нашей трактовки данных, хранящихся в отношении (следствием понимания смысла данных).
Транзитивное замыкание отношений
Введем понятие транзитивного замыкания, связанное с бинарными отношениями, которое понадобится в дальнейшем.
Определение. Пусть отношение R задано на А2 некоторого множества Л. Транзитивным замыканием отношения R называется новое отношение R , состоящее из кортежей (х,у) , для которых выполняется:
• либо кортеж (х,у) Є R,
• либо найдется конечная последовательность элементов (zt,z2, ???<zn) є А , такая, что все кортежи (х, zt), (zt,z2),(zn,y) принадлежат отношению R.
Очевидно, что R Є R.
Например, пусть множество А представляет собой следующее множество деталей и конструкций:
причем некоторые из деталей и конструкций могут использоваться при сборке других конструкций. Взаимосвязь деталей описывается отношением Л («непосредственно используется в») и состоит из следующих кортежей:
Таблица 2.5
Отношение R
Конструкция |
Где используется |
Болт |
Двигатель |
Болт |
Колесо |
Гайка |
Двигатель |
Гайка |
Колесо |
Двигатель |
Автомобиль |
Колесо |
Автомобиль |
Ось |
Колесо |
Транзитивное замыкание R состоит из кортежей:
Таблица 2.6
Транзитивное замыкание отношения R1
Конструкция |
Где используется |
Болт |
Двигатель |
Болт |
Колесо |
Гайка |
Двигатель |
Гайка |
Колесо |
Двигатель |
Автомобиль |
Колесо |
Автомобиль |
Ось |
Колесо |
Болт |
Автомобиль |
Гайка |
Автомобиль |
Ось |
Автомобиль |
Очевидный смысл замыкания R состоит в описании включения деталей друг в друга не только непосредственно, а через использование их в промежуточных деталях, например, болт используется в автомобиле, т.к. он используется в двигателе, а двигатель используется в автомобиле.