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