Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Вопросы и ответы для экзамена по курсу.docx
Скачиваний:
84
Добавлен:
11.09.2019
Размер:
86.84 Кб
Скачать
  1. Внешние ключи, связанные отношения Связанные отношения

В реляционной модели данные представляются в виде совокупности взаимосвя­занных таблиц. Подобное взаимоотношение между таблицами называется связью (relationship).

Таким образом, еще одним важным понятием реляционной модели является связь между отношениями.

Для рассмотрения связанных отношений воспользуемся рассмотренным ранее примером — отношением СТУДЕНТЫ. Данное отношение может быть связано с отношением УСПЕВАЕМОСТЬ, в котором содержатся сведения об успеваемос­ти студентов по разным предметам.

Фрагмент такого отношения может иметь вид, приведенный в табл. 02.2.

Таблица 02.2. Фрагмент отношения УСПЕВАЕМОСТЬ, связанного с отношением СТУДЕНТЫ

№ студенческого билета

Предмет

Оценка

23980282

23980282

22991380

22991380

22657879

24356783

Высшая математика 4

Философия 5

Высшая математика 3

Философия NULL

Общая физика 5

Общая физика NULL

Атрибут «№_студенческого_билета» таблицы УСПЕВАЕМОСТЬ содержит иден­тификатор студента (в данном примере в качестве такого идентификатора ис­пользуется номер студенческого билета).

Если нужно узнать имя студента, соот­ветствующее строкам в таблице УСПЕВАЕМОСТЬ, то следует поискать это же значение идентификатора студента в поле «№_студенческого_6илета» таблицы СТУДЕНТЫ и в найденной строке прочесть значение поля «Имя».

Таким обра­зом, связь между таблицами СТУДЕНТЫ и УСПЕВАЕМОСТЬ устанавливается по атрибуту «№_студенческого_билета».

При рассмотрении связанных таблиц важное значение имеет понятие внешнего ключа.

Рассмотрим его более подробно.

Внешние ключи отношения

В базах данных одни и те же имена атрибутов часто используются в разных отно­шениях. В рассматриваемом примере атрибут «№_студенческого_билета» при­сутствует как в отношении СТУДЕНТЫ, так и в отношении УСПЕВАЕМОСТЬ. В этом примере атрибут «№_студенческого_билета» иллюстрирует понятие внеш­него ключа (foreign key).

Внешний ключ это атрибут (или множество атрибутов) одного отношения, явля­ющийся ключом другого (или того же самого) отношения.

Внешние ключи используются для установления логических связей между отно­шениями. Связь между двумя таблицами устанавливается путем присваивания значений внешнего ключа одной таблицы значениям ключа другой.

Так же как и любые другие ключи, внешние ключи могут быть простыми либо составными.

Часто связь между отношениями устанавливается по первичному ключу, то есть значениям внешнего ключа одного отношения присваиваются значения первич­ного ключа другого отношения. Однако это не является обязательным — в общем случае связь может устанавливаться также и с помощью вторичных ключей. Кро­ме того, при установлении связей между таблицами необязательно требование уникальности ключа, по которому устанавливается связь.

Атрибуты внешнего ключа не обязательно должны иметь те же имена, что и атрибуты ключа, которым они соответствуют. Например, в нашем примере можно было дать атрибуту «№_студенческого_билета» таблицы УСПЕВАЕМОСТЬ другое имя, например «Студенческий_билет».

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