Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ГАК-2026.docx
Скачиваний:
1
Добавлен:
16.06.2026
Размер:
2.66 Mб
Скачать

Б) Первичный ключ (Primary Key, pk)

Первичный ключ — это один потенциальный ключ, который выбран для уникальной идентификации записей в таблице.

Характеристики первичного ключа:

  • Должен быть уникальным для каждой строки.

  • Не может содержать NULL (NOT NULL).

  • В таблице может быть только один первичный ключ.

  • Обычно автоматически индексируется для быстрого поиска.

Примеры первичных ключей:

  1. Простой первичный ключ (одно поле):

Что выбрать в качестве первичного ключа?

  • Суррогатный ключ — искусственно созданное поле (обычно автоинкрементное число или UUID). Пример: id INT AUTO_INCREMENT.

  • Естественный ключ — поле, имеющее смысл в предметной области (номер паспорта, ISBN книги, VIN автомобиля).

На практике чаще используют суррогатные ключи, потому что:

  • естественные ключи могут измениться (человек сменил паспорт);

  • естественные ключи могут быть длинными и неудобными;

  • составные естественные ключи усложняют связи.

В) Внешний ключ (Foreign Key, fk)

Внешний ключ — это поле (или набор полей) в таблице, которое ссылается на первичный ключ другой таблицы. Внешний ключ обеспечивает связь между таблицами.

Характеристики внешнего ключа:

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

  • Обеспечивает ссылочную целостность — нельзя вставить значение, которого нет в связанной таблице.

  • На одну таблицу может ссылаться сколько угодно внешних ключей из других таблиц.

  • В самой таблице может быть несколько внешних ключей (на разные таблицы)

Здесь id_группы — внешний ключ, который ссылается на поле id в таблице Группы.

Г) Простой и составной ключи

  • Простой ключ — состоит из одного поля.

  • Составной ключ — состоит из двух и более полей.

Пример составного первичного ключа мы уже видели в таблице Оценки. Составной внешний ключ тоже возможен:

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

Альтернативный ключ — это потенциальный ключ, который не стал первичным. Например, если мы выбрали id как первичный ключ, то номер_паспорта будет альтернативным ключом (уникальным, но не главным).

Ограничение UNIQUE создаёт альтернативный ключ.

Е) Составной ключ (Composite Key)

Мы уже рассмотрели — это ключ из нескольких полей.

Ж) Природный (естественный) vs суррогатный ключ

Тип

Описание

Пример

Плюсы

Минусы

Естественный

Имеет смысл в предметной области

ISBN книги, VIN автомобиля, номер паспорта

Понятен без пояснений, не нужно создавать лишнее поле

Может измениться, может быть длинным, может быть не уникальным в реальности

Суррогатный

Искусственно созданный, не имеющий смысла

Автоинкрементный id, UUID

Никогда не меняется, компактный, простой

Не несёт информации, нужен дополнительный индекс