Встречается на собеседованиях • сегодня

Опиши форму Бойса-Кодда

Форма Бойса-Кодда (BCNF) — это усиленная версия 3НФ, устраняющая аномалии, связанные с функциональными зависимостями. Таблица находится в BCNF, если:

  1. Она уже в 3НФ.
  2. Для любой нетривиальной функциональной зависимости 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)
);
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы