Проверяет понимание внешних ключей и ограничений уникальности в реляционных базах данных, их назначения и различий.
Внешний ключ — это столбец или набор столбцов в таблице, который ссылается на первичный ключ (или уникальный ключ) другой таблицы. Он устанавливает связь между двумя таблицами, обеспечивая ссылочную целостность. Например, в таблице заказов может быть столбец customer_id, который ссылается на id в таблице клиентов. Это гарантирует, что заказ не может быть создан для несуществующего клиента.
Ограничение UNIQUE гарантирует, что все значения в столбце или комбинации столбцов уникальны в пределах таблицы. Оно предотвращает дублирование данных. Например, email в таблице пользователей должен быть уникальным, чтобы два пользователя не могли зарегистрироваться с одним адресом. В отличие от первичного ключа, UNIQUE может быть несколько в таблице и допускает NULL значения (в большинстве СУБД).
-- Создание таблицы клиентов
CREATE TABLE customers (
id INT PRIMARY KEY,
email VARCHAR(255) UNIQUE
);
-- Создание таблицы заказов с внешним ключом
CREATE TABLE orders (
id INT PRIMARY KEY,
customer_id INT,
FOREIGN KEY (customer_id) REFERENCES customers(id)
);FK используется для связывания таблиц и защиты от некорректных ссылок, а UNIQUE — для обеспечения уникальности данных в пределах одной таблицы. Оба ограничения активно применяются при проектировании схемы базы данных. FK особенно важен в нормализованных базах, где данные разбиты на связанные таблицы, а UNIQUE полезен для полей, которые должны быть уникальными, но не являются первичным ключом (например, номер паспорта).
Используйте FK для поддержания ссылочной целостности между таблицами, а UNIQUE — для предотвращения дубликатов в конкретных полях. Эти ограничения являются основой надежного проектирования реляционных баз данных и должны применяться всегда, когда это логически оправдано.