Встречается на собеседованиях • сегодня
Опиши форму Бойса-Кодда
Форма Бойса-Кодда (BCNF) — это усиленная версия 3НФ, устраняющая аномалии, связанные с функциональными зависимостями. Таблица находится в BCNF, если:
- Она уже в 3НФ.
- Для любой нетривиальной функциональной зависимости X → Y, X должен быть суперключом (содержать первичный ключ).
Пример:
Таблица Orders(order_id, product_id, customer_id, product_name) с зависимостью product_id → product_name. Если order_id — PK, то зависимость нарушает BCNF, так как product_id не суперключ. Решение — декомпозиция на Orders(order_id, product_id, customer_id) и Products(product_id, product_name).
sql
-- До декомпозиции (нарушение BCNF)
CREATE TABLE Orders (
order_id INT PRIMARY KEY,
product_id INT,
customer_id INT,
product_name VARCHAR(100),
FOREIGN KEY (product_id) REFERENCES Products(product_id)
);
-- После декомпозиции (BCNF)
CREATE TABLE Products (
product_id INT PRIMARY KEY,
product_name VARCHAR(100)
);
CREATE TABLE Orders (
order_id INT PRIMARY KEY,
product_id INT,
customer_id INT,
FOREIGN KEY (product_id) REFERENCES Products(product_id)
);
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы