Andmebaas: Keys

1. Primary Key (Первичный ключ)

Что это:
Уникальный идентификатор записи в таблице. Не может быть NULL.

Особенности:

  • Один на таблицу.
  • Уникальные значения.
  • Не NULL.

Пример:

IDName
1Alice
2Bob

ID — Primary Key.

2. Foreign Key (Внешний ключ)

Что это:
Поле, указывающее на Primary Key в другой таблице. Устанавливает связь между таблицами.

Особенности:

  • Значение должно существовать в родительской таблице.
  • Может быть NULL (если допустимо отсутствие связи).

Пример:

Users

UserIDName
1John

Orders

OrderIDUserID
1011

UserID в Orders — Foreign Key к Users(UserID).


3. Unique Key (Уникальный ключ)

Что это:
Ограничение, гарантирующее уникальность значений в колонке (или комбинации колонок), кроме Primary Key.

Особенности:

  • Может быть несколько на таблицу.
  • Может содержать NULL (в некоторых СУБД — один NULL).

Пример:

IDEmail
1test@mail.com
2user@mail.com

Email — Unique Key.


4. Simple Key (Простой ключ)

Что это:
Ключ, состоящий из одного поля.

Пример:

UsernameAge
alice23
bob30

Username — Simple Key.


5. Composite Key (Композитный ключ)

Что это:
Ключ из двух и более колонок, определяющий уникальность вместе.

Пример:

StudentIDCourseIDGrade
1101A
1102B

(StudentID, CourseID) — Composite Key.


6. Compound Key (Составной ключ)

Что это:
Синоним Composite Key, но поля могут быть из разных типов или с разной семантикой (иногда выделяется отдельно, но часто считается тем же самым).

Пример:
Тот же пример, что и для Composite Key. Разница — в акценте на “разные по смыслу” поля.


7. Superkey (Сверхключ)

Что это:
Любая комбинация полей, однозначно идентифицирующая запись, включая лишние поля.

Особенности:

  • Включает Primary Key.
  • Может содержать лишние атрибуты.

Пример:

IDEmailPhone
1a@mail.com123456789

Superkey: (ID), (ID, Email), (ID, Phone), (ID, Email, Phone) — все они уникальны.


8. Candidate Key (Кандидатный ключ)

Что это:
Минимальный набор атрибутов, который может быть Primary Key (то есть Superkey без лишних полей).

Особенности:

  • Может быть несколько.
  • Один из них становится Primary Key.

Пример:

PassportNoEmail
AA12345a@mail.com
BB54321b@mail.com

PassportNo и Email — Candidate Keys.


9. Alternate Key (Альтернативный ключ)

Что это:
Кандидатный ключ, не выбранный как Primary Key.

Пример:
Если PassportNo — Primary Key, то Email — Alternate Key.

Итоговая таблица сравнения

ТипУникальностьДопустим NULLСколько может бытьНазначение
Primary KeyДаНетТолько одинОсновной идентификатор
Foreign KeyНетЗависит от настроекНесколькоСвязь с внешней таблицей
Unique KeyДаЗависит от СУБДНесколькоУникальные, но не первичные поля
Simple KeyДаНетОдинОдинарное поле как ключ
Composite KeyДаНетОдинНесколько полей как единый ключ
Compound KeyДаНетОдинТо же, с акцентом на разность полей
SuperkeyДаНетМногоЛюбая уникальная комбинация
Candidate KeyДаНетМногоВозможные кандидаты на Primary Key
Alternate KeyДаНетМногоКандидат, не выбранный как основной

Источники: