Рекомендуємо, 2024

Вибір Редакції

Різниця між основним і кандидатним ключем

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

Є ще кілька відмінностей між Основними та Кандидатськими ключами, які я обговорюю за допомогою діаграми порівняння, показаної нижче.

Діаграма порівняння

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

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

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

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

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

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

Тепер давайте розглянемо приклад Первинного ключа.

 Студент {ID, First_name, Last_name, Age, Address} 

Тут ми спочатку розберемо кандидатні ключі. Я зрозумів дві кандидатні клавіші {ID} і {First_name, Last_name}, оскільки вони однозначно ідентифікують кожного студента у студентському відношенні. Тепер, тут я обираю ID як основний ключ, тому що іноді може статися, що у двох учнів можуть бути ті ж прізвища та імена, тому буде легко простежити студента з його ID .

Визначення ключа кандидата

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

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

Якщо всі ключі-кандидати мають право на первинний ключ, то досвідчений адміністратор баз даних повинен прийняти рішення з'ясувати первинний ключ. Ніколи не може бути відношення без ключа кандидата.

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

 Студент {ID, First_name, Last_name, Age, Address, DOB, ім'я відділу} 

Тут я можу зрозуміти два кандидатні ключі, які є {ID}, {First_name, Last_name, DOB} . Таким чином, ви можете зрозуміти, що ключі-кандидати є такою, яка однозначно ідентифікує кортеж у відношенні.

Ключові відмінності між основним і кандидатним ключем

  1. Основною точкою, що відрізняє первинний ключ від ключа-кандидата, є те, що для схеми може бути лише один основний для будь-якого відношення. Однак можуть існувати декілька ключів-кандидатів для одного відношення.
  2. Атрибут під первинним ключем ніколи не може містити значення NULL, оскільки основною функцією первинного ключа є однозначна ідентифікація запису відносно. Навіть первинний ключ може бути використаний як зовнішній ключ в іншому відношенні, і, отже, він не повинен бути NULL, так що посилання на зв'язок може знайти кортежі у співвідношенні, на яке посилається. Кандидатський ключ може бути NULL, якщо обмеження атрибуту не вказано не null.
  3. Необов'язково вказати первинний ключ, але не може бути відношення без ключів-кандидатів.
  4. Первинний ключ описує унікальний і найважливіший атрибут відношення, тоді як кандидатські ключі надають кандидатам, серед яких можна вибрати первинний ключ.
  5. Кожен первинний ключ є ключем-кандидатом, але навпаки, це не так.

Висновок:

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

Top