Что такое внешний ключ в БД

«Что такое внешний ключ в БД» — вопрос из категории Базы данных, который задают на 27% собеседований Системный Аналитик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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

Пример:

CREATE TABLE Departments (
    dept_id INT PRIMARY KEY,
    dept_name VARCHAR(50)
);

CREATE TABLE Employees (
    emp_id INT PRIMARY KEY,
    emp_name VARCHAR(50),
    dept_id INT,
    FOREIGN KEY (dept_id) REFERENCES Departments(dept_id)
);

Здесь dept_id в таблице Employees — внешний ключ, ссылающийся на dept_id в Departments. Это гарантирует, что сотрудник не может быть привязан к несуществующему отделу.

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

  • Поддерживает ссылочную целостность (CASCADE, SET NULL, RESTRICT)
  • Может быть NULL, если не определен как NOT NULL
  • Обычно создает индекс для ускорения JOIN-операций