Какие знаешь формы нормализации в БД
Python
Middle
Без компании
Какие знаешь формы нормализации в БД
Ответы
Нормализация — процесс организации данных в БД для уменьшения избыточности и аномалий. Основные формы:
- **1NF (Первая нормальная форма)**
```
-- Ненормализованная таблица (повторяющиеся группы)
CREATE TABLE orders (
order_id INT,
products VARCHAR(255) -- "item1,item2,item3" — нарушение 1NF
);
-- 1NF
CREATE TABLE orders (
order_id INT,
product VARCHAR(100) -- Один продукт на строку
);
```
- Все атрибуты атомарны (неделимы).
- Нет повторяющихся групп.
- **2NF (Вторая нормальная форма)**
- Соответствует 1NF.
- Все неключевые атрибуты зависят от всего первичного ключа (нет частичной зависимости).
- **3NF (Третья нормальная форма)**
- Соответствует 2NF.
- Нет транзитивных зависимостей (неключевые атрибуты не зависят друг от друга).
- **BCNF (Нормальная форма Бойса-Кодда)**
- Усиленная 3NF: любая детерминанта — потенциальный ключ.
- **4NF и 5NF**
- Устраняют многозначные зависимости и соединения.
Пример нарушения 3NF:
```
CREATE TABLE employees (
emp_id INT PRIMARY KEY,
dept VARCHAR(100),
dept_head VARCHAR(100) -- Зависит от dept, а не от emp_id (нарушение 3NF)
);
```