Різниця між зовнішнім та первинним ключем

The ключова різниця між зовнішнім ключем і первинним ключем є те, що іноземний ключ - це стовпець або набір стовпців, які посилаються на первинний ключ або кандидатський ключ іншої таблиці, тоді як первинний ключ - це стовпець або набір стовпців, які можна використовувати для однозначної ідентифікації рядка в таблиці.

Стовпець або набір стовпців, які можна використовувати для ідентифікації або доступу до рядка або набору рядків у базі даних, називають ключем. Первинний ключ у реляційній базі даних - це поєднання стовпців таблиці, які однозначно ідентифікують рядок таблиці. Іноземний ключ у реляційній базі даних - це поле в таблиці, яке відповідає первинному ключу іншої таблиці. Зовнішній ключ використовується для перехресних таблиць.

ЗМІСТ

1. Огляд та ключові відмінності
2. Що таке зовнішній ключ
3. Що таке Первинний ключ
4. Порівняльне порівняння - зовнішній ключ та первинний ключ у табличній формі
5. Підсумок

Що таке зовнішній ключ?

Зовнішній ключ - це референтне обмеження між двома таблицями. Він ідентифікує стовпчик або набір стовпців в одній таблиці, називається референтною таблицею, яка посилається на набір стовпців в іншій таблиці, називається посилальною таблицею. Іноземний ключ або стовпці таблиці посилань повинні бути первинним ключем або кандидатом (ключем, який може бути використаний як первинний ключ) у посилальній таблиці. Крім того, зовнішні ключі дозволяють зв'язувати дані через кілька таблиць. Тому зовнішній ключ не може містити значення, які не відображаються в таблиці, на яку він посилається. Тоді посилання, надане зовнішнім ключем, допомагає зв’язати інформацію в декількох таблицях, і це стане необхідним для нормалізованих баз даних. Кілька рядків у таблиці посилань можуть посилатися на один рядок у посилається таблиці.

Малюнок 01: Картографування іноземних ключів

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

Що таке Первинний ключ?

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

Малюнок 02: Первинний ключ

Крім того, обмеження PRIMARY KEY у ANSI SQL Standard визначає первинні ключі. Можна також визначити первинний ключ під час створення таблиці. На додаток до цього, SQL дозволяє первинний ключ складатися з одного або декількох стовпців, а кожен стовпець, що входить до первинного ключа, неявно визначається як НЕ NULL. Але деякі системи управління базами даних вимагають чітко робити стовпці первинного ключа НЕ НУЛЬНІ.

Яка різниця між зовнішнім та первинним ключем?

 Іноземний ключ - Первинний ключ

Зовнішній ключ - це стовпець або група стовпців у таблиці реляційних баз даних, яка забезпечує зв'язок між даними у двох таблицях. Первинний ключ - це спеціальний стовпчик таблиці реляційних баз даних або комбінація декількох стовпців, що дозволяє однозначно ідентифікувати всі записи таблиці.
НУЛЬ
Зовнішній ключ приймає значення NULL. Значення первинного ключа не може бути NULL.
Кількість ключів
У таблиці може бути кілька іноземних ключів. У таблиці може бути лише один первинний ключ.
  Дублювання
Кортежі можуть мати подвійне значення для атрибута іноземного ключа. Два кортежі у відношенні не можуть мати повторювані значення для атрибута первинного ключа.

Підсумок - Зовнішній ключ проти первинного ключа

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

Довідка:

1. "Зовнішній ключ". Вікіпедія, Фонд Вікімедіа, 12 травня 2018 р. Доступний тут  
2. "Первинний ключ". Wikipedia, Фонд Вікімедіа, 3 квітня 2018. Доступний тут 

Надано зображення:

1. 'Mapping-Mapping-Mapping' від MovGP0 - Власна робота, (CC BY-SA 3.0) через Wikimedia Commons  
2.'Erd-id-as-basic-key 'від UniCollab - Власна робота, (CC BY-SA 3.0) через Wikimedia Commons