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