Ключі СУБД: типи-кандидати, первинні, супер- та зовнішні

⚡ Розумний підсумок

Ключі в СУБД – це атрибути, які однозначно ідентифікують рядок у таблиці та встановлюють зв'язки між таблицями. Вісім типів ключів, від надрядкових та первинних до зовнішніх та сурогатних, забезпечують ідентичність та цілісність у всій реляційній базі даних.

  • 🗝️ Основна мета: Ключ визначає унікальний рядок і пов'язує пов'язані таблиці, щоб дані залишалися узгодженими.
  • 🔝 Суперключ: Будь-який набір атрибутів, що ідентифікує рядки, можливо, з додатковими атрибутами понад мінімум.
  • Первинний ключ: Вибраний ключ-кандидат, ніколи не має значення null і ніколи не дублюється, по одному на таблицю.
  • 🎯 Ключ кандидата: Мінімальний суперключ без надлишкових атрибутів; первинний ключ вибирається з них.
  • 🔁 Альтернативний ключ: Будь-який ключ-кандидат, не вибраний як первинний ключ.
  • 🔗 Зовнішній ключ: Стовпець, що посилається на первинний ключ іншої таблиці для забезпечення цілісності посилань.
  • 🧩 Композитний та сурогатний: Складені ключі об'єднують стовпці для унікальності; сурогатний ключ — це згенерований замінник.

Ключі СУБД, що підпадають під рольові ідентифікатори, є суперпервинними

Що таке ключі в СУБД?

Ключі в СУБД — це атрибут або набір атрибутів, які допомагають ідентифікувати рядок (кортеж) у відношенні (таблиці). Вони дозволяють знайти зв'язок між двома таблицями. Ключі допомагають однозначно ідентифікувати рядок у таблиці за комбінацією одного або кількох стовпців, а також корисні для пошуку унікального запису в таблиці.

приклад:

Ідентифікатор працівника Ім'я Прізвище
11 Ендрю Джонсон
22 Том Дерево
33 Alex Міцний

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

Навіщо нам потрібен ключ?

Ось кілька причин використання ключа в СУБД:

  • Ключі допомагають ідентифікувати будь-який рядок даних у таблиці. У реальному застосунку таблиця може містити тисячі записів, і ці записи можуть бути дубльованими. Ключі гарантують, що ви можете однозначно ідентифікувати запис таблиці, незважаючи на ці труднощі.
  • Вони дозволяють встановлювати та ідентифікувати зв'язки між таблицями.
  • Вони допомагають вам зміцнити ідентичність та цілісність у стосунках.

Типи ключів у СУБД

У СУБД існує вісім різних типів ключів, і кожен ключ має свою власну функціональність:

  1. Супер ключ
  2. Первинний ключ
  3. Ключ від кандидата
  4. Альтернативний ключ
  5. Зовнішній ключ
  6. Складний ключ
  7. Композитний ключ
  8. Сурогатний ключ

У таблиці нижче наведено короткий огляд усіх восьми пунктів, перш ніж кожен з них буде детально пояснено.

ключ В один рядок Унікальний?
Супер ключ Будь-який набір атрибутів, що ідентифікує рядок, дозволені додаткові атрибути Так
Ключ від кандидата Мінімальний суперключ, без надлишкових атрибутів Так
Первинний ключ Вибраний ключ-кандидат, не null Так
Альтернативний ключ Ключ-кандидат не вибрано як первинний Так
Зовнішній ключ Посилається на первинний ключ в іншій таблиці Немає
Складний ключ Два або більше атрибутів, кожен з яких може бути неунікальним Комбіновані
Композитний ключ Два або більше стовпців, об'єднаних для унікальності Комбіновані
Сурогатний ключ Згенерований штучний ідентифікатор Так

Що таке Суперключ?

Суперключ — це група з одного або кількох ключів, що ідентифікує рядки в таблиці. Суперключ може мати додаткові атрибути, які не потрібні для унікальної ідентифікації.

приклад:

EmpSSN EmpNum Empname
9812345098 AB05 Показано
9876512345 AB06 Рослин
199937890 AB07 James

У наведеному вище прикладі EmpSSN та EmpNum – це суперключі.

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

PRIMARY KEY in СУБД — це стовпець або група стовпців у таблиці, яка однозначно ідентифікує кожен рядок у цій таблиці. Первинний ключ не може бути дублікатом, тобто одне й те саме значення не може з'являтися в таблиці більше одного разу. Таблиця не може мати більше одного первинного ключа.

Правила визначення первинного ключа

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

приклад: У наступному прикладі StudID є первинним ключем.

StudID Номер рулону Ім'я Прізвище Електронна пошта
1 11 Том Тарифи abc@gmail.com
2 12 Nick Райт xyz@gmail.com
3 13 дана Натана mno@yahoo.com

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

АЛЬТЕРНАТИВНИЙ КЛЮЧ — це стовпець або група стовпців у таблиці, яка однозначно ідентифікує кожен рядок. Таблиця може мати кілька варіантів первинного ключа, але лише один може бути встановлений як первинний ключ. Усі ключі, які не є первинним ключем, називаються альтернативними ключами.

приклад: У цій таблиці StudID, Roll No та Email кваліфіковані як первинний ключ. Але оскільки StudID є первинним ключем, Roll No та Email стають альтернативними ключами.

StudID Номер рулону Ім'я Прізвище Електронна пошта
1 11 Том Тарифи abc@gmail.com
2 12 Nick Райт xyz@gmail.com
3 13 дана Натана mno@yahoo.com

Що таке ключ-кандидат?

КЛЮЧ КАНДИДАТ — це набір атрибутів, які однозначно ідентифікують кортежі в таблиці. Ключ-кандидат — це суперключ без повторюваних атрибутів. Первинний ключ слід вибирати з ключів-кандидатів. Кожна таблиця повинна мати принаймні один ключ-кандидат, а таблиця може мати кілька ключів-кандидатів, але лише один первинний ключ.

Властивості кандидатського ключа:

  • Він повинен містити унікальні значення.
  • Ключ-кандидат може мати кілька атрибутів.
  • Він не повинен містити нульових значень.
  • Він повинен містити мінімальну кількість полів, необхідних для забезпечення унікальності.
  • Він однозначно ідентифікує кожен запис у таблиці.

Приклад: У таблиці нижче StudID, Roll No та Email – це кандидати на ключі, які допомагають нам однозначно ідентифікувати запис студента. Їх зв’язок із суперключами та первинними ключами є поширеним способом розуміння. функціональна залежність.

StudID Номер рулону Ім'я Прізвище Електронна пошта
1 11 Том Тарифи abc@gmail.com
2 12 Nick Райт xyz@gmail.com
3 13 дана Натана mno@yahoo.com
Ключ кандидата в СУБД
Ключ кандидата в СУБД

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

FOREIGN KEY – це стовпець, який створює зв'язок між двома таблицями. Призначення зовнішнього ключа полягає в підтримці цілісності даних і забезпеченні навігації між двома різними екземплярами сутності. Він діє як перехресне посилання між двома таблицями, оскільки посилається на первинний ключ іншої таблиці.

приклад:

КафедраCode DeptName
001 наука
002 Англійська
005 комп'ютер
ID вчителя Fname Lname
B002 Девід Сигналізатор
B017 Сара Джозеф
B009 Майк Брантон

У цьому прикладі у школі є дві таблиці: «Вчитель» та «Відділ». У їхньому поточному вигляді неможливо побачити, який вчитель у якому відділі працює.

Додавши зовнішній ключ DeptCode до таблиці "Вчитель" ми можемо створити зв'язок між двома таблицями.

ID вчителя КафедраCode Fname Lname
B002 002 Девід Сигналізатор
B017 002 Сара Джозеф
B009 001 Майк Брантон

Ця концепція також відома як посилальна цілісність.

Що таке складний ключ?

СКЛАДЕНИЙ КЛЮЧ має два або більше атрибутів, які дозволяють однозначно розпізнати певний запис. Можливо, кожен стовпець не є унікальним сам по собі в базі даних. Однак, якщо їх об'єднати, стовпці стають унікальними. Мета складеного ключа — однозначно ідентифікувати кожен запис у таблиці.

приклад:

Номер замовлення Ідентифікатор продукту Назва Продукту Кількість
B005 JAP102459 миша 5
B005 DKT321573 USB 10
B005 OMG446789 РК-монітор 20
B004 DKT321573 USB 15
B002 OMG446789 Лазерний принтер 3

У цьому прикладі OrderNo та ProductID не можуть бути первинними ключами, оскільки жоден з них однозначно не ідентифікує запис. Однак складений ключ OrderNo та ProductID однозначно ідентифікує кожен запис.

Що таке композитний ключ?

КОМПОЗИТНИЙ КЛЮЧ — це комбінація двох або більше стовпців, які однозначно ідентифікують рядки в таблиці. Комбінація стовпців гарантує унікальність, хоча унікальність кожного окремо не гарантується. Отже, вони об'єднуються для однозначної ідентифікації записів у таблиці.

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

Що таке сурогатний ключ?

СУРОГАТНИЙ КЛЮЧ — це штучний ключ, метою якого є унікальна ідентифікація кожного запису. Цей тип ключа є унікальним, оскільки він створюється, коли у вас немає жодного природного первинного ключа. Сурогатні ключі не надають значення даним у таблиці та зазвичай є цілим числом, згенерованим безпосередньо перед вставкою запису.

Fname Прізвище Час початку Час закінчення
Anne коваль 09:00 18:00
Джек Френсіс 08:00 17:00
Анна Маклін 11:00 20:00
Показано Віллам 14:00 23:00

У наведеному вище прикладі показано графік змін різних співробітників. Тут потрібен сурогатний ключ для унікальної ідентифікації кожного співробітника. Сурогатні ключі в SQL використовуються, коли:

  • Жодна властивість не має параметра первинного ключа.
  • Первинний ключ занадто великий або складний.

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

Нижче наведено основну відмінність між первинним ключем та зовнішнім ключем:

Первинний ключ Зовнішній ключ
Допомагає однозначно ідентифікувати запис у таблиці. Це поле в таблиці, яке є первинним ключем іншої таблиці.
Первинний ключ ніколи не приймає нульових значень. Зовнішній ключ може приймати кілька нульових значень.
Первинний ключ – це кластерний індекс, а дані в таблиці фізично організовані в послідовності кластерного індексу. Зовнішній ключ не може автоматично створювати індекс, кластерний чи некластерний. Ви можете створити його вручну.
У таблиці може бути один первинний ключ. Ви можете мати кілька зовнішніх ключів у таблиці.

Поширені запитання

Кожен ключ-кандидат може однозначно ідентифікувати рядок. Первинний ключ – це один ключ-кандидат, який вибирає розробник; решта ключів-кандидатів стають альтернативними ключами.

Обидва об'єднують стовпці для унікальності. У складеному ключі кожен стовпець сам по собі є зовнішнім ключем, тоді як складений ключ просто об'єднує два або більше атрибутів, які не обов'язково повинні бути зовнішніми ключами.

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

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

Так. На відміну від первинного ключа, зовнішній ключ може містити значення null, яке представляє рядок, ще не пов'язаний з жодним батьківським записом. Зовнішній ключ, що не має значення null, повинен відповідати існуючому первинному ключу.

Підсумуйте цей пост за допомогою: