> For the complete documentation index, see [llms.txt](https://docs.system-analyst-base.ru/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.system-analyst-base.ru/hard-skills/bazy-dannykh/relyacionnye/normalnye-formy.md).

# Нормальные формы

{% hint style="info" %}
**Нормальная форма (НФ)** — требование, предъявляемое к структуре таблиц в теории реляционных баз данных для устранения из базы избыточных функциональных зависимостей между атрибутами (полями таблиц).
{% endhint %}

Всего существует 6 нормальных форм, однако зачастую на практике применяют только первые 3.

* 1НФ
* 2НФ
* 3НФ
* Нормальная форма Бойса-Кодда (частный случай 3НФ)
* 4НФ
* 5НФ
* 6НФ

{% hint style="success" %}
Важно отметить, что данные формы должны соблюдаться последовательно, то есть таблицы не могут находится в 2НФ не находясь при этом в 1НФ.
{% endhint %}

## 1 Нормальная форма

Отношение находится в 1НФ, если все его атрибуты являются простыми, все используемые домены должны содержать только скалярные значения. Не должно быть повторений строк в таблице.

* Одно поле = одно значнеие
* Нет повторов строк

## 2 Нормальная форма

Отношение находится во 2НФ, если оно находится в 1НФ и каждый не ключевой атрибут неприводимо зависит от Первичного Ключа(ПК).

* Если есть такая возможность вынести часть таблицы через ПК/ВК - это нужно сделать

## 3 Нормальная форма

Отношение находится в 3НФ, когда находится во 2НФ и каждый не ключевой атрибут нетранзитивно зависит от первичного ключа. Проще говоря, второе правило требует выносить все не ключевые поля, содержимое которых может относиться к нескольким записям таблицы в отдельные таблицы.

* То же самое, что и в 2 НФ, но сохраняя логику отношений таблиц&#x20;
