Внешний ключ

Автор: John Stephens
Дата создания: 24 Январь 2021
Дата обновления: 1 Июль 2024
Anonim
Начальный курс SQL.Первичный ключ и внешний ключ  Типы связей между таблицами
Видео: Начальный курс SQL.Первичный ключ и внешний ключ Типы связей между таблицами

Содержание

Определение - что означает внешний ключ?

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


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

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

Введение в Microsoft Azure и Microsoft Cloud | Из этого руководства вы узнаете, что такое облачные вычисления и как Microsoft Azure может помочь вам перенести и запустить свой бизнес из облака.

Техопедия объясняет иностранный ключ

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


Например, если есть две таблицы, customer и order, между ними можно создать связь, введя внешний ключ в таблицу order, которая ссылается на идентификатор клиента в таблице customer. Столбец идентификатора клиента существует в таблицах клиента и заказа. Идентификатор клиента в таблице заказов становится внешним ключом, ссылаясь на первичный ключ в таблице клиентов. Чтобы вставить запись в таблицу заказов, должно быть выполнено ограничение внешнего ключа. Попытка ввести идентификатор клиента, которого нет в таблице клиентов, не удалась, что позволило сохранить ссылочную целостность таблицы.

Некоторые ссылочные действия, связанные с действием внешнего ключа, включают следующее:

  • Каскад: при удалении строк в родительской таблице соответствующие столбцы внешнего ключа в дочерней таблице также удаляются, создавая каскадное удаление.
  • Set Null: при удалении или обновлении ссылочной строки в родительской таблице значения внешнего ключа в ссылочной строке устанавливаются в NULL для поддержания ссылочной целостности.
  • Триггеры: ссылочные действия обычно реализуются как триггеры. Во многих отношениях действия внешнего ключа похожи на определяемые пользователем триггеры. Для обеспечения надлежащего выполнения упорядоченные ссылочные действия иногда заменяются эквивалентными пользовательскими триггерами.
  • Установить по умолчанию: это ссылочное действие похоже на «установить ноль». Значения внешнего ключа в дочерней таблице устанавливаются равными значению столбца по умолчанию при удалении или обновлении ссылочной строки в родительской таблице.
  • Ограничение: это обычное ссылочное действие, связанное с внешним ключом. Значение в родительской таблице нельзя удалить или обновить, если на него ссылается внешний ключ в другой таблице.
  • Бездействие: Это ссылочное действие по функции похоже на действие «ограничить», за исключением того, что проверка бездействия выполняется только после попытки изменить таблицу.