Разница между внешним ключом и первичным ключом

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

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

СОДЕРЖАНИЕ

1. Обзор и основные отличия
2. Что такое внешний ключ
3. Что такое первичный ключ
4. Сравнение сторон - внешний ключ и первичный ключ в табличной форме
5. Резюме

Что такое внешний ключ?

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

Рисунок 01: Отображение внешнего ключа

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

Что такое первичный ключ?

Первичный ключ - это столбец или комбинация столбцов, которые однозначно определяют строку в таблице реляционной базы данных. Таблица может иметь не более одного первичного ключа. Первичный ключ обеспечивает неявное ограничение NOT NULL. Поэтому столбец с первичным ключом не может иметь значения NULL. Первичный ключ может быть обычным атрибутом в таблице, который гарантированно уникален, например, номер социального страхования, или это может быть уникальное значение, сгенерированное системой управления базами данных, такой как глобальный уникальный идентификатор (GUID) в Microsoft SQL Server..

Рисунок 02: Первичный ключ

Кроме того, ограничение PRIMARY KEY в стандарте ANSI SQL определяет первичные ключи. Также возможно определить первичный ключ при создании таблицы. Кроме того, SQL позволяет составлять первичный ключ из одного или нескольких столбцов, и каждый столбец, включенный в первичный ключ, неявно определяется как NOT NULL. Но некоторые системы управления базами данных требуют явного указания столбцов первичного ключа NOT NULL.

В чем разница между внешним ключом и первичным ключом?

 Внешний ключ против Первичного ключа

Внешний ключ - это столбец или группа столбцов в таблице реляционной базы данных, которая обеспечивает связь между данными в двух таблицах.. Первичный ключ - это специальный столбец таблицы реляционной базы данных или комбинация нескольких столбцов, позволяющая однозначно идентифицировать все записи таблицы..
ЗНАЧЕНИЕ NULL
Внешний ключ принимает значение NULL. Значение первичного ключа не может быть NULL.
Количество ключей
Таблица может иметь несколько внешних ключей. Таблица может иметь только один первичный ключ.
  дупликация
Кортежи могут иметь повторяющееся значение для атрибута внешнего ключа. Два кортежа в отношении не могут иметь повторяющиеся значения для атрибута первичного ключа.

Сводка - Внешний ключ против Первичного ключа

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

Ссылка:

1. «Внешний ключ». Википедия, Фонд Викимедиа, 12 мая 2018 г. Доступно здесь  
2. «Первичный ключ». Википедия, Фонд Викимедиа, 3 апреля 2018. Доступно здесь 

Изображение предоставлено:

1. 'Foreign-Key-Mapping' от MovGP0 - собственная работа (CC BY-SA 3.0) через Commons Wikimedia  
2. 'Erd-id-as-primary-key' от UniCollab - собственная работа (CC BY-SA 3.0) через Commons Wikimedia