
- •Вопросы и ответы для экзамена по курсу «Базы данных»
- •Определения данных, информации, субд, бд
- •Реляционная модель данных. Базовые понятия и определения
- •Тип данных
- •Типы данных, домен
- •Кортежи, пустые значения
- •Ключи, назначение, виды
- •Внешние ключи, связанные отношения Связанные отношения
- •Условия целостности
- •Типы связей, примеры
- •Сущности, их свойства. Связи между сущностями.
- •Нормализация – основные понятия
- •Нормализация – первая нормальная форма, алгоритм приведения, пример
- •Нормализация – вторая нормальная форма, алгоритм приведения, пример
- •Нормализация – третья нормальная форма, алгоритм приведения, пример
- •Реляционная алгебра – основные определения
- •Операции реляционной алгебры.
- •Основные операторы языка sql.
Внешние ключи, связанные отношения Связанные отношения
В реляционной модели данные представляются в виде совокупности взаимосвязанных таблиц. Подобное взаимоотношение между таблицами называется связью (relationship).
Таким образом, еще одним важным понятием реляционной модели является связь между отношениями.
Для рассмотрения связанных отношений воспользуемся рассмотренным ранее примером — отношением СТУДЕНТЫ. Данное отношение может быть связано с отношением УСПЕВАЕМОСТЬ, в котором содержатся сведения об успеваемости студентов по разным предметам.
Фрагмент такого отношения может иметь вид, приведенный в табл. 02.2.
Таблица 02.2. Фрагмент отношения УСПЕВАЕМОСТЬ, связанного с отношением СТУДЕНТЫ
-
№ студенческого билета
Предмет
Оценка
23980282
23980282
22991380
22991380
22657879
24356783
Высшая математика 4
Философия 5
Высшая математика 3
Философия NULL
Общая физика 5
Общая физика NULL
Атрибут «№_студенческого_билета» таблицы УСПЕВАЕМОСТЬ содержит идентификатор студента (в данном примере в качестве такого идентификатора используется номер студенческого билета).
Если нужно узнать имя студента, соответствующее строкам в таблице УСПЕВАЕМОСТЬ, то следует поискать это же значение идентификатора студента в поле «№_студенческого_6илета» таблицы СТУДЕНТЫ и в найденной строке прочесть значение поля «Имя».
Таким образом, связь между таблицами СТУДЕНТЫ и УСПЕВАЕМОСТЬ устанавливается по атрибуту «№_студенческого_билета».
При рассмотрении связанных таблиц важное значение имеет понятие внешнего ключа.
Рассмотрим его более подробно.
Внешние ключи отношения
В базах данных одни и те же имена атрибутов часто используются в разных отношениях. В рассматриваемом примере атрибут «№_студенческого_билета» присутствует как в отношении СТУДЕНТЫ, так и в отношении УСПЕВАЕМОСТЬ. В этом примере атрибут «№_студенческого_билета» иллюстрирует понятие внешнего ключа (foreign key).
Внешний ключ — это атрибут (или множество атрибутов) одного отношения, являющийся ключом другого (или того же самого) отношения.
Внешние ключи используются для установления логических связей между отношениями. Связь между двумя таблицами устанавливается путем присваивания значений внешнего ключа одной таблицы значениям ключа другой.
Так же как и любые другие ключи, внешние ключи могут быть простыми либо составными.
Часто связь между отношениями устанавливается по первичному ключу, то есть значениям внешнего ключа одного отношения присваиваются значения первичного ключа другого отношения. Однако это не является обязательным — в общем случае связь может устанавливаться также и с помощью вторичных ключей. Кроме того, при установлении связей между таблицами необязательно требование уникальности ключа, по которому устанавливается связь.
Атрибуты внешнего ключа не обязательно должны иметь те же имена, что и атрибуты ключа, которым они соответствуют. Например, в нашем примере можно было дать атрибуту «№_студенческого_билета» таблицы УСПЕВАЕМОСТЬ другое имя, например «Студенческий_билет».
Внешний ключ может ссылаться и на ту же таблицу, к которой он принадлежит. В этом случае внешний ключ называется рекурсивным.