- •Раздел 1. Общие вопросы организации баз данных
- •1.2 Недостатки традиционных файловых систем
- •1.4 Преимущества баз данных
- •1.7 Архитектура системы базы данных
- •1.8 Проектирование баз данных
- •1.9 Нормализация таблиц и ее необходимость
- •Нормальная форма Бойса—Кодда
- •Четвертая нормальная форма
- •Пятая нормальная форма
- •1.10 Краткая характеристика моделей бд
- •Контрольные вопросы
- •1.11 Классификация баз данных по технологии обработки
- •Контрольные вопросы
- •1.12 Особенности архитектуры клиент-сервер в распределенных средах
- •1.13 Введение в реляционные базы данных
- •1.14 Реляционные базы данных
- •Контрольные вопросы
- •1.15 Первичный и внешний ключи отношения
- •1.16 Реляционная система управления базами данных
- •Раздел into
- •1.17 Обоснование необходимости создания баз данных
- •1.18 Система безопасности
- •1.19 Виды привилегий
- •Раздел 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.Опишите поведение зависимой таблицы при условии каскадирования.