581просмотров
13 ноября 2025 г.
question📷 ФотоScore: 639
Что такое первичный ключ и внешний ключ в базе данных. Зачем они нужны?
Первичный ключ (Primary Key) и внешний ключ (Foreign Key) - это два фундаментальных элемента реляционной базы данных, обеспечивающих целостность данных и связь между таблицами. Что такое Primary Key (PK)?
Назначение: уникальная идентификация записи в таблице.
Главные свойства:
Значение обязательно уникальное и не может быть NULL.
В таблице может быть только один PK.
Может состоять из одного или нескольких атрибутов (составной ключ). Пример:
В таблице "Пользователи" поле user_id - это PK, и оно уникально для каждого пользователя.
CREATE TABLE users ( user_id INT PRIMARY KEY, username VARCHAR(50), email VARCHAR(100)
); Что такое Foreign Key (FK)?
Назначение: устанавливает связь между таблицами, ссылаясь на первичный ключ другой таблицы.
Главные свойства:
Может содержать повторяющиеся значения, но все они должны ссылаться на существующие записи в другой таблице.
Значения NULL могут быть разрешены для этого поля.
Обеспечивает целостность данных и предотвращает "браки" (ссылки на несуществующие данные). Пример:
В таблице "Заказы" поле user_id - это FK, ссылается на user_id из таблицы "Пользователи".
CREATE TABLE orders (
order_id INT PRIMARY KEY,
order_date DATE,
user_id INT,
FOREIGN KEY (user_id) REFERENCES users(user_id)
); Зачем нужны эти ключи?
- Обеспечивают уникальность данных(PK).
- Позволяют связывать таблицы, создавая реляционную базу данных (PK + FK).
- Гарантируют целостность: нельзя добавить заказ для несуществующего пользователя или удалить пользователя, если у него есть заказы.
- Упрощают работу с большими объемами данных: связи позволяют быстро получать связанные данные через JOIN. Первичный ключ - это уникальный идентификатор записи, всегда гарантирует её однозначное распознавание.
Внешний ключ - это ссылка на первичный ключ другой таблицы, обеспечивает связи между данными и целостность: нельзя добавить "висящие" записи, нарушающие структуру данных.
Эти механизмы - основа структурирования данных и поддержания их логической непротиворечивости в реляционных базах данных. #qa 📱 Вопросы с собесов + ответы читайте на бусти