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

Оглавление:

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

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

Видео: Разница между внешним ключом и первичным ключом
Видео: Первичный и внешний ключ 2024, Ноябрь
Anonim

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

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

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

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

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

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

Рисунок 01: Сопоставление внешнего ключа

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

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

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

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

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

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

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

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

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

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

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

Рекомендуемые: