Первинний ключ - Унікальний ключ
Стовпець або набір стовпців, за допомогою яких можна визначити або отримати доступ до рядка або набору рядків у базі даних, називається ключем. Унікальний ключ - це ключ, який дозволяє однозначно ідентифікувати рядок у таблиці в контексті реляційних баз даних. Унікальний ключ складається з одного стовпця або набору стовпців. Первинний ключ - це також поєднання стовпців у таблиці, які однозначно ідентифікують рядок. Але це вважається особливим випадком унікального ключа.
Що таке унікальний ключ?
Як було сказано раніше, унікальний ключ - це один стовпчик або набір стовпців, які можуть однозначно ідентифікувати рядок у таблиці. Отже, унікальний ключ обмежений таким чином, що жодне його значення не є рівним. Одне важливе властивість полягає в тому, що унікальні ключі не застосовують обмеження NOT NULL. Оскільки NULL являє собою відсутність значення, якщо два рядки мають стовпець NULL, то це не означає, що значення рівні. Стовпець, визначений як унікальний ключ, дозволяє лише одне значення NULL у цьому стовпці. Тоді це може бути використане для однозначного визначення цього конкретного рядка. Наприклад, у таблиці, яка містить інформацію про студентів, ідентифікатор студента може бути визначений як унікальний ключ. Оскільки жодне з двох студентів не може мати однаковий ідентифікатор, він однозначно ідентифікує одного учня. Тож стовпець ідентифікатора студента задовольняє всі властивості унікального ключа. Залежно від дизайну бази даних, таблиця може мати більше одного унікального ключа.
Що таке первинний ключ?
Первинний ключ - це також стовпець або комбінація стовпців, яка однозначно визначає рядок у таблиці реляційної бази даних. У таблиці може бути не більше одного первинного ключа. Первинний ключ примушує неявне обмеження NOT NULL. Отже, стовпець, визначений як первинний ключ, не може містити в ньому значень NULL. Первинний ключ може бути нормальним атрибутом у таблиці, який гарантовано є унікальним, таким як номер соціального страхування, або це може бути унікальне значення, сформоване системою управління базами даних, наприклад глобальним унікальним ідентифікатором (GUID) в Microsoft SQL Server. Первинні ключі визначаються через обмеження PRIMARY KEY у ANSI SQL Standard. Первинний ключ також можна визначити під час створення таблиці. SQL дозволяє первинному ключу складатися з одного або декількох стовпців, і кожен стовпець, що входить до первинного ключа, неявно визначається як NOT NULL. Але деякі системи управління базами даних вимагають чітко робити стовпці первинного ключа НЕ НУЛЬНІ.
Різниця між первинним і унікальним ключем
Незважаючи на те, що і первинний ключ, і унікальний ключ є одним або кількома стовпцями, які можуть однозначно ідентифікувати рядок у таблиці, вони мають деякі важливі відмінності. Найголовніше, що таблиця може мати лише один первинний ключ, тоді як вона може мати більше ніж один унікальний ключ. Первинний ключ можна розглядати як особливий випадок унікального ключа. Ще одна відмінність полягає в тому, що первинні ключі мають неявне обмеження NOT NULL, тоді як унікальний ключ не має цього обмеження. Отже, унікальні стовпці ключів можуть містити значення NULL, а можуть і не містити, але стовпці первинного ключа не можуть містити значень NULL.