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

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

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

приклад:

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

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

Навіщо нам ключ?

Ось кілька причин використання ключа sql у системі СУБД.

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

Типи ключів у СУБД (системі керування базами даних)

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

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

Давайте розглянемо кожен із ключів у СУБД на прикладі:

  • Супер ключ – Суперключ — це група з одного або кількох ключів, які ідентифікують рядки в таблиці.
  • Первинний ключ – це стовпець або група стовпців у таблиці, які однозначно ідентифікують кожен рядок у цій таблиці.
  • Ключ кандидата – це набір атрибутів, які однозначно ідентифікують кортежі в таблиці. Ключ-кандидат — це суперключ без повторюваних атрибутів.
  • Альтернативний ключ – це стовпець або група стовпців у таблиці, які однозначно ідентифікують кожен рядок у цій таблиці.
  • Зовнішній ключ - це стовпець, який створює зв'язок між двома таблицями. Призначення зовнішніх ключів — підтримувати цілісність даних і дозволяти навігацію між двома різними примірниками сутності.
  • Складений ключ – має два або більше атрибутів, які дозволяють однозначно розпізнати певний запис. Можливо, кожен стовпець може бути не унікальним сам по собі в базі даних.
  • Композитний ключ – це комбінація двох або більше стовпців, які однозначно ідентифікують рядки в таблиці. Комбінація стовпців гарантує унікальність, хоча індивідуальна унікальність не гарантується.
  • Сурогатний ключ – Штучний ключ, призначений для однозначної ідентифікації кожного запису, називається сурогатним ключем. Такого роду ключі унікальні, оскільки вони створюються, коли у вас немає природного первинного ключа.

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

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

приклад:

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

У наведеному вище прикладі ім’я EmpSSN і EmpNum є суперключами.

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

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

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

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

приклад:

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

StudID Номер рулону Ім'я Прізвище Email
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 Номер рулону Ім'я Прізвище Email
1 11 Том ціна abc@gmail.com
2 12 Nick Райт xyz@gmail.com
3 13 дана Натана mno@yahoo.com

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

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

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

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

Приклад ключа кандидата: у наведеній таблиці Stud ID, Roll No та email є ключами кандидата, які допомагають нам унікально ідентифікувати запис студента в таблиці.

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

Ключ від кандидата
Ключ кандидата в СУБД

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

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

приклад:

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

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

У цій таблиці, додавши зовнішній ключ у Deptcode до імені вчителя, ми можемо створити зв’язок між двома таблицями.

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

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

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

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

приклад:

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

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

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

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

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

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

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

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

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

Сурогатні ключі SQL допускаються при

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

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

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

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

Підсумки

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