Внешние ключи

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

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

Если таблица связана с несколькими другими таблицами, она может иметь несколько внешних ключей. На рис. 1.2 приведена таблица Request с тремя внешними ключами, ссылающимися на таблицы Abonent, Executor и Disrepair.

Рис. 1.2.Множественные отношения родитель-потомок в реляционной БД

Столбец AccountCD является внешним ключом для таблицы Request, ссылающимся на первичный ключ таблицы Abonent, и связывает каждую ремонтную заявку с абонентом, подавшим ее. Столбец ExecutorCD является внешним ключом для таблицы Request, ссылающимся на первичный ключ таблицы Executor, и связывает каждую заявку с назначенным на ее выполнение исполнителем. Столбец FailureCD является внешним ключом для таблицы Request, ссылающимся на первичный ключ таблицы Disrepair, и связывает каждую заявку с типом неисправности газового оборудования.

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