Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
IV.docx
Скачиваний:
52
Добавлен:
11.04.2015
Размер:
107.1 Кб
Скачать

Контрольные вопросы

  1. Какие типы отношений между таблицами вы знаете?

  2. Может ли значение реляционной модели быть разложено на составляющие?

1.15 Первичный и внешний ключи отношения

Для связывания таблиц используются первичный и внешний ключи. Первичный ключ позволяет однозначно идентифицировать строку в таблице. В качестве первичного ключа можно использовать одну или более существующих колонок или создать новую. Однако первичный ключ на самом деле является частным случаем более общего понятия – потенциального ключа.

Пусть R – некоторое отношение. Тогда потенциальный ключ К для R – это подмножество множества атрибутов R, обладающее следующими свойствами:

-свойством уникальности. Нет двух различных кортежей (записей) в отношении R с одинаковым значением К;

-свойством неизбыточности. Никакое из подмножеств К не обладает свойством уникальности.

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

Первичный ключ – этот уникальный идентификатор для таблицы, то есть столбец или такая комбинация столбцов, что в любой момент времени не существует двух строк, содержащих одинаковое значение в этом столбце или комбинации столбцов.

Дадим определение внешнего ключа.

Пусть R2 – базовое отношение. Тогда внешний ключ, скажем FK в отношении R2 – это подмножество множества атрибутов R2, такое что:

-существует базовое отношениеR1 с потенциальным ключом CK;

-каждое значение FK в текущем значении R2, всегда совпадает со значением СК некоторого кортежа в текущем значении R1.

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

При изменении значения первичного ключа в главной таблице возможны следующие варианты поведения зависимой таблицы:

-каскадирование (Cascading). При удалении данных первичного ключа в главной таблице происходит удаление соответствующих данных внешнего ключа в зависимой таблице. Каскадировать операцию обновления, обновляя также внешний ключ в зависимой таблице;

-ограничение (Restrict). При удалении строки из главной таблицы возможны следующие варианты поведения зависимой таблицы: Допускается удаление только тех строк главной таблицы, для которых нет связанных строк в зависимой таблице. При попытке изменить значение первичного ключа, с которым связаны строки в зависимой таблице, изменения отвергаются;

-установление (Relation). При удалении строки из главной таблицы соответствующий внешний ключ в зависимой таблице устанавливается в неопределенное значение (NULL). При изменении данных первичного ключа внешний ключ устанавливается в неопределенное значение (NULL).

Контрольные вопросы

1.Дайте понятие первичного и внешнего ключей.

2.Сколько ключей может иметь отношение?

3.Может ли данное реляционной модели быть разложено на составляющие?

4.Опишите поведение зависимой таблицы при условии каскадирования.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]