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

Какие знаешь нормальные формы БД

Нормальные формы (НФ) — это правила проектирования реляционных баз данных, которые помогают избежать аномалий при операциях с данными. Основные нормальные формы:

  1. 1НФ — все атрибуты атомарны (неделимы), нет повторяющихся групп.
    Пример: вместо столбца Телефоны с данными "123, 456" создаются отдельные записи для каждого телефона.

  2. 2НФ — выполняется 1НФ + все неключевые атрибуты зависят от всего первичного ключа (нет частичной зависимости).
    Пример: в таблице Заказы(OrderID, ProductID, ProductName, Quantity) поле ProductName зависит только от ProductID — нарушение. Нужно разделить на Заказы и Продукты.

  1. 3НФ — выполняется 2НФ + нет транзитивных зависимостей (неключевые атрибуты не зависят от других неключевых атрибутов).
    Пример: в Сотрудники(EmployeeID, Department, Manager) поле Manager зависит от Department — нарушение. Нужно выделить таблицу Отделы.

  2. НФБК (Бойса-Кодда) — частный случай 3НФ, где любая детерминанта (атрибут, от которого зависит другой) является потенциальным ключом.

  3. 4НФ — выполняется НФБК + нет многозначных зависимостей.
    Пример: в Студенты-Курсы(StudentID, CourseID, Hobby) хобби не зависит от курса — нарушение. Нужно разделить.

  4. 5НФ (ПНФ) — выполняется 4НФ + отсутствуют зависимости соединения.

Пример приведения к 3НФ:

sql
-- Исходная таблица (нарушает 2НФ и 3НФ)
CREATE TABLE Orders (
    OrderID INT,
    ProductID INT,
    ProductName VARCHAR(100),
    CustomerName VARCHAR(100),
    PRIMARY KEY (OrderID, ProductID)
);

-- Нормализованная структура
CREATE TABLE Orders (OrderID INT PRIMARY KEY, CustomerName VARCHAR(100));
CREATE TABLE Products (ProductID INT PRIMARY KEY, ProductName VARCHAR(100));
CREATE TABLE OrderItems (OrderID INT, ProductID INT, PRIMARY KEY (OrderID, ProductID));
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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