Что такое нормальные формы в БД

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НФ. Нормализация улучшает целостность данных, но может усложнить запросы — иногда применяют денормализацию для производительности.