Sobes.tech
Back to questions
Senior
3

Нормализация и денормализация таблиц — расскажи про нормальные формы

Companies where asked
Cloud.ru

Answer from AI

sobes.tech AI

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

Нормальные формы (НФ) — набор правил для нормализации:

  • 1НФ (Первая нормальная форма): Все поля атомарны, то есть не содержат повторяющихся групп или множественных значений.

  • 2НФ (Вторая нормальная форма): Выполняется 1НФ, и все неключевые атрибуты полностью зависят от всего составного ключа (если ключ составной).

  • 3НФ (Третья нормальная форма): Выполняется 2НФ, и нет транзитивных зависимостей между неключевыми атрибутами (то есть неключевые поля не зависят друг от друга).

  • Бойса-Кодда нормальная форма (BCNF): Более строгая версия 3НФ, где для каждой функциональной зависимости детерминант является ключом.

  • 4НФ и выше: Рассматривают многозначные зависимости и другие сложные случаи.

Пример: Если у нас есть таблица с информацией о студентах, курсах и преподавателях, и преподаватель зависит от курса, а не от студента, то для 3НФ нужно разделить таблицу на две: одна с информацией о студентах и курсах, другая — о курсах и преподавателях.

Денормализация применяется, когда нормализованные таблицы приводят к сложным и медленным JOIN-операциям. В этом случае данные дублируются, чтобы ускорить чтение, но усложняется обновление и поддержка целостности.