junior
Дайте определение терминам простой, составной, потенциальный и альтернативный ключ?
Ключ — атрибут или набор атрибутов, используемый для идентификации записей в таблице.
Виды ключей
| Тип ключа | Определение | Пример |
|---|---|---|
| Простой (simple) | Состоит из одного атрибута | user_id |
| Составной (composite) | Состоит из двух и более атрибутов | (order_id, product_id) |
| Потенциальный (candidate) | Минимальный набор атрибутов, уникально идентифицирующий каждую запись | email, passport_number — оба уникальны |
| Альтернативный (alternate) | Потенциальный ключ, не выбранный в качестве первичного | Если PK = user_id, то email — альтернативный |
Свойства потенциального ключа
- Уникальность — однозначно идентифицирует каждую запись
- Неизбыточность (минимальность) — при удалении любого атрибута из ключа теряется свойство уникальной идентификации
- Не содержит NULL-значений
Связь между ключами
Пример
Все потенциальные ключи
├── Первичный ключ (выбирается один)
└── Альтернативные ключи (все остальные)
На собеседовании: важно подчеркнуть критерий неизбыточности потенциального ключа. Частая ошибка — путать составной ключ с потенциальным. Составной ключ — это про количество атрибутов, потенциальный — про свойство уникальности.