Что такое нормальные формы в БД
Python
Senior
Без компании
Что такое нормальные формы в БД
Ответы
Нормальные формы (НФ) — это набор правил для проектирования реляционных баз данных, которые минимизируют избыточность и аномалии данных.
- **1НФ**: Все атрибуты атомарны (неделимы), нет повторяющихся групп.
```
# Плохо: столбец с несколькими значениями
CREATE TABLE orders (order_id INT, products TEXT); # "product1,product2"
# Хорошо: разделение на отдельные строки
CREATE TABLE orders (order_id INT, product_id INT);
```
- **2НФ**: Должна быть 1НФ + все неключевые атрибуты зависят от всего первичного ключа (нет частичной зависимости).
- **3НФ**: Должна быть 2НФ + нет транзитивных зависимостей (неключевые атрибуты не зависят от других неключевых атрибутов).
Пример нарушения 3НФ:
```
CREATE TABLE employees (
emp_id INT PRIMARY KEY,
dept_id INT,
dept_name VARCHAR # dept_name зависит от dept_id, а не от emp_id напрямую
);
```
Также существуют **BCNF**, **4НФ**, **5НФ**, но на практике чаще ограничиваются 3НФ. Нормализация улучшает целостность данных, но может усложнить запросы — иногда применяют денормализацию для производительности.